目录
内部函数
(内部函数: SQL 标准中只使用 COUNT 、 SUM 、 AVG 、 MAX 、 MIN 函数,称之为聚集函数( Set Function )。
- COUNT 函数的结果是该列统计值的总数目;
- SUM 函数求该列统计值之和;
- AVG 函数求该列统计值之平均值;
- MAX 函数求该列最大值;
- MIN 函数求该列最小值;
GROUP BY
GROUP BY 子句把一个表按某一指定列(或一些列)上的值相等的原则分组,然后再对每组数据进行规定的操作。
GROUP BY 子句总是跟在 WHERE 子句后面,当 WHERE 子句缺省时,它跟在 FROM 子句后面。
HAVING 子句常用于在计算出聚集之后对行的查询进行控制。
(当一个子查询涉及到一个来自外部查询的列时,称为相关子查询( Correlated Subquery) 。相关子查询要用到存在测试谓词 EXISTS 和 NOT EXISTS ,以及 ALL 、 ANY ( SOME )等。)
UNION 集合运算
用于求两个结果集合的并集(两个结果集合的所有记录),并自动去掉重复行。
select ename,sal from account where sal>2000 union select ename,sal from research where sal>2000 union select ename,sal from sales where sal>2000;
注:ename,sal 是必须一致的。
INTERSECT
INTERSECTALL
EXCEPT
NATURAL JOIN
MINUS运算
minus返回两个结果集的差集。(在第一个结果集中存在的,而在第二个结果集中不存在的行。)
外连接有 3 类:
( 1 )左外连接( Left Outer Join )。连接运算谓词为 LEFT [OUTER] JOIN ,其结果表中保留左关系的所有元组。
( 2 )右外连接( Right Outer Join )。连接运算谓词为 RIGHT [OUTER] JOIN ,其结果表中保留右关系的所有元组。
( 3 )全外连接( Full Outer Join )。连接运算谓词为 FULL [OUTER] JOIN ,其结果表中保留左右两关系的所有元组。)
INSERT 插入数据
INSERT INTO 表 VALUES(值, 值, 值)
INSERT INTO TABLE_NAME (ID, name, mail) VALUES (UUID(),"ZS","ZS@163.com");
UPDATE 修改
UPDATE 表 SET 修改字段 = 修改字段 + 1
UPDATE TABLE_NAME set 修改字段=值;
// 加条件更新
UPDATE TABLE_NAME set 修改字段=值 where id in(1,...);
DELETE 删除
DELETE FROM 表 WHERE 字段 条件 60
DELETE FROM TABLE_NAME WHERE ID > 60;
SQL 的数据控制
授予 LILI 有对表 STUDENTS 的查询权。(表/视图特权的授予
一个 SQL 特权允许一个被授权者在给定的数据库对象上进行特定的操作。授权操作的数据库对象包括:表 / 视图、列、域等。
授权的操作包括: INSERT 、 UPDATE 、 DELETE 、 SELECT 、 REFERENCES 、 TRIGGER 、 UNDER 、 USAGE 、 EXECUTE 等。
其中 INSERT 、 UPDATE 、 DELETE 、 SELECT 、 REFERENCES 、 TRIGGER 有对表做相应操作的权限,故称为表特权。)
GRANT SELECT ON STUDENTS TO LILI WITH GRANT OPTION
取消 LILI 的存取 STUDENTS 表的特权。
REVOKE ALL ON STUDENTS FROM LILI CASCADE
模糊查找:
它判断列值是否与指定的字符串格式相匹配。可用于char、varchar、text、ntext、datetime和smalldatetime等类型查询。
可使用以下通配字符:
- 百分号%:可匹配任意类型和长度的字符,如果是中文,请使用两个百分号即%%。
- 下划线_:匹配单个任意字符,它常用来限制表达式的字符长度。
- 值也[]相同,但它要求所匹配对象为指定字符以外的任一个字符。
- [^]:其取值也[]相同,但它要求所匹配对象为指定字符以外的任一个字符。
例如:
限制以Publishing结尾,使用LIKE '%Publishing'
限制以A开头:LIKE '[A]%'
限制以A开头外:LIKE '[^A]%'
更改表格
ALTER TABLE table_name ADD COLUMN column_name DATATYPE
说明:增加一个栏位(没有删除某个栏位的语法。)
ALTER TABLE table_name ADD PRIMARY KEY (column_name)
说明:更改表得的定义把某个栏位设为主键。
ALTER TABLE table_name DROP PRIMARY KEY (column_name)
说明:把主键的定义删除。