1:SQL的特点
可以独立完成数据库生命周期中的全部活动:
①:定义和修改、删除关系模式,定义和删除视图,插入数据,建立数据库
②:对数据库中的数据进行查询和更新
③:数据库重构和维护
④:数据库安全性、完整性控制,以及事务控制
2:SQL的动词
SQL 功 能 | 动词 |
数 据 查 询 | SELECT |
数 据 定 义 | CREATE,DROP,ALTER |
数 据 操 纵 | INSERT,UPDATE,DELETE |
数 据 控 制 | GRANT,REVOKE |
3:学生-课程模式 S-T :
学生表:Student(Sno,Sname,Ssex,Sage,Sdept)
课程表:Course(Cno,Cname,Cpno,Ccredit)
学生选课表:SC(Sno,Cno,Grade)
4:SQL的数据定义功能:
模式定义 表定义 视图和索引的定义
5: SQL的数据定义语句
操 作 对 象 | 操 作 方 式 | ||
创 建 | 删 除 | 修 改 | |
模式 | CREATE SCHEMA | DROP SCHEMA |
|
表 | CREATE TABLE | DROP TABLE | ALTER TABLE |
视图 | CREATE VIEW | DROP VIEW |
|
索引 | CREATE INDEX | DROP INDEX | ALTER INDEX |
6:定义模式
为用户WANG定义一个学生-课程模式S-T
CREATE SCHEMA “S-T” AUTHORIZATION WANG
7:在CREATE SCHEMA中可以接受CREATE TABLE,CREATE VIEW和GRANT子句
CREATE SCHEMA <模式名> AUTHORIZATION <用户名>[<表定义子句>|<视图定义子句>|<授权定义子句>]
8:删除模式:
DROP SCHEMA <模式名> <CASCADE|RESTRICT>
CASCADE(级联)
删除模式的同时把该模式中所有的数据库对象全部删除。
RESTRICT(限制)
如果该模式中定义了下属的数据库对象(如表、视图等),则拒绝该删除语句的执行。
仅当该模式中没有任何下属的对象时才能执行。
数据类型 | 含义 |
CHAR(n),CHARACTER(n) | 长度为n的定长字符串 |
VARCHAR(n), CHARACTERVARYING(n) | 最大长度为n的变长字符串 |
CLOB | 字符串大对象 |
BLOB | 二进制大对象 |
INT,INTEGER | 长整数(4字节) |
SMALLINT | 短整数(2字节) |
BIGINT | 大整数(8字节) |
NUMERIC(p,d) | 定点数,由p位数字(不包括符号、小数点)组成,小数后面有d位数字 |
DECIMAL(p, d), DEC(p, d) | 同NUMERIC |
REAL | 取决于机器精度的单精度浮点数 |
DOUBLE PRECISION | 取决于机器精度的双精度浮点数 |
FLOAT(n) | 可选精度的浮点数,精度至少为n位数字 |
BOOLEAN | 逻辑布尔量 |
DATE | 日期,包含年、月、日,格式为YYYY-MM-DD |
TIME | 时间,包含一日的时、分、秒,格式为HH:MM:SS |
TIMESTAMP | 时间戳类型 |
INTERVAL | 时间间隔类型 |
9:修改基本表
ALTER TABLE <表名>
[ ADD[COLUMN] <新列名> <数据类型> [ 完整性约束 ] ]
[ ADD <表级完整性约束>]
[ DROP [ COLUMN ] <列名> [CASCADE| RESTRICT] ]
[ DROP CONSTRAINT<完整性约束名>[ RESTRICT | CASCADE ] ]
[ALTER COLUMN <列名><数据类型> ]
ADD子句用于增加新列、新的列级完整性约束条件和新的表级完整性约束条件。
DROP COLUMN子句用于删除表中的列
DROP CONSTRAINT子句用于删除指定的完整性约束条件
ALTER COLUMN子句用于修改原有的列定义,包括修改列名和数据类型
10:删除基本表
DROP TABLE <表名>[RESTRICT| CASCADE]
RESTRICT:删除表是有限制的
CASCADE:删除该表没有限制
11:索引的建立与删除
建立索引的目的:加快查询速度
特点:B+树索引具有动态平衡的优点
HASH索引具有查找速度快的特点
12:数据字典
数据字典是关系数据库管理系统内部的一组系统表,它记录了数据库中所有定义信息:关系模式定义 视图定义 索引定义 完整性约束定义 各类用户对数据库的操作权限 统计信息等
13:语句格式
SELECT [ALL|DISTINCT] <目标列表达式>[,<目标列表达式>] …
FROM <表名或视图名>[,<表名或视图名> ]…|(SELECT 语句)
[AS]<别名>
[ WHERE <条件表达式> ]
[ GROUP BY <列名1> [ HAVING <条件表达式> ] ]
[ ORDER BY <列名2> [ ASC|DESC ] ]
14:SELECT子句:指定要显示的属性列
FROM子句:指定查询对象(基本表或视图)
WHERE子句:指定查询条件
GROUP BY子句:对查询结果按指定列的值分组,该属性列值相等的元组为一个组。通常会在每组中作用聚集函数。
HAVING短语:只有满足指定条件的组才予以输出
ORDER BY子句:对查询结果表按指定列值的升序或降序排序