1)创建数据库
create database database-name
2)删除数据库
drop database database-name
3)创建新表
create table table-name(col1 type1 [not null] [primary key], col2 type2 [not null],.....)
3.1根据已有表创建新表
create table table_new like table_old
create table table_new as select col1,col2...from table_old definition only
4)删除新表
drop table tablename
5)增加一个列
alter table tablename add column col type
增加的列将不能删除,数据类型也不能改变,唯一能够改变的是varchar的长度
6)添加主键
alter table tabname add primary key (col)
删除主键
alter table tabname drop primary key(col)
7)创建索引
create [unique] index idxname on table(col...)
删除索引
drop index idxname
索引不可更改,想更改必须删除重新创建
9)几个基本的索引语句
选择 select * from table where 范围
插入:insert into table1(field1,field2) values(value1,value2)
删除:delete from table1 where 范围
更新:update table1 set field1=value1 where 范围
查找:selec * from table1 order by field1, field2[desc]
总数:select count as totalcount from table1
求和:select sum(field1) as sumvalue from table1
平均:select svg(field1) as avgvalue from table1
最大:select max(field1) as maxvalue from table1
最小:select min(field1) as minvalue from table1
10)几个高级查询运算符
union
union运算符通过组合其他两个结果表(例如table1和table2)并消去表中任何重复行而派生出一个结果表,当all随unique一起使用时(即union all),不消除重复行,两种情况下,派生表的每一行不是来自table1就是来自table2
expect
expect 运算符通过包括所有在table1中但不在table2中的行并消除所有重复行而派生出一个结果表,当all随expect一起使用时( expect all),不消除重复行
intersect
intersect运算符通过只包括table1和table2中都有的行并消除所有重复行而派生出一个结果表,当all跟随intersect一起使用时(intersect all),不消除重复行 使用运算词的几个查询结果行必须是一致的
11)使用外连接
left (outer) join:
左连接:结果集包括连接表的匹配行,也包括做连接表的所有行
select a.a,a.b,a.c,b.c,b.d,b.f from a left out join b on a.a = b.c
right (outer) join
右连接:结果集既包括连接表的匹配连接行,也包括右连接表的所有行
full/cross (outer) join
全外连接:不仅包括符号连接表的匹配行,还包括两个连接表的所有记录
12)分组:group by
一张表一旦分组完成后,查询后只能得到相关的信息
组相关的信息:统计信息(count sum max min avg 分组标准)
在SQLServer中分组时:不能以text,ntext,image类型字段作为分组依据
select统计函数中的字段,不能和普通字段放在一起
13)对数据库进行操作
分离数据库:sp_detach_db;
附加数据库:sp_attach_db后接表名,附加需要完整路径名
14)修改数据库名称
sp_renamedb `old_name`,`new_name`