数据库原理与应用--SQL语句之数据定义

本篇博客以学生-选课数据库为例来阐述SQL语句的数据定义。数据操纵、数据查询、数据控制语句简单介绍后将在以后复习。


//这一部分为例表结构,与常见数据类型,可先跳过阅读

话不多说,先把之后会用到的三个关键的表给打上:学生信息表 Students,简称S、课程信息表 Courses,简称 C以及学生选课表SC

Student:

学号

Sno

姓名

Sname

性别

Ssex

年龄

Sage

所在系

Sdept

20121521升东樊22CS
20121522凯周19IS

Course:

课程号

Cno

课程名

Cname

先修课

Cpno

学分

Ccredit

1数据库42
2信息系统13

SC:

学号

Sno

课程号

Cno

成绩

Grade

201215211100
2012152220

这三个表先行列出,后面将用到。


常见数据类型

数据类型语义
CHAR(n)长度为 n 的定长字符串
VARCHAR(n)最大长度为 n 的变长字符串
INT,INTERGER长整型(4 bytes)
SMALLINT短整型(2 bytes)
BIGING大整型(8 bytes)
FLOAT(n)精度为 n 的浮点数
DATA日期,包含年、月、日 格式为 Y-M-D
TIME时间,包含时、分、秒 格式为 H-M-S


我们先来看看常见的SQL语句分类:

1、DDL(Data Definition Language) 

数据定义语言主要用来建立数据库中各种数据对象(表、视图、触发器、索引、存储过程等)

1)CREATE 新建对象数据

2)ALTER 更新已存在的对象数据

3)DROP 删除已存在的对象数据


2、DML(Data Manipulation Language)

1) SELECT 对数据进行查找

2) INSERT 向表中插入数据(以行的形式,即元组)

3) UPDATE 修改表中数据        

4) DELETE  删除表中的数据行(即元组)


3、DCL(Data Control Language)

1) GRANT  授权语句

2)REVOKE 收回授权

3)ROLLBACK  回滚事务


数据定义 DDL

我们主要介绍 模式、表与视图的定义

操作对象  |  操作集创建删除修改
模式CREATE SCHEMA

DROP

SCHEMA

CREATE

TABLE

DROP

TABLE

ALTER

TABLE

视图

CREATE

VIEW

DROP

VIEW

索引

CREATE

INDEX

DROP

INDEX

ALTER

INDEX

注意:此处的修改 ALTER 与 更新 UPDATE 有着区别,此处的修改是对表结构的修改,而更新则基于表中的具体数据。


1、定义模式

语法:

CREATE SCHEMA <SCHEMA NAME> AUTHORIZATION <USER NAME> [<表定义子句>|<视图定义子句>|<授权定义子句>];

例:为用户 WANG 创建一个模式TEST ,并在其中定义一个表 TAB:

CREATE SCHEMA TEST AUTHORIZATION WANG
CREATE TABLE TAB(
COLUM NAME <TYPE>,
COL2 SMALLINT,
...
);

注意分隔符别漏掉。


2、删除模式

语法:

DROP SCHEMA <SCHEMA NAME> <CASECADE(级联)|RESTRICT(限制)>

其中,级联与限制必选其一。选择级联关键字将删除此模式的数据库全部对象,而限制关键字则在该模式下存在表、视图或其他数据对象时,拒绝删除操作。

例:删除上面创建的模式

DROP SCHEMA WANG CASECADE;

此语句将WANG模式连带其下的表TAB一同删除。


3、定义基本表

语法:

CREATE TABLE<TABLE NAME>
(<COL NAME> <TYPE> [列级完整性约束条件],
...
[表级完整性约束条件],
);

例:建立学生选课表SC

CREATE TABLE SC
(
Sno char(9),
Cno char(4),
Grade SMALLINT,
PRIAMRY KEY(Sno,Cno),//主码有两个属性,必须作为表级完整性约束
FOREIGN KEY(Sno) REFERENCES Student(Sno),
FOREIGN KEY(Cno) REFERENCES Course(Cno),
);


4、修改基本表

语法:

ALTER TABLE<TABLE NAME>
[ADD [COLUMN] <COLUMN NAME><TYPE>[完整性约束]]
[ADD <表级完整性约束>]
[DROP [COLUMN] <COLUMN NAME>[CASECADE|RESTRICT]]
[DROP CONSTRAINT <完整性约束名> [RESTRICT|CASECADE]]
[ALTER COLUMN<COLUMN NAME><TYPE>];

其中,

ADD子句用于增加新列,新的列级完整性约束条件和新的表级完整性约束条件。

DROP COLUMN子句用于删除表中的列,如指定了CASECADE,则将与此列关联的其他对象都删除。

DROP CONSTRAINT 子句用于删除指定的完整性约束条件,ALTER COLUMN子句用以修改原有的列定义,包括原有的列名和列定义。

例:

向Students表中增加“入学时间列”,其数据类型为日期型。

ALTER TABLE Students
ADD “入学时间”  DATE;
//新增加的列一律为NULL

例:

将年龄的数据类型由字符型改为整型。

ALTER TABLE Students
ALTER COLUMN Sage INT ;

例:

增加课程名称必须取唯一值的约束条件

ALTER TABLE COURSE
ADD UNIQUE(Cname);

5、删除基本表

语法:

DROP TABLE<TABLE NAME> [CASECADE|RESTRICT];

例:

删除Students表

DROP TABLE Students CASECADE;


参考:

《数据库系统概论第五版》

《数据库原理及应用--SQL Server 2012》

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

七月是你的谎言..

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值