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],..);
根据已有的表创建新表
A:create table tab_new like tab_old (使用旧表创建新表)
B:create 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)并消去表中任何重复行而派生出一个结果表。当ALL随UNION一起使用时(即UNION ALL),不消除重复行。两种情况下,派生表的每一行不是来自 TABLE1 就是来自 TABLE2。
B、EXCEPT运算符
EXCEPT运算符通过包括所有在 TABLE1 中但不在 TABLE2 中的行并消除所有重复行而派生出一个结果表。当ALL随EXCEPT一起使用时 (EXCEPT ALL),不消除重复行。
C、INTERSECT运算符
INTERSECT运算符通过只包括 TABLE1 和 TABLE2 中都有的行并消除所有重复行而派生出一个结果表。当 ALL随 INTERSECT一起使用时 (INTERSECT ALL),不消除重复行。
注:使用运算符的几个查询结果行必须是一致的。
20、外连接
A、left outer join:
左外连接(左连接):结果集既包括连接表的匹配行,也包括左连接表的所有行。
B:right outer join:
右外连接(右连接):结果集既包括连接表的匹配连接行,也包括右连接表的所有行。
C:full outer join:
全外连接:不仅包括符号连接表的匹配行,还包括两个连接表中的所有记录。
本文出自 “Nokia” 博客,谢绝转载!