SQL语言是操作关系数据库的标准语言,是一种高级的非过程化编程语言,是沟通数据库服务器和客户端的重要工具,允许用户在高层数据库结构上工作。
SQL语言的特点:一体化、高度非过程化、面向集合的操作方式、提供多种方式使用、语言简洁。
SQL语言的功能:数据定义、数据查询、数据操纵、数据控制。
SQL支持的数据类型:
1)精确数字:tinyint、smallint、int、bighint、decimal(p,s)
2)近似数字:float(n)、real
3)日期时间型:datetime、datetime2、smalldatetime、date、time
4)字符串型:
普通字符编码串:char、varchar、text
统一字符编码串:nchar、ncarchar、ntext
二进制串:bit、binary、varbinary
5)其他类型:sql_variant、uniqueidentifier、xml
数据库的定义:
1)数据库创建:CREATE DATABASE<数据库名>
2)数据库修改:ALTER DATABASE<数据库名>
3)数据库删除:DROP DATABASE<数据库名>
架构的定义:
1)架构创建:CREATE SCHEMA <架构名>
2)架构修改:ALTER SCHMA<架构名>
3)架构删除:DROP SCHEMA<架构名>
表的定义:
1)表的创建:CREATE TABLE<表名>
列级完整性约束:
①NOT NULL:非空约束
②PRIMARY KEY:主键约束
③FOREIGN KEY:外键约束
④UNIQUE:唯一值约束
⑤DEFAULT:默认值约束
⑥CHECK:列取值范围约束
2)表的修改:ALTER TABLE<表名>
3)表的删除:DROP TABLE<表名>
表的查询:
SELECT DISTINCT(去重复)<目标列名序列>
FROM<表名>[JOIN<表名>ON<连接条件>]
[WHERE<行选择条件>]
[GROUP BY<分组依据列>]
[HAVING<组选择条件>]
[ORDER BY<排序依据列>]
模糊查询匹配字符串:
_(下划线):匹配任意一个字符
%(百分号):匹配0到多个字符
[]:匹配[]中的任意一个字符
[^]:不匹配[]中的任意一个字符
CASE表达式:
CASE测试表达式
WHEN 简单表达式1 THEN 结果表达式1
WHEN 简单表达式2 THEN 结果表达式2
···
WHEN 简单表达式n THEN 结果表达式n
END
子查询:
1)WHERE <列名> [NOT] IN(子查询)
2)WHERE <列名> 比较运算符(子查询)
3)WHERE [NOT] EXISTS(子查询)
查询的集合运算:
UNION:并运算
INTERSECT:交运算
EXCEPT:差运算
视图
视图时基于SQL语句的结果集的可视化的表
优点:简化数据查询语句、使用户能从多角度看待同一数据、提高了数据的安全性、提供了一定程度的逻辑独立性
视图的定义:CREATE VIEW<视图名>
视图的修改:ALTER VIEW<视图名>
视图的删除:DROP VIEW<视图名>
数据更改功能
数据插入:
1)单行插入:INSERT[INTO]<表名>[(列名表)] VALUES(值列表)
2)多行插入:INSERT[INTO]<表名>[(列名表)] SELECT 语句
数据更新:
UPDATE<表名> SET<列名> = {表达式 |DEFAULT I NULL} [,…n]
[FROM<条件表名>[,…n ]]
[WHERE<更新条件>]
数据删除:
DELETE [ FROM ]<表名>
[FROM<条件表名>[,…n ]
[WHERE <删除条件>]
数据控制功能
授权:
GRANT<权限>[,<权限>] …
[ON<对象类型><对象名名>]
TO <用户>[,<用户>]
WITH GRANT OPTION [AS用户];
回收授权:
REVOKE[GRANT OPTION FOR]<权限>[,<权限>] …
[ON<对象类型><对象名>]
FROM <用户>[,<用户>]···
[CASCADE][AS 用户 ];
拒权:
DENY<权限> [,<权限>] …
[ON<对象类型><对象名>]
TO<用户>[,<用户>]…;