SQL语言概述
SQL是结构化查询语言(Structure Query Language),1974年提出,1979年被IBM实现,SQL语言已经成为关系型数据库的标准语言。
包括:
- DDL数据定义语言
- 语句有CREATE ,ALTER ,DROP,操作表,视图,触发器,存储过程
- DML数据操作语言
- 语句有SELECT ,INSERT , UPDATE , DELETE,用于检索和操作数据
- DCL数据控制语言
- 语句有GRANT , DENY , REVOKE,只有sysadmin,数据库创建者,拥有者,安全管理员有权利执行,用来设置或更改数据库用户或角色权限
- 流程控制
- 常用语句有BEGIN…END , IF…ELSE , WHILE , BREAK , GOTO , WAITFOR , RETURN等语
逻辑运算符
- AND
- OR
- NOT
- ALL,所有表达式为true才为true
- ANY,表达式中一个为true则为true
- BETWEEN ,在某个范围内则为true
- EXISTS
- IN ,操作数为表达式列表中的一个则为true。
语句基本格式
SELECT * FROM 表名 WHERE 条件 GROUP BY 字段 HAVING 表达式 ORDER BY 字段 ASC| DESC
说明:GROUP BY子句后可以使用HAVING 短语,用来分组后筛选,HAVING 必须跟随ORDER BY子句使用。
默认情况,查询结构表的标题可以是表的字段名,也可以无标题,还可以使用AS 对字段标题进行修改
USE 销售管理 GO SELECT 商品名称,型号,销售价-进价 AS 差价,库存 FROM 商品表 GO

使用查询生成新表,或者临时表
USE 销售管理 GO SELECT 商品名称,型号,销售价-进价 AS 差价,库存 INTO 商品表附表 FROM 商品表 GO
结果

临时表的使用
临时表在本次服务器连接过程中有效,一旦服务器断开连接,临时表失效,并被删除。
USE 销售管理 GO SELECT 商品名称,型号,销售价-进价 AS 差价,库存 INTO #临时商品表 FROM 商品表 GO

快速生成数据表结构(空白哦)
因为WHERE 1=2不成立,所以就不会检索出符合条件的数据,生成的是一个没有数据的空白表
USE 销售管理 GO SELECT 商品名称,型号,销售价-进价 AS 差价,库存 INTO #商品表副本 FROM 商品表 WHERE 1=2 GO SELECT * FROM #商品表副本


SQL汇总查询
聚合函数
常用的聚合函数有6个:
- COUNT(*),统计所有记录个数
- COUNT[ DISTINCT] 字段,统计字段中值的个数
- SUM 字段,对指定字段(数值型)求和
- AVG 字段,对指定字段(数值型)求平均值
- MAX 字段,求一个字段最大值
- MIN 字段,求一个字段最小值
分组查询语句
有时候统计每种商品销售总金额,需要对销售表中销售金额进行汇总,然后再进行操作,这就是分组查询。
GROUP BY子句实现,
GROUP BY 字段 HAVING 分组后的筛选条件表达式
注意:BY 字段 按指定字段进行分组,字段值相同的记录放在一组,每一组汇总只有一条数据。
HAVING 的筛选是对经过分组后结果进行筛选,而不是对原始表筛选。
SELECT 子句后的字段列表,必须是聚合函数 ,或者是GROUP BY 子句中的字段。