文档介绍:第七章结构化查询语言(SQL)
1
本章目录
第一节 SQL概述
第二节数据定义功能
第三节数据操纵功能
第四节数据查询功能
2
SQL语言集数据定义(DDL)、数据操纵(DML)、数据管理(DCL)的功能于一体,语言风格统一,可以独立完成数据库的全部操作,包括定义关系模式、录入数据及建立数据库、查询、更新、维护数据、数据库的重新构造、数据库安全性等一系列操作的要求,为数据库应用系统开发者提供了良好的环境。
第一节 SQL概述
3
数据定义语言DDL用于执行数据定义的操作,如创建或删除表、索引和视图之类的对象。由CREATE、DROP、ALTER命令组成,完成数据库对象的建立(CREATE)、删除(DROP)和修改(ALTER)。
一、定义(创建)表
【格式】CREATE TABLE <表名> (<字段名1><数据类型>[(<宽度>[,<小数位数>])][完整性约束][NULL | NOT NULL][,<字段名2>…])
【功能】定义(也称创建)一个表。
第二节数据定义功能
4
【例5-1】创建一个表STUD1(学生信息表),它由以下字段组成:学号(C,6);姓名(C,10);性别(C,2);系别代号(C,2);出生日期(D);是否团员(L)。
CREATE TABLE STUD1(学号 C(10),姓名 C(10),;
性别 C(2),系别代号 C(2),出生日期 D,是否团员 L)
【例5-2】创建一个表SC1(课程成绩表),它由以下字段组成:学号(C,6);课程号(C,6)。
CREATE TABLE SC1(学号 C(6),课程号 C(6))
5
【格式】ALTER TABLE <表名>[ADD| ALTER <字段名><数据类型>[(<宽度>[,<小数位数>])][完整性约束][NULL | NOT NULL]
【功能】修改表结构。
【说明】ADD用于增加字段,ALTER为修改字段。
【例5-3】在课程成绩表SC1中,增加一个成绩字段变量(N,3)。
ALTER TABLE SC1 ADD 成绩 N(3)
【例5-4】在课程成绩表SC1中,增加一个整形字段:学分,并设置规则:学分>=0
ALTER TABLE SC1 ADD 学分 I CHECK 学分>=0
【例5-5】在成绩表SC1中,设置成绩字段的规则为:成绩>=0。
ALTER TABLE SC1 ALTER 成绩 set check 成绩>=0
【例5-6】删除成绩字段的规则
ALTER TABLE SC1 ALTER 成绩 DROP check
二、修改表
6
三、删除表
【格式】DROP TALBE <表名>
【功能】删除指定表的结构和内容(包括在此表上建立的索引)。
【说明】如果只是想删除一个表中的所有记录,则应使用DELETE语句。
7
数据操纵语言一般由INSERT(插入)、DELETE(删除)、UPDATE(更新),SELETE(检索,又称查询)等组成,由于SELETE比较特殊,所以一般又将它以查询(检索)语言单独出现。
第三节数据操纵功能
8
【格式】INSERT INTO <表名> [<字段名表>] VALUES (<表达式表>)
【功能】在指定的表文件末尾追加一条记录。格式用表达式表中的各表达式值赋值给<字段名表>中的相应的各字段。
【说明】如果某些字段名在INTO子句中没有出现,则新记录在这些字段名上将取空值(或默认值)。但必须注意的是,在表定义说明了NOT NULL 的字段名不能取空值。
<字段名表>:给部分字段赋值时,必须指定字段。
缺省时,按表文件字段的顺序,依次给所有字段赋值。
一、插入记录
9
【例5-7】在表文件STUD1的末尾追加记录。
INSERT INTO STUD1(学号,姓名,性别,出生日期) ;
VALUES(“011110”,“李建国”,“男”,{^2002/09/28})
注:当只给部分字段赋值时,必须指定<字段名>.
【例5-8】在表文件sc1的末尾追加记录
INSERT INTO SC1 ;
VALUES(“010102”,”kc0003”,90,0)
注:是给所有字段赋值,所以可以省略<字段名>
10