数据库笔记--- ---第3章:关系数据库标准语言SQL

数据库笔记—

—第3章:关系数据库标准语言SQL
一:SQL的特点
1:综合统一;
2:高度非过程化;
3:面向集合的操作方式;
4:以同一种语法结构提供多种使用方式;
5:语言简洁,易学易用。
二:SQL的动词

SQL功能 动词
数据查询 SELECT(选择)
数据定义 CREATE(创建),DEOP(删除),ALTER(改变)
数据操纵 INSERT(插入),UPDATE(更新),DELETE(删除)
数据控制 GRANT(授予),REVOKE(收回)

三:视图的定义
视图是从一个或几个基本表导出的表。它本身不独立存储在数据库中,即数据库中只存放视图的定义而不存放视图对应的数据。这些数据仍存放在导出视图的基本表中,因此视图是一个虚表。视图在概念上与基本表等同,用户可以在视图上再定义视图。
视图的作用:
(1):视图能够简化用户的操作
(2):视图使用户能以多种角度看待同一数据
(3):视图对重构数据库提供了一定程度的逻辑独立性
(4):视图能够对机密数据提供安全保护
(5):适当利用视图可以更清晰地表达查询
有关视图的语句在下面详细讲解。
四:SQL的数据定义语句

类型 单词
模式 SCHEMA
TABLE
视图 VIEW
索引 INDEX

五:对基本表的操作
例题1:建立一个“学生”表student
create table student
(sno char(9) primary key,  /*列级完整性约束条件,sno是主码 */
sname char(20) unique,    /*sname取唯一值 */
ssex char(2),
sage smallinnt,
sdept char(20)
);
例题2:建立一个“课程”表 course
CREATE TABLE course
(cno char(4) PRIMARY KEY,    /*列级完整性约束条件,csno是主码 */
cname char(40) NOT NULL,   /*列级完整性约束条件,cname 不能取空值 */
cpno char(4),     /*cpno 的含义是先修课 */
ccredit smallint,
FOREIGN KEY (cpno) REFERENCES course (cno)
  /*表级完整性约束条件,cpno是外码,被参照表是course,被参照列是cno */
);
例题3:建立学生选课表SC
create table sc
(sno char(9),
cno char(4),
grade smallint,
PRIMARY KEY(sno,cno),   /*主码由两个属性构成,必须作为表级完整性进行定义 */
FOREIGN KEY (sno) REFERENCES student(sno),
/*表级完整性约束条件,sno是外码,被参照表是student */
FOREIGN KEY (cno) REFERENCES course(cno),
/*表级完整性约束条件,cno是外码,被参照表是course */
);
六:数据查询
数据查询是数据库的核心操作。
1:单表查询;  
(1):DISTINCT 可以消除重复的元素。
(2):ORDER BY 子句 ASC(升序),DESC(降序)
例:select sno, grade
from sc
where cno=‘3’
ORDER BY grade DESC
(3):聚集函数
COUNT    统计元组个数
SUM     求和
AVG    求平均
.......
(4):GROUP BY 子句
   将查询结果按某一列或多列的值分组,值相等的为一组。如果分组后还要求按一定的条件对这些组进行筛选,最终只能输出满足指定条件的组,则可以使用HAVING短语指定筛选条件。
   WHERE子句与HAVING短语的区别在于作用对象不同。WHERE子句作用于基本表或视图,从中选择满足条件的元组。HAVING短语作用于组,从中选择满足条件的组。
2:连接查询
(1):等值于非等值连接查询,
(2):自身连接,
(3):外连接,
(4):多表连接。
3:嵌套查询
  SQl语言允许多层嵌套查询,即一个子查询还可以嵌套其他子查询。需要特别指出的是,子查询的SELECT语句中不能使用ORDER BY子句,ORDER BY 子句只能对最终查询结果排序。
  嵌套查询使用户可以用多个简单查询构成复杂的查询,从而增强SQL的查询能力。以层层嵌套的方式来构造程序正式SQL中“结构化”的含义所在。
(1):带有IN谓词的子查询
(2):带有比较运算符的子查询
(3):带有ANY(SOME)或ALL谓词的子查询
(4:):带有EXISTS谓词的子查询
带有EXISTE谓词的子查询不返回任何数据,只产生逻辑真“reue”或逻辑假值“false”。
4:集合查询
(1):并  UNION
(2):交  INTERSECT
(3):差  EXCEPT
注:参加集合操作的各查询结果的列数必须相同;对应项的数据类型也必须相同。
七:视图
例题1:
建立信息系学生的视图,并要求进行修改和插入操作时仍需保证该是视图只有信息系的学会。
CREALE VIEW IS_student
AS
select sno, sname,sage
from student
where sdapt=‘IS’
WITH CHECK OPTION
例题2:
建立信息系选修了1号课程的学生的视图(包括学号,姓名,成绩)
CREALE VIEW IS_S1(sno,sname,grade)
AS
select student.sno,sname,grade
from student,sc
where sdept=‘IS’ and sc.cno=‘1’;
写在最后,本章的知识点暂时写到这里,以后再想到的话,会随时补充的。

猜你喜欢

转载自blog.csdn.net/m0_47305552/article/details/105761524