关系数据库SQL

关系数据库标准语言SQL

Sdudent

学号Sno姓名Sname性别Ssex年龄Sage所在系Sdept
201215121李勇20CS
201215122刘晨19CS
201215123王敏18MA
201215124张立19IS

Course

课程号Cno课程名Cname先行课Cpno学分Ccredict
1数据库54
2数学2
3信息系统14
4操作系统63
5数据结构74
6数据处理
7pascle语言6
学号Sno课程号Cno成绩Grade
201215121192
201215121285
201215121388
201215122290
201215122380

数据定义

模式的定义与删除

*CREATE SCHEMA<模式名>AUTHORIZATION<用户名> *
例:为用户WANG定义一个学生-课程模式S-T
CREAT SCHEMA “”S-T UTHORIZATION WANG;

删除
DROP SCHEMA<模式名>CASCADE|RESTRICT>;

基本表的建立与删除

建立
CREATE TABLE<表名>(<列名><数据类型>)[列级完整性约束条件]
例:建立一个学生表
CREATE TABLE Student
(Sno CHAR(15) PRIMARY KEY,
Sname CHAR(15) NOT NULL,
Sexy CHAR(5),
Sage SMALLINT,
Sdept CHAR(15),
FOREIGN KEY(Sno)REFERENCE Course(Sno)
);
修改基本表
ALTER TABLE<表名>
[ADD[COLUMN]<列名><数据类型>[完整性约束]
[DROP[COLUMN]<列名>[CASCADE|RESTRICT]];

删除
DROP TABLE<表名>[CASCADE|RESTRICT];
//CASCADE表示级联,删除表的同时,相关的依赖对象如视图也会被删除;RESTRICT表示删除有限制条件,表上有视图等依赖对象时不允许被删除

索引的建立与删除

建立索引
CREATE [UNIQUE][CLUSTER]INDEX<索引名>
ON<表名>(<列名>[<次序>][,<列名>[<次序 >]]···);
//索引可以建立在一个表一列或多列上,列名用逗号隔开;次序指索引值的排列顺序可以选择升序(ASC)或者降序(DESC)
//UNIQUE表示此索引对应的索引值只对应唯一的数据记录
//CLUSTER表示建立的索引是聚簇索引(在一些属性上具有相同值的元组集中存放在连续的物理块中称为聚簇)

修改索引
ALTER INDEX<旧索引名>RENAME TO<新索引名>

删除索引
DROP INDEX<索引名>

数据查询

单表查询

单表查询指仅涉及一个表的查询

1.选择表中的若干列
例:查询全体学生的学号和姓名

SELECT Sno,Sname
FROM Student;

2.选择表中的若干行
<1>DESTINCT:去除重复的行
例:查询选修了课程的学生学号

SELECT DESTINCT Sno
 FROM SC;

<2>查询满足条件的元组
WHERE常用的查询条件
确定范围:BETWEEN AND,NOT BETWEEN AND
确定集合:IN, NOT IN
字符匹配:LIKE,NOT LIKE
空值:IS NULL,IS NOT NULL

例:查询所有姓刘的姓名,学号和性别

SELECT SName,Sno,Ssex
 FROM Student 
 WHERE Sname LIKE ‘刘%’;

3.ORDER BY
对一个或多个属性列的升序(ASC)或者降序排列(DESC)
例:

SELECT *                                                              /*这里的*默认查询所有的属性列*/
FROM Student
 ORDER BY Sdept,Sage DESC        /*这里Sdep后面的ASC可写可不写,不写默认是升序*/

4.GROUP BY
将查询结果按某一列或者多列的值分组,值相同的为一组

5.聚集函数
COUNT(*):统计元组个数
SUM([DISTINCT|ALL]<列名>):计算一列值的总和
AVG([DISTINCT|ALL]<列名>):计算一列值的平均值
MAX([DISTINCT|ALL]<列名>):求一列值中的最大值
MIN([DISTINCT|ALL]<列名>):求一列值中的最小值

连接查询

自身连接
外连接

嵌套查询

一个查询块嵌套在另一个查询块的WHERE子句或者HAVING子句中
相关子查询
不相关子查询
带有ONLY或者ALL谓词的子查询
带有EXIS谓词的子查询

集合查询

并操作UNION:合并两个查询的结果
交操作INTERSECT:取两个查询结果的交集
差操作EXCEPT:两个查询结果的差集

基于派生表的查询

出现在FROM子句的子查询生成的临时派生表

数据更新

插入数据

插入元组:(格式)
INSERT
INTO<表名>(<属性名1>,<属性名2>,<属性名3>….)
VALUES(<常量名1>,<常量名2>,<常量名3>…)//字符串用单引号括起来

修改数据

格式:
UPDATE<表名>
SET<列名>=<表达式>,[<列名>=<表达式>]…
[WHERE<条件>];

删除数据

格式:
DELETE
FROM<表名>
WHERE<条件>;

视图

定义视图

建立视图
CREATE VIEW<视图名>[<列名>,<列名>…]
AS <子查询>
[WITH CHECK OPTION]; //表示对视图进行增删改查要满足子查询的条件表达
删除视图
DROP VIEW<视图名>[CASCADE].

查询视图

更新试图

视图作用

1.能够简化用户的操作
2.能使用户多个角度看待同一数据
3.重构数据库提供一定的逻辑独立性
4.对机密数据提供安全保护
5.更清晰的表达查询。

数据库的查询处理过程

查询语句—>词法分析,语法分析——>语义分析,符号名转换,安全性检查,完整性初步检查——>查询树——>代数优化,物理优化——>查询执行计划——>代码生成——>查询计划的执行代码

事物的ACID特性

1.原子性
2.一致性
3.隔离性
4.持续性

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值