SQL分类:

DDL-数据定义语言(CREATE、ALTER、DROP、DECLARE);

DML-数据操作语言(SELECT、DELETE、UPDATE、INSERT);

DCL-数据控制语言(GRANT、REVOKE、COMMIT、ROLLBACK)。

1、创建新表

create table tabname(col1 type1 [not null][primary key],col2 type2 [not null],..)

根据已有的表创建新表

Acreate table tab_new like tab_old (使用旧表创建新表)

Bcreate table tab_new as select col1,col2… from tab_old definition only

2、复制表(只复制结构,源表名:a 新表名:b)

法一:select * into b from a where1<>1

法二:select top 0 * into b from a

3、拷贝表(拷贝数据,源表名:a 目标表:b)

insert into b(a, b, c) select d,e,f from b;

4、跨数据库之间表的拷贝(具体数据使用绝对路径)

insert into b(a, b, c) select d,e,f from b in具体数据库’ where条件

例子:..from b in '"&Server.MapPath(".")&"\data.mdb"&"' where..

5、外连接查询(表名1:a 表名2:b)

select a.a, a.b, a.c, b.c,b.d, b.f from a LEFT OUT JOIN b ON a.a = b.c;

6、between的用法(between限制查询数据范围时包括了边界值,not between不包括)

select * from table1 where time between time1 and time2;

7、包括所有在 TableA 中但不在 TableB 和 TableC 中的行并消除所有重复行而派生出一个结果表

(select a from tableA ) except (select a from tableB) except (select a from tableC);

8、随机取出10条数据

select top 10 * from tablename order by newid();

9、随机选择记录

select newid();

10、删除重复记录

Delete from tablename where id notin (select max (id) from tablename group by col1,col2,...)

11、列出数据库里所有的表名

select name from sysobjects where type='U';

12、列出表里的所有的列

select name from syscolumns where id=object_id('TableName');

13、初始化表table1

TRUNCATE TABLE table1

14、字符串拼接concat

CONCAT函数支持一个或者多个参数,参数类型可以为字符串类型也可以是非字符串类型,对于非字符串类型的参数MYSQL将尝试将其转化为字符串类型,CONCAT函数会将所有参数按照参数的顺序拼接成一个字符串做为返回值。

SELECT CONCAT('工号为:',FNumber,'的员工的幸福指数:',FSalary/(FAge-21))

FROM T_Employee

CONCAT支持只有一个参数的用法,这时的CONCAT可以看作是一个将这个参数值尝试转化为字符串类型值的函数。MYSQL中还提供了另外一个进行字符串拼接的函数CONCAT_WS,CONCAT_WS可以在待拼接的字符串之间加入指定的分隔符,它的第一个参数值为采用的分隔符,而剩下的参数则为待拼接的字符串值,比如执行下面的SQL:
SELECT CONCAT_WS(',',FNumber,FAge,FDepartment,FSalary) FROM T_Employee

15、增加一个列(注:列增加后将不能删除。DB2中列加上后数据类型也不能改变,唯一能改变的是增加varchar类型的长度

Alter table tabname add column col type

16、主键相关

添加主键:Alter table tabname add primary key(col)

删除主键:Alter table tabname drop primary key(col)

17、索引相关(注:索引是不可更改的,想更改必须删除重新建

创建索引:create [unique] index idxname on tabname(cl….)

删除索引:drop index idxname

18、视图相关

创建视图:create view viewname as select statement

删除视图:drop view viewname

19、几个高级查询运算符

A、UNION 运算符

UNION运算符通过组合其他两个结果表(例如 TABLE1 TABLE2)并消去表中任何重复行而派生出一个结果表。当ALLUNION一起使用时(即UNION ALL),不消除重复行。两种情况下,派生表的每一行不是来自 TABLE1 就是来自 TABLE2

B、EXCEPT运算符

EXCEPT运算符通过包括所有在 TABLE1 中但不在 TABLE2 中的行并消除所有重复行而派生出一个结果表。当ALLEXCEPT一起使用时 (EXCEPT ALL),不消除重复行。

C、INTERSECT运算符

INTERSECT运算符通过只包括 TABLE1 和 TABLE2 中都有的行并消除所有重复行而派生出一个结果表。当 ALLINTERSECT一起使用时 (INTERSECT ALL),不消除重复行。

注:使用运算符的几个查询结果行必须是一致的。

20、外连接

Aleft outer join

左外连接(左连接):结果集既包括连接表的匹配行,也包括左连接表的所有行。

Bright outer join:

右外连接(右连接):结果集既包括连接表的匹配连接行,也包括右连接表的所有行。

Cfull outer join

全外连接:不仅包括符号连接表的匹配行,还包括两个连接表中的所有记录。