博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

SQL Server基础知识(二)简单的SQL语句和基本查询

Posted on 2010-03-17 01:15  Joe553  阅读(435)  评论(0)    收藏  举报

数据库操作

1、说明:创建数据库

CREATE DATABASE database-name 

例如:

create database sales                           --创建一个名为sales的数据库

on

(

name='sales_data',                           --在数据库中的逻辑名称

filename='d:\sales_data.mdf',              --数据的实际存放地址

size=10MB,                                           --创建数据库时初始大小

maxsize=50MB,                                     --指定数据库最大容量

filegrowth=5%                                       --数据库文件的增长率

)

log on                                              --这一行开始就是日志文件

(

name='sales_log',                            --日志文件的逻辑名称

filename='d:\sales_log.ldf',                              --日志文件的实际存放地址

size=10MB,                                              --创建日志文件的增长率

maxsize=50MB,                                     --日志文件的最大容量

filegrowth=5MB                                   --日志文件的增长量

)

 

2、说明:删除数据库

drop database dbname

 

3、说明:查看数据库的相关信息

sp_helpdb dbname

 

4、说明:查看当前数据库数据文件与日志文件的相关信息 
sp_helpfile 

5、说明:备份数据库

sp_addumpdevice 'disk','mydisk','d:\dbname.bak'

--添加设备。disk表示目标设备类型,dbname表示目标设备逻辑名称,d:\dbname.bak表示目标设备物理名称
backup database dbname to mydisk

--向设备写入数据.其中的sales指数据库名,mydisk为自定的设备标示符

 

6、说明:分离数据库

sp_detach_db sales

 

7、说明:整合数据库
sp_attach_db sales,@filename1='数据文件路径名' ,@filename2='日志文件路径名'

 

8、说明:恢复数据库
restore database sales from mydisk

 

9、说明:删除设备

sp_dropdevice mydisk

 

10、说明:设数据库为只读

EXEC sp_dboption 'sales','read only','true'

 

11、说明:设数据库为自动压缩

EXEC sp_dboption 'sales',autoshrink,true

 

12、说明:设数据库为单用户

EXEC sp_dboption 'sales','single user'

 

13、说明:将数据库中的文件减小,使数据库中有10%的可用空间

DBCC shrinkdatabase (sales,10)



表操作

1、说明:创建新表

create table Table1

(

id int identity(1,1) primary key,              --这一行是设定了id列为标识列且为主键,递增量为1

name varchar(10),

args varchar(10),

mail varchar(10),

address varchar(10),

mobile varchar(10)

)

 

2、根据已有的表创建新表 

A:create table tab_new like tab_old (使用旧表创建新表)

B:create table tab_new as select col1,col2… from tab_old definition only

 

3、说明:删除表

drop table 表名

 

4、说明:删除表内数据

用于初始化表,不可带条件,不能截断被外键引用的表,不管该表中是否有数据

truncate table 表名       --不可用于实务

delete table 表名          --用于实务

 

5、说明:增加一个列

alter table 表名 add 列名 数据类型

 

6、说明:删除一个列

alter table 表名 drop column 列名

 

7、说明:添加删除约束

---添加主键约束

alter table tabname add constraint pk_id primary key(gid)            

---添加外键约束

alter table tabF add constraint fk_id foreign key(fno) references tabP(pid)   

---添加唯一约束

alter table tabname add constraint uq_name unique(gname)

---添加检查约束

alter table tabname add constraint cj_price check(price>300 and price<1000)

---添加默认约束

alter table tabname add constraint df_ldate default (0)  for ldate

---删除约束

alter table tablename drop constraint 约束名

 

8、说明:简单的增,删,改,查

添加:insert [into] <表名> [列名] values <值列表>

示例:insert into table1(field1,field2) values(value1,value2)

修改:update <表名> set 列名=更新值[,列名=更新值][where <更新条件>]

示列:update table1 set field1=value1 where

删除: delete  from  <表名> [where <删除条件>]

示例:delete from table1 where

查询:select <列名> from <表名>

示例:select * from table1

 

 

9、is关键字,where关键字和as关键字

is的使用:查询价格为空的货物

select *from goods where price is null

where的使用:删除符合where条件的行

 

delete from 表名 where 条件(如:gid=1001)

as的使用:查处的列名改为最高价格

select max(price) as 最高价格 from goods

 

10、模糊查询

--LIKE关键字--用于比较部分字符串,常与通配符联合使用

示例:SELECT * FORM Table Where StuName LIKE '张%'

--Between关键字--用于在某个范围内查询

示例:SELECT * FORM Table Where Score BETWEEN 60 AND 80

--In关键字--用于在某个范围内查询

示例:SELECT * FORM Table Where SAddress IN ('北京','上海','广州')

 (注:模糊查询关键字可和NOT关键字联用。如:SELECT * FORM Table Where SAddress NOT IN ('北京','上海','广州'))

 

11、分组查询

--Group By关键字--分组

示例:SELECT CourseId,AVG(Score) FROM Score GROUP BY CourseId

--Having关键字--分组后的筛选

示例:SELECT CourseId,AVG(Score) FROM Score GROUP BY CourseId HAVING Score>60

--Order by关键字--排序,Desc表示降序,Asc表示升序

示例:SELECT CourseId,Score FROM ScoreInfo ORDER BY Score DESC

 

12、多表联查

左外连接    Left Join或Left Outer Join

返回:左表的所有行,右表的匹配行

示例:SELECT * FROM a LEFT JOIN b ON a.aid = b.bid

右外连接    Right Join或Right Outer Join

返回:右表的所有行,左表的匹配行

示例:SELECT * FROM a RIGHT JOIN b ON a.aid = b.bid

完整性连接    Full Join或Full Outer Join

返回:左表和右表的所有行

示例:SELECT * FROM a FULL JOIN b ON a.aid = b.bid

内连接    Inner Join

返回:左表和右表匹配的行

示例:SELECT * FROM a INNER JOIN b ON a.aid = b.bid

交叉联接    Cross Join

返回:两个表中每个可能成对的行占一行,不论它们是否匹配

示例:SELECT * FROM a CROSS JOIN b

 

系统操作

1、执行DOS命令dir

xp_cmdshell 'dir'


2、添加windows用户,EKIN为用户名,1234为密码

xp_cmdshell 'net user EKIN 1234 /add'


3、删除windows用户EKIN

xp_cmdshell 'net user EKIN /delete'


4、修改管理员密码

xp_cmdshell 'net user administrator 9527'