关系数据库标准语言SQL
(这一章偏语法知识,只做一点小小的总结)
3.1 SQL简介
3.1.1 SQL提供的功能
SQL功能 | 命令 | 目的 |
---|---|---|
数据定义功能 | CREATE DATABASE,TABLE,INDEX,VIEW ALTER DATABASE,TABLE | 创建新的库、表、索引、视图 修改库定义、表定义 |
数据操纵功能 | SELECT UPDATE,DELETE,INSERT | 检索表中的内容 修改、删除、增加元组 |
数据控制功能 | GRANT,REVOKE COMMIT,ROLLBACK CREATE ASSERTION CREATE TRIGGER | 授予/回收用户的存取权限 提交、回滚事务 定义断言约束 定义触发器 |
3.1.2 SQL的特点
- 非过程化语言:用户无须了解存取路径
- 统一的语言:集DDL、DML、DCL功能为一体
- 面向集合的操作方式
- 可独立使用又可嵌入主语言使用
3.2 数据定义
操作对象 | 操作方式 | ||
---|---|---|---|
创建 | 修改 | 删除 | |
数据库 | CREATE DATABASE | ALTER DATABASE | DROP DATABASE |
表 | CREATE TABLE | ALTER TABLE | DROP TABLE |
视图 | CREATE VIEW | DROP VIEW | |
索引 | CREATE INDEX | DORP INDEX |
3.2.1 数据库
- On Primary为关键字,表明与该关键字相邻的文件为主文件。它用于存储该数据库的系统表和初始化信息,指定的其他次要文件用于保存和其他对象中的数据。
- Name为关键字,用来指定SQL Server使用的逻辑名称。
- Filename 为关键字,用来指定完全限定的NT Server文件名。
- Size为关键字,用来指定文件的初始大小,默认值是model数据库主文件(model.mdf)的大小。
- MaxSize为关键字,用来指定最大的文件尺寸,默认值是占满整个空间。FileGrowth为关键字,用来指定SQL Server扩展文件的量,默认值是10%。
- Log On为关键字,用来指定数据库的SQL Server事务日志将存储在一个与数据库对象不同的设备上。
3.2.2 表
约束:
约束名 | 内容 |
---|---|
NOT NULL | 限制列取值非空 |
DEFAULT | 指定列的默认值 |
UNIQUE | 限制列取值不能重复 |
CHECK | 限制列的取值范围 |
PRIMARY KEY | 指定表的主键 |
FOREIGN KEY | 指定表的外键 |
3.3 数据查询
3.3.1 格式
SELECT语句的处理顺序如下:
- FROM:指定数据的来源(可以是一张表,也可以是多张表,甚至是视图)。
- WHERE:依据约束条件对元组进行过滤。
- GROUP BY:对检索到的满足约束条件的元组按照指定分组列进行分组,在指定的分组列上具有相同分量值的元组归为同一组。
- HAVING:依据分组的选择条件对组进行过滤(与GROUP BY搭配使用)。
- SELECT:对查询的结果按照列表达式选出元组中的属性分量值,形成结果集。
- ORDER BY:对结果集按指定列进行排序,ASC表示将结果按升序排序,DESC表示按降序排序(系统默认为ASC)。
- INTO:将查询形成的结果放入指定的新表(若默认输出到屏幕)。
3.3.2 简单查询
字符串通配符
符号 | 用途 |
---|---|
_ | 匹配任意一个字符 |
% | 匹配任意长度的字符 |
[] | 查询一定范围的数据。用于指定一定范围内的任何单个字符,包括两端数据。 |
[^] | 用来查询不属于指定范围或集合的任何单个字符。 |