SQL(Structured Query Language)——结构化查询语言
SQL语言的组成部分
- 数据定义语言 (DDL:Data Definition Language)
负责数据结构定义与数据库对象定义的语言,由CREATE、ALTER、DROP三个语法所组成,操作的对象包括关系表、视图、索引等。
- 数据操纵语言(DML: Data Manipulation Language)
其语句包括动词SELECT(查询)、INSERT(添加)、UPDATE(修改)、DELETE(删除)表中的行。
- 数据控制语言(DCL: Data Control Language)
其中包含可对数据访问权进行控制的指令,由 GRANT 和 REVOKE 两个指令组成。
- 事务处理语言(TPL: Transaction Processing Language)
它的语句能确保被DML语句影响的表的所有行及时得以更新。包括BEGIN TRANSACTION, COMMIT 和 ROLLBACK。
SQL数据基本定义功能——定义模式
CREATE SCHEMA <模式名> AUTHORIZATION <用户名>
例子:定义一个学生-课程模式
Create schema "S-T" authorization Zhang
不指明模式名则隐含为 模式名为用户名
Create schema authorization Zhang
CREATE SCHEMA <模式名> AUTHORIZATION <用户名> [<表定义子句> | <视图定义子句> | <授权定义子句>]
例子:
Create schema test authorization Zhang create table Tab1(A1 int, A2 char(10), A3 char(20))
SQL数据基本定义功能——删除模式
DROP SCHEMA <模式名> <CASCADE|RESTRICT>
例子:
Drop schema Zhang cascade
最最常用的在这里啦!!!
SQL数据基本定义功能——创建表
CREATE TABLE 表名 (<列名1> 数据类型 [列级约束], [<列名2> 数据类型 [列级约束],] ……, [表级约束])
例子:
- 创建表Students
关系模式 Students ( Sno, Sname, Ssex, Sage, Sdept )
Create table Students (Sno char(11), Sname char(20), Ssex char(2), Sage int, Sdept char(20), primary key(Sno))——————————————————这种是表级约束
Create table Students (Sno char(11)primary key, ——————————————————————这是列级约束 Sname char(20), Ssex char(2), Sage int, Sdept char(20))
- 创建表Courses
关系模式 Courses ( Cno, Cname, Cpno, Ccredit )
Create table Courses (Cno char(4), Cname char(40), Cpno char(4), Ccredit int, primary key (Cno),——————————————————————————————这是表级约束 Foreign Key (Cpno) REFERENCES Courses(Cno))—————这是定义外键
- 创建表SC
关系模式 SC ( Sno, Cno, Grade )
Create table SC ( Sno char(9), Cno char(4), Grade int, Primary key(Sno,Cno), foreign key (Sno) references Students (Sno), foreign key (Cno) references Courses (Cno))
SQL数据基本定义功能——数据类型
char(n) | 固定长度为n的字符串 |
varchar(n) | 可变长度为n的字符串 |
smallint | 短整数 |
int | 长整数 |
numberic(p,s) | 定点数。由p位数字组成,包括s位小数 |
float(n) | 精度至少为n位数字的浮点数 |
real | 取决于机器精度的浮点数 |
double precision | 取决于机器精度的双精度浮点数 |
date | 日期,格式为年、月、日,YYYY-MM-DD |
time | 时间,格式为时、分、秒,HH-MM-SS |
SQL数据基本定义功能——表的修改
添加列|完整性约束:
ALTER TABLE <表名> ADD <列名> <数据类型> [完整性约束]
删除列|完整性约束:
ALTER TABLE <表名> DROP <列名> <数据类型> [完整性约束]
修改列:
ALTER TABLE <表名> ALTER COLUMN <列名> <数据类型>
例子:
在学生表中添加字段Sclass,字符类型,长度20
Alter table Students add Sclass char(20)
将年龄的数字类型由字符型改为整型
Alter table Students alter coiumn Sage int
增加课程名称必须取唯一值的约束条件
Alter table Courses add unique (Cname)
SQL数据基本定义功能——表的删除
Drop table <表名> [restrict | cascade]
Restrict: (严格删除)表删除有限制条件,不能被其他表的约束所引用,不能有视图、触发器、存储过程或函数
Cascade: (级联删除)把一个基本表的定义连同表上的所有记录、索引以及由此基本表导出的所有视图都删除,并释放相应的存储空间
例子:
Drop table Students cascade
总是晚上才有时间码字,不积跬步,无以至千里,基础还是很重要的,下一篇开始介绍SQL查询语句,敬请关注!