第五章 结构化查询语言.pptx
第五章结构化查询语言;1.SQL简介
SQL语言是结构化查询语言(StructuredQueryLanguage)的缩写,它是一种介于关系代数和关系演算之间的语言,是关系数据库的标准语言。其功能包括数据定义、数据操纵和数据控制三个部分。
2.SQL语言的三个方面
数据定义语言DDL:定义数据表、视图和索引等
数据操纵语言DML:查询、插入、删除和修改数据库中数据的操作。
数据控制语言DCL:包括对数据库的安全控制、完整性控制以及对事务的定义、并发控制和恢复等。;定义数据表结构
CREATETABLE是用于定义表的语句。
语句基本格式为:
CREATETABLE|DBF表名[NAME长表名][FREE]
(字段名1字段类型(字段宽度[,小数位数])
[NULL|NOTNULL][CHECK逻辑表达式[ERROR提示信息]]
[DEFAULT默认值]
[PRIMARYKEY|UNIQUE]
[,字段名2字段类型(字段宽度[,小数位数])…],…);-NAME子句定义长表名
-NULL|NOTNULL选择字段的值是否允许为空值
-DEFAULT子句取默认值。
-CHECK子句检查约束,限制字段的取值范围。
-ERROR子句定义执行有效性规则时显示的提示信息。
-PRIMARYKEY|UNIQUE子句定义该字段为主关键字或候选关键字。;例5.1定义一个数据库表(student);CREATETABLEstudent(stunoC(10)NOTNULL
PRIMARYKEY,stunameC(8)NOTNULL,
genderC(2)default女,
depcodeC(2),birthplaceC(12),birthdateD,partyL)
其中:
-学号(stuno)和姓名(stuname)字段设置为非空
-stuno为主关键字
-性别(gender)字段默认值为“女”;执行SQL语句:
CREATETABLEsscore(stunoC(10)NOTNULL,;
ccodeC(7)NOTNULL,gradeN(5,1)CHECKgrade=0andgrade=100;
ERROR成绩应在0~100之间);执行SQL语句:
CREATETABLEcourseFREE(ccodeC(7)NOTNULL;UNIQUE,cnameC(20)NOTNULL,;
creditsN(3,1),depcodeC(2),characterC(10),examwayC(4));ALTERTABLE语句用于更改基本表结构,包括增加、删除、修改字段以及设置字段属性和表属性等。
该语句格式有两种:表字段属性和表属性。;ALTERTABLE语句语法结构:
ALTERTABLE表名
ALTER[COLUMN]字段名字段类型(字段宽度[,小数位数])
[NULL|NOTNULL]
[SETCHECK逻辑表达式[ERROR提示信息]]
[SETDEFAULT默认值]
[DROPCHECK]
[DROPDEFAULT];例5.4修改student,将性别(gender)字段规则设置为“性别为男或女”,并设置出错信息提示。
ALTERTABLEstudentALTERCOLUMNgender;
SETCHECKgender=男ORgender=女ERROR性别只能为男或女;修改字段类型和或宽度;2024-12-30;增加字段;2024-12-30;1.数据插入
语句格式如下:
INSERTINTO表名[(字段名1[,字段名2],…)]
VALUES(常量1[,常量2],…)
语句的功能是将VALUES子句中各常量组成的记录添加到表名所指定的表中。;例5.8向course表中插入一条新记录(4210211,男子篮球初级班,2.0,公共任选课,考查“)。
INSERTINTOcourse;
VALUES(4210211,男子篮球初级班,2.0,公共任选课,考查);2.数据修改
语句格式如下:
UPDATE表名SET字段名1=表达式1[,字段名2=表达式2]…
[WHERE条件表达式]
该语句的功能是修改指定数据表中满足WHERE子句指定条件的记录。
其中SET子句给出需修改的字段及其新的值。若不使用WHERE子句,则更新所有记录的指定字段值。;例5.10将教师表(teacher)中工号为“41165”教师的学历修改为“博士”。
UPDATEteac