// 复制表结构(不包括主键)
1.CREATE TABLE newTABLE SELECT * FROM oldTABLE WHERE 1=2
// 复制表结构和数据(不包括主键)
2.CREATE TABLE newTABLE SELECT * FROM oldTABLE
// 子查询
3.SELECT * FROM TABLE1 WHERE 字段 IN(SELECT MIN(字段) FROM TABLE2) //in可以换成'='
// 查询出表1存在于表2中的数据
4.SELECT * FROM TABLE1 where EXISTS(SELECT * FROM TABLE2)
// 内连接
5.SELECT
TABLE1.*, TABLE2.*
FROM
TABLE1
INNER JOIN TABLE2 ON TABLE1.字段 = TABLE2.字段
// 查询范围内的数据
6.SELECT * FROM TABLE where 字段 BETWEEN range1 and range2
// 查询范围外的数据
7.SELECT * FROM TABLE where 字段 NOT BETWEEN range1 and range2
// 取前N条数据
8.SELECT * FROM TABLE LIMIT m,n //SELECT TOP 10 * FROM TABLE WHERE 范围(mysql不能使用)
// 随机取N条数据
9.SELECT * FROM TABLE ORDER BY RAND() LIMIT n
// 查询数据库的所有表名及行数
10.SELECT TABLE_NAME,TABLE_ROWS FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA='数据库名称'
// 查询指定数据库中指定表的所有字段名
11.SELECT column_name from information_schema.columns where table_schema='数据库' and table_name='表'
// 用sqlcmd将sql文件导入表
12.sqlcmd -S 服务器名称 -U 帐户 -P 密码 -d 数据库 -i SQL Script
example:sqlcmd -S "HOMESQLEXPRESS" -U "sa" -P "12345678" -d "Database" -i "E:My Documentstest.sql"
//将A表中的数据插入B表(B包含A的数据结构)
13.INSERT INTO DATABASE.DBO.B (字段1,字段2,字段3,...)SELECT 字段1,字段2,字段3,... FROM DATABASE.DBO.A
//Remark:
内连接: 只连接匹配的行
左(外)连接:包含左边表的全部行(不管右边的表中是否存在与它们匹配的行),以及右边表中全部匹配的行
右(外)连接:包含右边表的全部行(不管左边的表中是否存在与它们匹配的行),以及左边表中全部匹配的行
全(外)连接:包含左、右两个表的全部行,不管另外一边的表中是否存在与它们匹配的行.
交叉连接:生成笛卡尔积-它不使用任何匹配或者选取条件,而是直接将一个数据源中的每个行与另一个数据源的每个行都一一匹配.