2023年6月21日发(作者:)
数据库系统—SQL语句SQL概述SQL的组成操作对象表和视图是SQL的操作对象操作分类数据库定义语⾔数据操纵语⾔数据控制语⾔这⼀部分包括对关系和视图的权限访问的描述,以及对事物的控制语句嵌⼊式SQl和动态SQLSQL的特点综合统⼀语⾔风格统⼀⾼度⾮过程化⾯向集合的操作⽅式以同⼀种语法结构提供两种使⽤⽅式SQL既是⾃含式语句,⼜是嵌⼊式语句语⾔简洁,易学易⽤SQL功能数据查询数据定义数据操纵数据控制操作SELECTCREATE,DROP,ALTERINSERT,UPDATE,DELECTGRANT,REVOKEHAVING⼦句HAVING是对GROUP BY后的语句得到的分组进⾏操作表的定义定义表数据类型实体完整性参照完整性reject;cascade;set-null属性值约束修改表ALTER TABLE <表名>ADD <新列名> <数据类型>[完整性约束]DROP <完整性约束名>MODIFY <列名> <数据类型>SQL没有提供删除属性操作查询语句例查询⾄少选修了学号为2000014的学⽣所选修的全部课程的学⽣姓名及所在系分析:由于SQL运算不提供⊆运算符,因此需要逻辑变换为如果R⊆成⽴,则R−S为空集SELECT Sname,SdeptFROM Student xWHERE NOT EXISTS((SELECT Cno FROM SC WHERE Sno='2000014') EXCEPT (SELECT Cno FROM SC WHERE Sno=)) AND !='2000014'也可以⽤以下语句实现SELECT Sname,SdeptFROM Student xWHERE NOT EXISTS(SELECT Cno FROM SC WHERE Sno='2000014' AND NOT EXISTS (SELECT Cno FROM SC WHERE Sno= AND Cno=))索引的定义索引不是关系模型中的概念,它属于物理实现的范畴索引⼀般由DBA建⽴索引的概念根据索引列上的值是否唯⼀,索引分为:唯⼀索引⾮唯⼀索引根据索引的结构,分为两⼤类索引:聚簇索引(Clustered Index)要求表中的元组的存放次序和索引中索引项的存放次序完全相同,因此元组也是有序的⾮聚簇索引(NOnclustered Index)建⽴索引CREATE [UNIQUE][CLUSTERED][NONCLUSTERED] INDEX <索引名>ON <表名>(<列名>[次序],<列名>[次序]...)删除索引DROP INDEX <表民.索引名>视图视图是⼀个虚表,在数据库中只存储视图的定义,⽽不存储视图的数据。(视图也可以建⽴在视图上)视图的作⽤简化⽤户的操作减少冗余数据对重构数据库提供了⼀定程度的逻辑独⽴性(⽤户和⽤户程序不受影响)对机密数据提供安全保护建⽴视图CREATE VIEW <视图名>[列名]AS <⼦查询>[WITH CHECK OPTION]WITH CHECK OPTION 表⽰对视图进⾏UPDATE和INSERT操作时要保证更新后的元组和新插⼊的元组满⾜视图定义语句⼦查询的WHERE⼦句中的条件表达式删除视图DROP VIEW <视图名>更新视图视图消解取出⼦查询替换FROM语句映射SELECT语句合并WHERE语句⾏列⼦集视图若⼀个视图是从单个表中导出,并且只是去掉了表中的某些⾏列,但是保留了主关键字多数DBMS保证⾏列⼦集视图是可以更新的存取控制授权GRANT <权限>...ON <表名或视图名>TO <⽤户>...[WITH GRANT OPTION]WITH GRANT OPTION使得获得权限的⽤户可以把权限再授予给其他⽤户收回权限REVOKE <权限>...ON <表名或视图名>FROM <⽤户>...联级回收⾓⾊⾓⾊是⼀个DBMS的⽤户的集合,该集合中的⽤户要操作相同的数据库对象,需要拥有相同的权限CREATE ROLE <⾓⾊名> --创建⾓⾊GRANT <⾓⾊名> TO <⽤户名> --将⾓⾊分配给⽤户空值的处理不能取空值的限制构成主码的列UNIQUE限制NOT NULL空值的运算空值和另⼀个值的算术运算结果为空空值和另⼀个值⽐较运算的结果为UNKNOWN聚集函数只有COUNT会对空值进⾏运算
2023年6月21日发(作者:)
数据库系统—SQL语句SQL概述SQL的组成操作对象表和视图是SQL的操作对象操作分类数据库定义语⾔数据操纵语⾔数据控制语⾔这⼀部分包括对关系和视图的权限访问的描述,以及对事物的控制语句嵌⼊式SQl和动态SQLSQL的特点综合统⼀语⾔风格统⼀⾼度⾮过程化⾯向集合的操作⽅式以同⼀种语法结构提供两种使⽤⽅式SQL既是⾃含式语句,⼜是嵌⼊式语句语⾔简洁,易学易⽤SQL功能数据查询数据定义数据操纵数据控制操作SELECTCREATE,DROP,ALTERINSERT,UPDATE,DELECTGRANT,REVOKEHAVING⼦句HAVING是对GROUP BY后的语句得到的分组进⾏操作表的定义定义表数据类型实体完整性参照完整性reject;cascade;set-null属性值约束修改表ALTER TABLE <表名>ADD <新列名> <数据类型>[完整性约束]DROP <完整性约束名>MODIFY <列名> <数据类型>SQL没有提供删除属性操作查询语句例查询⾄少选修了学号为2000014的学⽣所选修的全部课程的学⽣姓名及所在系分析:由于SQL运算不提供⊆运算符,因此需要逻辑变换为如果R⊆成⽴,则R−S为空集SELECT Sname,SdeptFROM Student xWHERE NOT EXISTS((SELECT Cno FROM SC WHERE Sno='2000014') EXCEPT (SELECT Cno FROM SC WHERE Sno=)) AND !='2000014'也可以⽤以下语句实现SELECT Sname,SdeptFROM Student xWHERE NOT EXISTS(SELECT Cno FROM SC WHERE Sno='2000014' AND NOT EXISTS (SELECT Cno FROM SC WHERE Sno= AND Cno=))索引的定义索引不是关系模型中的概念,它属于物理实现的范畴索引⼀般由DBA建⽴索引的概念根据索引列上的值是否唯⼀,索引分为:唯⼀索引⾮唯⼀索引根据索引的结构,分为两⼤类索引:聚簇索引(Clustered Index)要求表中的元组的存放次序和索引中索引项的存放次序完全相同,因此元组也是有序的⾮聚簇索引(NOnclustered Index)建⽴索引CREATE [UNIQUE][CLUSTERED][NONCLUSTERED] INDEX <索引名>ON <表名>(<列名>[次序],<列名>[次序]...)删除索引DROP INDEX <表民.索引名>视图视图是⼀个虚表,在数据库中只存储视图的定义,⽽不存储视图的数据。(视图也可以建⽴在视图上)视图的作⽤简化⽤户的操作减少冗余数据对重构数据库提供了⼀定程度的逻辑独⽴性(⽤户和⽤户程序不受影响)对机密数据提供安全保护建⽴视图CREATE VIEW <视图名>[列名]AS <⼦查询>[WITH CHECK OPTION]WITH CHECK OPTION 表⽰对视图进⾏UPDATE和INSERT操作时要保证更新后的元组和新插⼊的元组满⾜视图定义语句⼦查询的WHERE⼦句中的条件表达式删除视图DROP VIEW <视图名>更新视图视图消解取出⼦查询替换FROM语句映射SELECT语句合并WHERE语句⾏列⼦集视图若⼀个视图是从单个表中导出,并且只是去掉了表中的某些⾏列,但是保留了主关键字多数DBMS保证⾏列⼦集视图是可以更新的存取控制授权GRANT <权限>...ON <表名或视图名>TO <⽤户>...[WITH GRANT OPTION]WITH GRANT OPTION使得获得权限的⽤户可以把权限再授予给其他⽤户收回权限REVOKE <权限>...ON <表名或视图名>FROM <⽤户>...联级回收⾓⾊⾓⾊是⼀个DBMS的⽤户的集合,该集合中的⽤户要操作相同的数据库对象,需要拥有相同的权限CREATE ROLE <⾓⾊名> --创建⾓⾊GRANT <⾓⾊名> TO <⽤户名> --将⾓⾊分配给⽤户空值的处理不能取空值的限制构成主码的列UNIQUE限制NOT NULL空值的运算空值和另⼀个值的算术运算结果为空空值和另⼀个值⽐较运算的结果为UNKNOWN聚集函数只有COUNT会对空值进⾏运算
发布评论