首页 > 代码库 > SqlCollections - 数据管理

SqlCollections - 数据管理

  1 --==============================数据管理===============================  2 --插入记录  3 INSERT INTO 订单明细(折扣,数量,单价,产品ID,订单ID)  4 VALUES (0.8,3,26,2,10248)  5   6 --允许插入标识列  7 SET IDENTITY_INSERT 类别 ON  8 GO  9  10 --INSERT INTO批量插入数据 11 --格式:INSERT INTO 表1(字段1,字段2...) + 返回结果集的语句(如SELECT * FROM 表2、EXEC sp_who) 12 --表1必须是事先已经存在的表! 13 CREATE TABLE 雇员通讯录 14 ( 15     雇员ID int PRIMARY KEY, 16     姓氏 nvarchar(20), 17     名字 nvarchar(20) 18 ) 19 GO 20 INSERT INTO 雇员通讯录    --INSERT INTO 表1 SELECT 字段1,字段2 FROM 表2 21 SELECT 雇员ID,姓氏,名字 22 FROM 雇员 23 GO 24 SELECT * FROM 雇员通讯录 25 GO 26 TRUNCATE TABLE 雇员通讯录 27 GO 28 INSERT INTO 雇员通讯录(雇员ID,姓氏,名字)    --INSERT INTO 表1(字段1,字段2) SELECT 字段1,字段2 FROM 表2 29 SELECT 雇员ID,姓氏,名字 30 FROM 雇员 31 GO 32 SELECT * FROM 雇员通讯录 33 GO 34 DROP TABLE 雇员通讯录 35 GO 36  37 --SELECT INTO批量插入数据 38 --格式:SELECT 字段1,字段2 INTO 表2 FROM 表1  39 --表2必须是事先不存在的表! 40 SELECT 产品ID,产品名称 41 INTO #缺货记录 42 FROM 产品 43 WHERE 库存量 = 0 44  45 --复制表结构的方法 46 --使用SELECT INTO,但让WHERE返回空结果集 47 SELECT * 48 INTO #订单2 49 FROM 订单 50 WHERE 0 = 1 51  52 --更新记录 53 UPDATE 产品 54 SET 单价 = 单价 * 1.5 55  56 --关联多表批量更新 57 UPDATE b 58 SET b.单价 = a.单价 59 FROM 产品 a 60 JOIN 订单明细 b 61 ON a.产品ID = b.产品ID 62 WHERE a.产品名称 = N牛奶 63  64 --删除记录 65 DELETE 订单 WHERE 订购日期 < 1996.8.1 66  67 --删除所有记录 68 --TRUNCATE删的快,删除后不能用事务日志恢复 69 --TRUNCATE删除后,自增长字段会重新开始编号 70 --若该表是其他表外键指向的表,则不能用TRUNCATE删除数据 71 TRUNCATE TABLE 订单明细 72  73 --关联多表批量删除 74 DELETE 订单 75 FROM 雇员 a 76 JOIN 订单 b 77 ON a.雇员ID = b.雇员ID 78 WHERE a.姓氏 = N AND a.名字 = N 79  80 --查看最前记录 81 SELECT TOP 8 *    --查询出8条记录 82 FROM 订单明细 83 ORDER BY 数量 DESC 84  85 SELECT TOP 8 WITH TIES *    --WITH TIES显示排名并列的记录,共查询出9条 86 FROM 订单明细 87 ORDER BY 数量 DESC 88  89 SELECT TOP 10 PERCENT *        --查询出前百分之多少的记录 90 FROM 订单明细 91 ORDER BY 数量 DESC 92  93 --查询不重复的记录 94 SELECT DISTINCT 货主城市 FROM 订单 95  96 --查询标识列 97 SELECT $IDENTITY FROM 类别 98  99 --查询GUID列100 SELECT $ROWGUID FROM 类别101 102 --多表联合查询103 --[Inner] Join:只显示符合条件的记录;104 --Left [Outer] Join:显示左表中所有的记录,以及右表中符合条件的记录;105 --Right [Outer] Join:显示右表中所有的记录,以及左表中符合条件的记录;106 --Full [Outer] Join:显示所有表中的记录,包括符合条件和不符合条件的记录;107 --Cross Join:将一个表的每条记录与另一个表的每条搭配,不需要On设置条件。108 109 --Join自身110 SELECT 雇员.雇员ID,雇员.姓氏,雇员.名字,主管.姓氏,主管.名字111 FROM 雇员112 LEFT JOIN 雇员 AS 主管113 ON 雇员.上级 = 主管.雇员ID114 115 --查询字段为NULL116 SELECT *117 FROM 雇员118 WHERE 上级 IS NULL119 120 --替换NULL值121 SELECT 类别ID,类别名称,ISNULL(说明,暂无说明) AS 说明122 FROM 类别123 124 --模糊查询125 --通配符:%:0个或多个字符;_:1个字符,可重用;[]:指定范围中的任意单个字符;[^]不属于指定范围内的任意单个字符。126 --查询包含通配符的文本,只需将通配符用[]包起来127 SELECT * 128 FROM 产品129 WHERE 产品名称 LIKE %奶酪    --以奶酪结尾的130 --WHERE 产品名称 LIKE ‘__奶酪‘    --以奶酪结尾,且必须是4个字的131 --WHERE 产品名称 LIKE ‘[麻酱]油‘    --麻油或酱油132 133 --有关子查询134 SELECT * FROM 135 (136 SELECT * FROM 订单137 --ORDER BY 订单ID    --子查询不允许排序操作(例外:TOP、FOR XML)138 )a    --子查询必须取别名139 140 --分组 GROUP BY141 SELECT 货主城市,COUNT(订单ID) AS 订单总数,YEAR(订购日期) AS 订购年份142 FROM 订单143 GROUP BY 货主城市,YEAR(订购日期)144 --WITH CUBE    --可选:对GROUP BY列出的所有分组字段进行汇总运算145 WITH ROLLUP    --可选:对GROUP BY列出的第一个字段进行汇总运算146 ORDER BY 货主城市,YEAR(订购日期)147 148 --HAVING子句149 --HAVING与WHERE区别:汇总函数只能在HAVING子句中使用150 --形式上:WHERE必定在GROUP BY之前,HAVING必定在GROUP BY之后151 SELECT 货主城市,COUNT(订单ID) AS 订单总数152 FROM 订单153 GROUP BY 货主城市154 HAVING COUNT(订单ID) > 20155 156 --UNION合并结果集157 SELECT 联系人姓名,地址,电话158 FROM 供应商159 UNION ALL    --合并所有记录,包括重复记录160 SELECT 联系人姓名,地址,电话161 FROM 客户162 UNION    --去除重复数据163 SELECT 张三,aaa,123    --可以使用UNION加入临时数据

 

SqlCollections - 数据管理