欢迎来到天天文库
浏览记录
ID:59265980
大小:393.00 KB
页数:59页
时间:2020-09-22
《数据库系统概论第3章ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第三章关系数据库标准语言SQL3.1SQL概述3.2数据定义3.3数据查询3.4数据更新3.5视图3.1SQL概述SQL(StructuredQueryLanguage)结构化查询语言,是关系数据库的标准语言数据查询数据定义数据操纵数据控制SQL视图2视图1基本表2基本表1基本表3基本表4存储文件2存储文件1外模式模式内模式SQL支持关系数据库三级模式结构3.2数据定义SQL的数据定义功能:3.2.1模式的定义与删除CREATESCHEMA<模式名>AUTHORIZATION<用户名>[<表定义子句>
2、<视图定义子句>
3、<授权定义子句>]CREATESCHEMAStuCourseAUTHORI
4、ZATIONWANG;DROPSCHEMA<模式名>5、RESTRICT>DROPSCHEMAStuCourseRESTRICT3.2.2基本表的定义、删除与修改(1)基本表的定义CREATETABLE<表名>(<列名><数据类型>[<列级完整性约束条件>][,<列名><数据类型>[<列级完整性约束条件>]]…[,<表级完整性约束条件>]);课程表Course[例]建立一个“课程”表CourseCREATETABLECourse(CnoCHAR(4)PRIMARYKEY,CnameCHAR(40),CpnoCHAR(4),CcreditSMALLINT,FOREIGNKEY(Cp6、no)REFERENCESCourse(Cno));先修课Cpno是外码被参照表是Course被参照列是Cno问题下面建立一个“学生选课”表SC方法是否正确?CREATESC(SnoCHAR(9)PRIMARYKEYnull,CnoCHAR(4)PRIMARYKEY,GradeSMALLINTnull,FOREIGNKEY(Sno)REFERENCESStudent(Sno),FOREIGNKEY(Cno)REFERENCESCourse(Cno),);Sqlserver主要数据类型数据类型符号标识数据类型符号标识整数型bigint,int,smallint,tinyintUnicode字符型7、nchar,nvarchar、精确数值型decimal,numeric文本型text,ntext浮点型float,real二进制型binary,varbinary货币型money,smallmoney日期时间类型datetime,smalldatetime,date,time位型bit时间戳型timestamp字符型char,varchar图像型image其他cursor,sql_variant,table,uniqueidentifier,xml3.2.2基本表的定义、删除与修改(2)修改基本表ALTERTABLE<表名>[ADD<新列名><数据类型>[完整性约束]][DROP<完整性约束名8、>][ALTERCOLUMN<列名><数据类型>];例:向Student表增加“入学时间”列,其数据类型为日期型。ALTERTABLEStudentADDS_entranceDATE;3.2.2基本表的定义、删除与修改(3)删除基本表DROPTABLE<表名>[RESTRICT9、CASCADE];例:删除Student表,同时删除表上定义的索引等其他对象DROPTABLEStudentCASCADE;3.2.3索引的建立与删除索引的建立CREATE[UNIQUE][CLUSTER]INDEX<索引名>ON<表名>(<列名>[<次序>][,<列名>[<次序>]]…);CREATECLUSTERI10、NDEXStusnameONStudent(Sname);索引的删除DROPINDEXStusname;3.3数据查询SELECT[ALL11、DISTINCT]<目标列表达式>[,<目标列表达式>]…FROM<表名或视图名>[,<表名或视图名>]…[WHERE<条件表达式>][GROUPBY<列名1>[HAVING<条件表达式>]][ORDERBY<列名2>[ASC12、DESC]];3.3数据查询3.3.1单表查询3.3.2连接查询3.3.3嵌套查询3.3.4集合查询3.3.5Select语句的一般形式3.3.1单表查询查询仅涉及一个表:选择表中的若干列选择表中的若干元组ORDERBY子句聚集函数13、GROUPBY子句Having子句选择表中的若干列[例1]选择部分列SELECTSno,SnameFROMStudent;[例]选择所有列SELECT*FROMStudent[例]获得经过计算的列SELECTSname,2012-SageFROMStudent;[例]使用列别名SELECTSname,2012-Sageyear-of-birthFROMStudent;选择表中的若干元组(1)消除取
5、RESTRICT>DROPSCHEMAStuCourseRESTRICT3.2.2基本表的定义、删除与修改(1)基本表的定义CREATETABLE<表名>(<列名><数据类型>[<列级完整性约束条件>][,<列名><数据类型>[<列级完整性约束条件>]]…[,<表级完整性约束条件>]);课程表Course[例]建立一个“课程”表CourseCREATETABLECourse(CnoCHAR(4)PRIMARYKEY,CnameCHAR(40),CpnoCHAR(4),CcreditSMALLINT,FOREIGNKEY(Cp
6、no)REFERENCESCourse(Cno));先修课Cpno是外码被参照表是Course被参照列是Cno问题下面建立一个“学生选课”表SC方法是否正确?CREATESC(SnoCHAR(9)PRIMARYKEYnull,CnoCHAR(4)PRIMARYKEY,GradeSMALLINTnull,FOREIGNKEY(Sno)REFERENCESStudent(Sno),FOREIGNKEY(Cno)REFERENCESCourse(Cno),);Sqlserver主要数据类型数据类型符号标识数据类型符号标识整数型bigint,int,smallint,tinyintUnicode字符型
7、nchar,nvarchar、精确数值型decimal,numeric文本型text,ntext浮点型float,real二进制型binary,varbinary货币型money,smallmoney日期时间类型datetime,smalldatetime,date,time位型bit时间戳型timestamp字符型char,varchar图像型image其他cursor,sql_variant,table,uniqueidentifier,xml3.2.2基本表的定义、删除与修改(2)修改基本表ALTERTABLE<表名>[ADD<新列名><数据类型>[完整性约束]][DROP<完整性约束名
8、>][ALTERCOLUMN<列名><数据类型>];例:向Student表增加“入学时间”列,其数据类型为日期型。ALTERTABLEStudentADDS_entranceDATE;3.2.2基本表的定义、删除与修改(3)删除基本表DROPTABLE<表名>[RESTRICT
9、CASCADE];例:删除Student表,同时删除表上定义的索引等其他对象DROPTABLEStudentCASCADE;3.2.3索引的建立与删除索引的建立CREATE[UNIQUE][CLUSTER]INDEX<索引名>ON<表名>(<列名>[<次序>][,<列名>[<次序>]]…);CREATECLUSTERI
10、NDEXStusnameONStudent(Sname);索引的删除DROPINDEXStusname;3.3数据查询SELECT[ALL
11、DISTINCT]<目标列表达式>[,<目标列表达式>]…FROM<表名或视图名>[,<表名或视图名>]…[WHERE<条件表达式>][GROUPBY<列名1>[HAVING<条件表达式>]][ORDERBY<列名2>[ASC
12、DESC]];3.3数据查询3.3.1单表查询3.3.2连接查询3.3.3嵌套查询3.3.4集合查询3.3.5Select语句的一般形式3.3.1单表查询查询仅涉及一个表:选择表中的若干列选择表中的若干元组ORDERBY子句聚集函数
13、GROUPBY子句Having子句选择表中的若干列[例1]选择部分列SELECTSno,SnameFROMStudent;[例]选择所有列SELECT*FROMStudent[例]获得经过计算的列SELECTSname,2012-SageFROMStudent;[例]使用列别名SELECTSname,2012-Sageyear-of-birthFROMStudent;选择表中的若干元组(1)消除取
此文档下载收益归作者所有