文章目录
(二) 【关系数据库语言SQL】
SQL功能 | 动词 |
---|---|
数据定义 | CREATE,DROP,ALTER |
数据查询 | SELECT |
数据操纵 | INSERT,UPDATE,DELETE |
数据控制 | GRANT,REVOKE |
1.【SQL概貌,特点及其相关基本概念】
SQL语言涉及到【外模式】、【模式】,涉及不到内模式。
1.1【SQL语言的发展及标准化过程】
1.2【SQL语言的主要特点】
- 综合统一
- 高度非过程化
- 面向集合的操作方式
- 以同一种语法结构提供两种使用方法
- 语言简洁,易学易用
1.3【SQL中基本表和视图的概念】
1.3.1【视图】
- 视图不是一个独立的文件,是由一个或几个基本表导出形成的虚表。视图存储的内容是来自本地数据源或远程数据源的定义,不存放实际数据。
1.3.2【表】
- 表是数据库中用来存储数据的对象,是有结构的数据的集合,是整个数据库系统的基础。表存储的内容是本地数据源的数据。
2.【SQL数据定义功能】
操作对象 | 创建 | 删除 | 修改 |
---|---|---|---|
模式 | CREATE SCHEMA | DROP SCHEMA | |
表 | CREATE TABLE | DROP TABLE | ALTER TABLE |
视图 | CREATE VIEW | DROP VIEW | |
索引 | CREATE INDEX | DROP INDEX |
2.1【用SQL语句定义基本表(建立主码、外码,以及定义其它约束条件)】
//建立一个学生选课表SC,有学号Sno,课程号Cno,修课成绩Grade,其中(Sno,Cno)为主码
CREATE TABLE SC
(
Sno CHAR(5) NOT NULL UNIQUE,//非空约束 和 唯一约束
Cno CHAR(3),
Grade INT,
Primary key (Sno,Cno)//主码
//Foreign key (Sno,Cno)//外码
);
2.2【修改基本表的定义】
2.2.1【增加新列和新完整性约束】
ALTER TABLE Student ADD Scome DATE;//向Student表加入入学时间列,其数据类型为日期型
2.2.2【删除指定的完整性约束条件】
ALTER TABLE Student Drop Scome;//直接删除此Scome列
ALTER TABLE Student Drop UNIQUE(Sname);//删除学生姓名必须取唯一值的约束
2.2.3【修改列名和数据类型】
ALTER TABLE Student MODIFY Sage SMALLINT;//将年龄的数据类型改为半字长整数
2.3【撤消基本表】
DROP TABLE Student;//删除Student表
2.4【用SQL语句定义和撤消索引】
2.4.1【建立唯一索引】
CREATE UNIQUE INDEX Stusno ON Student(Sno);//Student表按学号升序建唯一索引
CREATE UNIQUE INDEX Coucno ON Course(Cno);//Course按课程号升序建唯一索引
CREATE UNIQUE INDEX SCno ON SC(Sno ASC,Cno DESC);//SC按学号升序和课程号降序唯一索引
2.4.2【建立聚簇索引】(更改物理顺序)
CREATE CLUSTER INDEX Stusname ON Student(Sname);
2.4.2【删除索引】
DROP INDEX StuSname;
3.【SQL数据操纵功能】
3.1【SELECT语句的格式和用法】
3.1.1【SELECT】
- 查询全体学生姓名,出生年份和所有系,要求小写字母表示所有系名。
SELECT Sname , 'BrithYear:' , 2020-Sage , ISLOWER(Sdept) FROM Student;
- 查询全体学生姓名,出生年份(列别名:BRITHDAY)和所有系,要求小写字母表示所有系名。使用列别名改变查询结构列标题。
SELECT Sname , 'BrithYear:' BRITH , 2020-Sage BRITHDAY , ISLOWER(Sdept) FROM Student;
- 查询选修了课程的学生学号
SELECT DISTINCT Sno FROM SC
- 查询选修课程的各种成绩
SELECT DISTINCT Cno,Grade FROM SC
3.1.2【WHERE】
3.1.3【集函数】
3.1.4【连接查询】
- 广义笛卡尔积
- 等值连接
- 非等值连接查询
- 自身连接查询
- 外连接查询
- 复合条件连接查询
非等值连接:between * and *或<,>,!=,>=,<=等
3.1.5【嵌套查询】
- 不相关子查询
- 相关子查询
- 引出子查询的谓词
IN、>,<,=,ANY,ALL,EXISTS
3.1【INSERT语句的格式和用法】
3.1【DELETE语句的格式和用法】
3.1【UPDATE语句的格式和用法】
【重点例题】:
【选择】
(B)
(C)
(D)
在字符串的匹配操作中,通配符【%】表示与零个或多个字符组成的字符串匹配.
三.综合题
1.设有关系数据:
PART (PART_NO, PART_NAME)
PROJECT ( PROJECT_NO,PROJECT_NAME)
SUPPLER ( SUPPLER_NO,SUPPLIER_NAME, CITY)
SUPPLY ( PART_NO,PROJECT_NO ,QUANTITY)
其中PART,PROJECT,SUPPLIER,SUPPLY
分别表示零部件,工程,供货商和供货四个关系,
关系中各属性的含义是:
PART_NO (工程编号,主键)
PART NAME (零件名称)
PROJECT NO (工程编号,主键) ;
PROJECT NAME(工程名称) ;
SUPPLIER _NO (供货商编号.主键):
SUPPLIER NANE (供货商名称) ;
CITY (供货商所在城市)
QUANTITY (供货量)
用关系代数表达式表示如下询问:
找出使用了长沙的供货商所供零部件的所有工程的名称
(2)
来源:CSDN
作者:Edward-Phoenix
链接:https://blog.csdn.net/qq_25601345/article/details/104732818