数据库原理与应用chpSQL语言.pptx
《数据库原理与应用chpSQL语言.pptx》由会员分享,可在线阅读,更多相关《数据库原理与应用chpSQL语言.pptx(145页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第3章 SQL语言关系数据库标准语言SQL概述SQL的基本数据类型的基本数据类型SQL的数据定义(的数据定义(create,alter,drop)SQL的数据操纵(的数据操纵(insert,update,delete)SQL的数据查询(的数据查询(select)SQL的数据控制(的数据控制(grant,revoke)第1页/共145页2.1 SQL概述1、SQL语言标准的发展历程语言标准的发展历程 SQL-86SQL-89SQL-92 (SQL1)SQL-99 (SQL2)SQL-2003(SQL3)第2页/共145页2、SQL的特点的特点 一体化(功能强大)一体化(功能强大)数据查询、数据操
2、纵、数据定义、数据控制于数据查询、数据操纵、数据定义、数据控制于一体一体,风格统一风格统一 高度非过程化高度非过程化 只需提出做什么只需提出做什么,无需指明怎么做无需指明怎么做 面向集合的操作方式面向集合的操作方式 能以多种方式使用能以多种方式使用 既可以独立使用既可以独立使用,也可以嵌入到其他高级语也可以嵌入到其他高级语言言简洁(语法简单):简洁(语法简单):9个动词个动词,类似英语语句类似英语语句2.1 SQL概述(续)第3页/共145页2.1 SQL概述(续)3、SQL语言基本概念语言基本概念 基本表基本表 独立存在的表独立存在的表,一个关系对应一个基本表。一个关系对应一个基本表。视图视
3、图 虚表。是从一个或几个基本表导出的表。虚表。是从一个或几个基本表导出的表。视图中存放的仅仅是定义视图中存放的仅仅是定义,而不是数据而不是数据,数据仍在基本表中。数据仍在基本表中。索引索引 加速查询的速度而提供的数据结构加速查询的速度而提供的数据结构第4页/共145页第5页/共145页2.2 SQL Server的数据类型1、数值型、数值型int4个字节个字节smallint2个字节个字节tinyint1个字节个字节numeric小数小数decimal小数小数float浮点数浮点数第6页/共145页2.2 SQL Server的数据类型(续)2、字符串型、字符串型char固定长度(固定长度(1
4、-8000)varchar可变长度(可变长度(1-8000)text可存储可存储231-1个字符的文本个字符的文本image可存储多种格式的文件可存储多种格式的文件第7页/共145页2.2 SQL Server的数据类型(续)3、日期时间型、日期时间型datetime8个字节(毫秒)个字节(毫秒)smalldatetime4个字节(分钟)个字节(分钟)4、货币型、货币型money8个字节个字节smallmoney4个字节个字节第8页/共145页学生课程数据库学生课程数据库学生表:学生表:Student(Sno,Sname,Ssex,Sage,Sdept)第9页/共145页学生课程数据库课程表:
5、课程表:Course(Cno,Cname,Cpno,Credit)第10页/共145页学生课程数据库选课表:选课表:SC(Sno,Cno,Grade)第11页/共145页2.3 数据定义操作对象创建删除修改模式模式CREATE SCHEMADROPSCHEMA表表CREATETABLEDROPTABLEALTERTABLE视图视图CREATEVIEWDROPVIEW索引索引CREATEINDEXDROPINDEX数据库数据库CREATEDATABASEDROPDATABASEALTERDATABASE第12页/共145页2.3 数据定义(续)1、数据库的定义与删除、数据库的定义与删除 数据库定
6、义数据库定义 CREATE DATABASE database_name 创建一个数据库及存储该数据库的文件。创建一个数据库及存储该数据库的文件。每个数据库至少包括两个文件:主数据文件和每个数据库至少包括两个文件:主数据文件和事务日志文件。事务日志文件。第13页/共145页2.3 数据定义(续)1、数据库的定义与修改与删除、数据库的定义与修改与删除 数据库修改数据库修改 ALTER DATABASE database_name。修改数据库。修改数据库。数据库删除数据库删除 DROP DATABASE database_name 删除数据库所有文件及磁盘文件。删除数据库所有文件及磁盘文件。第14
7、页/共145页2、模式的定义与删除、模式的定义与删除 模式定义模式定义 CREATE SCHEMA schema_name AUTHORIZATION owner 创建一个模式创建一个模式,并指明模式的所有者。并指明模式的所有者。可以在模式中建立其他数据对象可以在模式中建立其他数据对象,如基本表如基本表,视图视图,索引等。索引等。2.3 数据定义(续)第15页/共145页2、模式的定义与删除、模式的定义与删除 模式删除模式删除 DROP SCHEMA schema_name 删除模式。删除模式。CASCADE表示级联删除表示级联删除,删除模式的同时删除删除模式的同时删除模式下的数据库对象。模式
8、下的数据库对象。RESTRICT拒绝删除已定义了数据库对象的模拒绝删除已定义了数据库对象的模式。式。2.3 数据定义(续)第16页/共145页2.3 数据定义(续)3、基本表的定义、删除及修改、基本表的定义、删除及修改 基本表定义基本表定义 CREATE TABLE(列级约束列级约束 ,列级约束列级约束,表级完整性约束定义表级完整性约束定义)第17页/共145页CREATE TABLE Student(Sno char(7)PRIMARY KEY,Sname char(10)UNIQUE,Ssexchar(2)CHECK(Ssex=男 or Ssex=女),Sagetinyint CHECK(
9、Sage=15 and Sage=45),Sdept char(20)DEFAULT 计算机系)2.3 数据定义(续)第18页/共145页CREATE TABLE Course(Cno char(4)PRIMARY KEY,Cname varchar(40)NOT NULL,Cpnochar(4),Ccredittinyint,FOREIGN KEY(Cpno)REFERENCES Course(Cno)2.3 数据定义(续)表级完整性约束条件表级完整性约束条件,列列Cpno中数据必须参中数据必须参照列照列Cno中的数据。中的数据。第19页/共145页CREATE TABLE SC(Sno c
10、har(7),Cno char(4),Grade numeric(5,2),PRIMARY KEY(Sno,Cno),FOREIGN KEY(Cno)REFERENCES Course(Cno),FOREIGN KEY(Sno)REFERENCES Student(Sno),)2.3 数据定义(续)表级完整性约束条件表级完整性约束条件,参照完整性规则参照完整性规则第20页/共145页第21页/共145页2.3 数据定义(续)表结构的修改表结构的修改修改列的定义修改列的定义ALTER TABLE 表名表名 ALTER COLUMN 如:修改如:修改Student的的Sdept为为40个字符宽度个
11、字符宽度ALTER TABLE Student ALTER COLUMN Sdept char(40)第22页/共145页 增加新列增加新列ALTER TABLE 表名表名 ADD 约束约束如:在如:在Student中增加中增加Address(家庭住址)列(家庭住址)列ALTER TABLE Student Add Address varchar(30)2.3 数据定义(续)第23页/共145页2.3 数据定义(续)删除列删除列ALTER TABLE 表名表名 DROP COLUMN 如:删除如:删除Student的的Sage列列ALTER TABLE Student DROP COLUMN
12、Sage第24页/共145页 添加约束添加约束ALTER TABLE 表名表名 ADD CONSTRAINT constraint_name 约束类型约束类型()如:在如:在Student中增加中增加Sno为主关键字为主关键字ALTER TABLE Student Add PRIMARY KEY(Sno)如:添加如:添加SC的的Sno列的外码约束为列的外码约束为Student的的SnoALTER TABLE SC ADD FOREIGN KEY(Sno)REFRENCES Student(Sno)2.3 数据定义(续)约束名也可以省略第25页/共145页2.3 数据定义(续)例如:增加课程名必
13、须惟一的约束条件例如:增加课程名必须惟一的约束条件ALTER TABLE CourseADD CONSTRAINT UnqCnameUNIQUE(Cname)例如:增加成绩约束例如:增加成绩约束,成绩在成绩在0100之间之间ALTER TABLE SCADD CONSTRAINT ChkGRADECHECK(Grade=0 AND Grade=100)第26页/共145页2.3 数据定义(续)删除约束删除约束ALTER TABLE 表名表名 DROP 约束名约束名如:如:ALTER TABLE COURSE DROP UnqCname如:如:ALTER TABLE SC DROP ChkGRA
14、DE第27页/共145页2.3 数据定义(续)表的删除表的删除 DROP TABLE RESTRICT|CASCADE RESTRICT表示删除表时有限制表示删除表时有限制,若表建立了与其若表建立了与其他表的约束、触发器、视图等关系或对象他表的约束、触发器、视图等关系或对象,则不允许删则不允许删除。除。CASCADE表示删除时将与该表相关的约束、视图等表示删除时将与该表相关的约束、视图等一起删除一起删除 如:删除表如:删除表Student DROP TABLE Student第28页/共145页2.3 数据定义(续)4、索引的建立与删除、索引的建立与删除 索引是加快查询效率的一种手段。索引是加
15、快查询效率的一种手段。索引是按照基本表中某个(某些)属性列上的值索引是按照基本表中某个(某些)属性列上的值进行排序进行排序,以提供多种查找途径。以提供多种查找途径。一个基本表可以建立一个或多个索引。一个基本表可以建立一个或多个索引。第29页/共145页2.3 数据定义(续)4、索引的建立与删除、索引的建立与删除 建立索引建立索引 CREATE UNIQUE CLUSTERED|NONCLUSTERED INDEX index_nameON table|view (column ASC|DESC ,.n )第30页/共145页2.3 数据定义(续)例如:例如:(1)在在Student表上建立按学
16、号升序排列的索引表上建立按学号升序排列的索引 CREATE INDEX Sno_A ON Student(Sno)(2)在在Course表的课程名建立惟一索引表的课程名建立惟一索引 CREATE UNIQUE Cname_U ON Course(Cname)第31页/共145页2.3 数据定义(续)例如:例如:(3)在在SC表上建立按学号升序表上建立按学号升序,课程号降序排列的索引课程号降序排列的索引 CREATE INDEX SC_A ON SC(Sno,Cno DESC)第32页/共145页2.3 数据定义(续)删除索引删除索引 DROP INDEX 表名表名.索引名索引名例如:例如:删除
17、删除SC表上的表上的SC_A索引索引 DROP INDEX SC.SC_A注意:索引由系统进行维护注意:索引由系统进行维护,当基本表中数据发生变化时当基本表中数据发生变化时,系统需要对根据数据重新维护索引系统需要对根据数据重新维护索引,因此过多建立索引也会因此过多建立索引也会降低数据库的使用效率。降低数据库的使用效率。第33页/共145页练习:用SQL语句定义下列基本表第34页/共145页CREATE TABLE class(CLASSNAME CHAR(20)PRIMARY KEY,MAXCREDIT SMALLINT,MINCREDIT SMALLINT)CREATE TABLE stud
18、ent(STUDENTID CHAR(6)PRIMARY KEY,NAME CHAR(8),SEX CHAR(2),BIRTHDAY DATETIME,CLASSNAME,FOREIGN KEY(CLASSNAME)REFERENCES CLASS(CLASSNAME)第35页/共145页练习:用SQL语句修改基本表的结构1、在班级信息表、在班级信息表(class)增加约束:最大学分限制大于增加约束:最大学分限制大于最小学分限制最小学分限制ALTER TABLE classADD CONSTRAINT check_cCHECK(MAXCREDITMINCREDIT)第36页/共145页2、在学
19、生信息表、在学生信息表(student)增加一个属性列:增加一个属性列:列名:列名:SAGE 数据类型:整型数据类型:整型 ALTER TABLE student ADD SAGE INT3、在学生信息表、在学生信息表(student)增加一个约束:增加一个约束:SAGE必须介于必须介于1545之间之间ALTER TABLE student ADD CONSTRAINT CHECK_SCHECK(SAGE=15 AND SAGE=45)第37页/共145页2.4 数据查询功能1、SELECT的基本结构的基本结构SELECT FROMWHERE GROUP BYHAVINGORDER BY第38
20、页/共145页2.4 数据查询功能(续)2、简单查询、简单查询例例1 查询全体学生的学号、姓名查询全体学生的学号、姓名SELECT SNO,SNAME FROM STUDENT注意:输出列的顺序可以与表中定义的列顺序不同。注意:输出列的顺序可以与表中定义的列顺序不同。第39页/共145页2.4 数据查询功能(续)2、简单查询、简单查询例例2 查询全部列查询全部列SELECT*FROM STUDENTSELECT*FROM COURSESELECT*FROM SC第40页/共145页2.4 数据查询功能(续)2、简单查询、简单查询例例3 查询全体学生的姓名和出生年份(需要进行计算的输出列)查询全
21、体学生的姓名和出生年份(需要进行计算的输出列)SELECT SNAME,2009-SAGE FROM STUDENT为输出列起个列名:为输出列起个列名:SELECT SNAME,2009-SAGE AS BIRTH FROM STUDENT计算出的出生年份计算出的出生年份第41页/共145页2.4 数据查询功能(续)2、简单查询、简单查询例例4 查询计算机系全体学生的姓名查询计算机系全体学生的姓名例例5 查询年龄小于查询年龄小于20岁的学生的姓名和年龄岁的学生的姓名和年龄SELECT SNAME FROM STUDENT WHERE SDEPT=计算机系计算机系SELECT SNAME,SAG
22、E FROM STUDENTWHERE SAGE20第42页/共145页2.4 数据查询功能(续)2、简单查询、简单查询例例6 查询计算机系年龄小于查询计算机系年龄小于20岁学生的姓名岁学生的姓名例例7 查询年龄介于查询年龄介于22岁到岁到24岁的学生姓名和年岁的学生姓名和年龄龄SELECT SNAME FROM STUDENT WHERE SDEPT=计算机系计算机系 AND SAGE20SELECT SNAME,SAGE FROM STUDENTWHERE SAGE=22或:或:Between and 一般用于数值型的比较一般用于数值型的比较SELECT SNAME,SAGE FROM S
23、TUDENTWHERE SAGE BETWEEN 22 AND 24第43页/共145页2.4 数据查询功能(续)2、简单查询、简单查询例例8 查询查询SC表中有哪些学生选修了课程。只需给出学号(消除重表中有哪些学生选修了课程。只需给出学号(消除重复值)复值)例例9 查询信息系、数学系和计算机系学生的姓名和性别。查询信息系、数学系和计算机系学生的姓名和性别。SELECT DISTINCT SNO FROM SCSELECT SNAME,SSEX FROM STUDENTWHERE SDEPT IN(信息系信息系,数学系数学系,计算计算机系机系)第44页/共145页2.4 数据查询功能(续)2、
24、简单查询、简单查询例例10 查询姓李的同学的基本信息。查询姓李的同学的基本信息。例例11 查询姓李、张、刘的同学的信息。查询姓李、张、刘的同学的信息。例例12 查询不姓李、张、刘的同学的信息。查询不姓李、张、刘的同学的信息。SELECT*FROM STUDENTWHERE SNAME LIKE 李李%SELECT*FROM STUDENTWHERE SNAME LIKE 张李刘张李刘%SELECT*FROM STUDENTWHERE SNAME LIKE 张李刘张李刘%第45页/共145页2.4 数据查询功能(续)2、简单查询、简单查询例例13 查询无考试成绩的学生的学号。查询无考试成绩的学生
25、的学号。例例14 查询有考试成绩的学生的学号和成绩。查询有考试成绩的学生的学号和成绩。SELECT SNO FROM SCWHERE GRADE IS NULLSELECT SNO FROM SCWHERE GRADE IS NOT NULL第46页/共145页2.4 数据查询功能(续)3、查询结果排序、查询结果排序例例15 将学生按年龄由小到大排序。将学生按年龄由小到大排序。例例16 输出选修输出选修c02课程学生的成绩课程学生的成绩,按降序排序。按降序排序。SELECT*FROM STUDENTORDER BY SAGESELECT*FROM SCWHERE CNO=C02ORDER BY
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 原理 应用 chpSQL 语言
限制150内