第三章 sql语言_3课件
第三章SQL语言PPT课件
猜猜看:若去掉上面语句中的WHERE子句, 将会得到怎样的结果。
2021/2/11
12
37 查询选修了1号课程的学生学号、姓名、性 别、1号课程的考试分数。
SELECT Student.Sno, Sname,Ssex,Grade FROM Student, SC WHERE Student.Sno=Student.Sno and
Cno=‘1’
2021/2/11
13
38 查询选修了数据结构课程的学生学号、姓 名。
SELECT Student.Sno ,Sname FROM Student, SC, Course WHERE Student .Sno=SC.Sno and o=o and Cname=‘数据结构’
3.4.1 插入数据 3.4.2 修改数据 3.4.3 删除数据
2021/2/11
20
3.4.1 插入数据
SQL有两种插入数据的方式
插入单个元组(一条记录) 插入一批元组(多条记录)——插入一个
子查询的结果
2021/2/11
21
(1)插入单个元组:
语句格式
INSERT INTO <表名> [ (<属性列1>[,<属性列2 >…)]
2021/2/11
18
例42 查询1号课程考试成绩高于1号课程平均 分的学生学号。
SELECT Sno FROM SC WHERE Cno=‘1’ and Grade > ( SELECT AVG(Grade)
FROM SC WHERE Cno=‘1’ )
2021/2/11
《数据库原理及应用》教学课件 第三章SQL基础
(2)修改数据库中的具体文件。
ALTER DATABASE <数据库名称> ADD FILE(文件格式)[ , … N] [TO FILEGROUP <文件组名>] |ADD LOG FILE(文件格式)[ , … N] |REMOVE FILE <文件逻辑名称> |MODIFY FILE(文件格式) |ADD FILEGROUP <文件组名> |REMOVE FILEGROUP <文件组名> |MODIFY FILEGROUP <文件组名>
15
3.2 数据库基本操作
3.2.3 创建数据库
【例3-1】 创建一个数据库 SRS,数据文 件的逻辑名称为 SRS_Data,存放在 C 盘的 Data 文件夹下,文件名为 ,数据文件的初始 存储空间大小为10 MB,最大存储空间为50 MB,存储空间自动增长量为5%;日志文件 的逻辑名称为 SRS_Log,存放在 C 盘的 Data 文件夹下,文件名为,初始存储空间大小为1 MB,最大存储空间为50 MB,存储空间自动 增长量为10%。
03 面向集合
不同于非关系数据模型使用的面向记录的操作方式,SQL采用的是面向集合的操作方式,其操 作对象、查询结果都是元组的集合。
8
3.1 认识SQL
3.1.2 SQL的特点
04 使用方式灵活
SQL既可以作为独立语言又可以作为嵌入式语言使用。作为独立语言,SQL能够独立地用于联 机交互,用户在窗口键入SQL命令就可以直接对数据库进行操作;作为嵌入式语言,SQL能够嵌入 到多种高级语言程序中以供调用,如C,C++及Java等。
数据库sql基础知识大全 ppt课件
Spring, 2009.
9
SQL的数据定义 第三章
关系数据库 语言SQL
3.2 SQL的数 据定义
定义和修改基本表(定义模式中的关系):
CREATE TABLE DROP TABLE ALTER TABLE
定义视图(定义外模式):
CREATE VIEW DROP VIEW
定义索引(定义内模式):
索引的建立和删除 第三章
关系数据库 语言SQL
3.2 SQL的数 据定义
建立索引是加快查询速度的有效手段 建立索引
DBA或表的属主(即建立表的人)根据需要建立 有些DBMS自动建立以下列上的索引
▪ PRIMARY KEY ▪ UNIQUE
维护索引
DBMS自动完成
使用索引
DBMS自动选择是否使用索引以及使用哪些索引
3.2 SQL的数 据定义
基本格式
ALTER TABLE <表名>
[ ADD <新列名> <数据类型> [ 完整性约束 ] ] [ DROP <完整性约束名> ] [ ALTER COLUMN <列名> <数据类型> ]; <表名>:要修改的基本表 ADD子句:增加新列和新的完整性约束条件 DROP子句:删除指定的完整性约束条件 ALTER COLUMN子句:用于修改列名和数据类型
<表名>:所要定义的基本表的名字
<列名>:组成该表的各个属性(列)
<列级完整性约束条件>:涉及相应属性列的完整性约束条件
<表级完整性约束条件>:涉及一个或多个属性列的完整性约 束条件
Spring, 2009.
关系数据库标准语言SQL最新课件
结果为:
Sno 201215121 201215122
Sname 李勇 刘晨
Sdept CS CS
2024/3/2
关系数据库标准语言SQL最新课件
30
常用于=连接 首先按连接属性对表1和表2排序 对表1的第一个元组,从头开始扫描表2,顺序查找满足
连接条件的元组,找到后就将表1中的第一个元组与该 元组拼接起来,形成结果表中一个元组。当遇到表2中 第一条大于表1连接字段值的元组时,对表2的查询不再 继续
2024/3/2
关系数据库标准语言SQL最新课件
接条件的元组一并输出 左外连接
列出左边关系中所有的元组
右外连接
列出右边关系中所有的元组
2024/3/2
关系数据库标准语言SQL最新课件
18
外连接(续)
[例 3. 53] 改写[例 3.49]
SELECT Student.Sno,Sname,Ssex,Sage,Sdept,Cno,Grade FROM Student LEFT OUT JOIN SC ON
2024/3/2
关系数据库标准语言SQL最新课件
13
2. 自身连接
❖ 自身连接:一个表与其自己进行连接 ❖ 需要给表起别名以示区别 ❖ 由于所有属性名都是同名属性,因此必须使用别
名前缀
[例 3.52]查询每一门课的间接先修课(即先修课的先修课)
SELECT o, SECOND.Cpno FROM Course FIRST, Course SECOND WHERE FIRST.Cpno = o;
第三章关系数据库标准语言SQL精品PPT课件
第三章关系数据库标准语言SQL
3.1SQL概述
3.1.1SQL的产生与发展
3.1.2SQL的特点
SQL集数据查询、数据操纵、数据定义和数据 控制功能于一体。
主要特点包括:
1. 综合统一:SQL语言风格统一,可以独立完 成数据库生命周期中的全部活动,包括定义 关系模式、建立数据库、插入数据、查询、 更新、维护、数据库重构、数据库安全性控 制等一系列操作要求,这就为数据库应用系 统的开发提供了良好的环境。
语句格式约定符号:“<>”中为实际语义; “[]”中的内容为任性项;“{}”或“|”中的内 容为必选项,即必选其一;“[,…n]”表示前面 的项可重复多次;
一般语法规定:SQL中的数据项分隔符 “,”,其字符串常数的定界符用单引号 “ ’ ”表示;
SQL特殊语法规定:SQL的关键字一般使用大 写字母;SQL语句的结束符为“;”;SQL一 般应采用格式化书写方式。
2. 高度非过程化:SQL语言进行数据操作,只 要提出“做什么”,而无须指明“怎么做”, 因此无需了解存取路径,存取路径的选择以 及SQL语句的操作过程由系统自动完成。
3. 面向集合的操作方式:SQL语言采用集合操 作方式,不仅操作对象、查找结果可以是元 组的集合,而且一次插入、删除、更新操作 的对象也可以是元组的集合。
3.2学生-课程数据库
学生表:Student(Sno,Sname,Ssex,Sage,Sdept) 课程表:Course(Cno,Cname,Cpno,Ccredit) 选修表:SC(Sno,Cno,Grade)
3.3数据定义
SQL的数据定义包括定义基本表、定义索 引、定义视图和定义数据库,如下表
1. 建立索引
kc第3讲-关系数据库语言SQLPPT课件
• varchar(n). Variable length character strings, with user-specified maximum length n.
• int. Integer (a finite subset of the integers that is machine-dependent).
• Example: find the names of all branches in the loan relation: select branch_name from loan
• In the relational algebra, the query would be: branch_name (loan)
• Example: Declare branch_name as the primary key for branch
.
create table branch
(branch_name char(15),
branch_city char(30),
assets
integer,
primary key (branch_name))
• All tuples in the relation are assigned null as the value for the new attribute.
• 删除属性:The alter table command can also be used to drop attributes of a relation:
• A typical SQL query has the form:
select A1, A2, ..., An from r1, r2, ..., rm where P
第三章-plsql-SQL语言复习PPT课件
Insert Into Student ( sno, sname, sage)
Values ( ‘01002’, ‘李四’, 26 )
.
27
DML——数据删除(Delete)
– 只能对整个元组操作,不能只删除某些属性 上的值
– 只能对一个关系起作用,若要从多个关系中 删除元组,则必须对每个关系分别执行删除 命令
删除整个关系中的所有数据 例:删除所有学生的选课信息 Delete From SC
.
29
DML——数据更新(Update)
– 改变符合条件的某个(某些)元组的属性值 例:将01001学生转入MA系
Update Student Set sdept = ‘MA’ , sage=sage+1 Where sno = ‘01001’
.
33
Select子句——更名
为结果集中的某个属性改名 使结果集更具可读性
Select sno as ‘学号’,cno as 课程号,grade 成绩 From SC
Select sno,sname,to_char(sysdate,’yyyy’) - sage as birthday_Year
关外码也被删除
.
21
DDL——修改表结构 Alter
增加表中的属性
– 向已经存在的表中添加属性 – allow null (新添加的属性要允许为空) – 已有的元组中该属性的值被置为Null
Alter Table t Add A D
Alter Table student Add phone char(16);
.
31
DML—— 数据查询(Select)
数据查询是数据库应用的核心功能
第三章 SQL语言课件
Transact-SQL语言介绍:SQL(structured query language,结构化查询语言),是一种查询、插入、更新和删除数据,生成、修改和删除数据库对象,提供数据库安全控制、数据库完整性及数据保护控制,是针对数据库的通用数据处理语言规范。
美国国家标准局(ANSI)率先将它作为关系数据库的美国标准,之后又被国际标准化组织(ISO)采纳的标准数据库语言SQL—92。
它是一种综合的、通用的、功能强大的关系数据库语言。
但是它并非是功能全面的编程语言,许多数据库供应商把SQL语言作为自己数据库的操作语言,并且在此标准的基础上进行了不同程度的扩展。
如:Access、Oracle、Sybase、DB/2、SQL Server等都采用了SQL语言标准。
SQL语言是一种非过程化语言,在使用过程中用户不用考虑数据的存储格式、存储路径等复杂的问题,用户所需要做的只是使用SQL语言提出自己的要求,至于如何实现这些要求,则是关系数据库管理系统的任务。
Transact-SQL语言:是SQL语言的一种版本,并且也是对SQL语言进行了扩展。
是微软公司在关系型数据库管理系统SQL SERVER中的SQL的实现。
并且只能在SQL SERVER上使用。
Transact-SQL是SQL SERVER功能的核心。
不管应用程序的用户界面是什么形式,只要和数据库服务器连接最终都必然体现为Transact-SQL。
通过使用Transact-SQL语言,用户几乎可以完成SQL SERVER数据中的所有操作。
Transact-SQL语言是一种交互式查询语言,既允许用户直接查询存储在数据库中的数据库,也可以把语句嵌入到高级程序设计语言中使用。
一、Transact-SQL语句的分类:根据它的功能特点可以分为5种类型:DDL、DML、DCL、TML、附加的语言元素。
DDL:(data definition language)数据定义功能。
Get清风 第3章SQL语言ppt课件
例12 查询所有姓张的教师的教师号和姓名。
SELECT TNO, TN
FROM T
WHERE TN LIKE ‘张%’
19
例13 查询姓名中第二个汉字是“力〞的教师号和姓名。 SELECT TNO, TN FROM T WHERE TN LIKE ‘_ _力%’ 注:一个汉字占两个字符。
空值查询 某个字段没有值称之为具有空值〔NULL〕。 通常没有为一个列输入值时,该列的值就是空值。 空值不同于零和空格,它不占任何存储空间。 例如,某些学生选课后没有参加考试,有选课记录,但
例 8 查询工资在1000至1500之间的教师的教师号、姓名 及职称。 SELECT TNO,TN,PROF FROM T WHERE SAL BETWEEN 1000 AND 1500
➢ 等价于 SELECT TNO,TN,PROF FROM T WHERE SAL>=1000 AND SAL<=1500
11
➢ 另外,利用投影查询可控制列名的顺序,并可通过指 定别名改变查询结果的列标题的名字。
例4 查询全体学生的姓名、学号和年龄。 SELECT SNAME NAME, SNO, AGE FROM S
➢ 其中,NAME为SNAME的别名
12
2.3.2 条件查询
当要在表中找出满足某些条件的行时,那么需使 用WHERE子句指定查询条件。
省时为升序
例24 查询选修C1 的学生学号和成绩,并按成绩降序排列。 SELECT SNO, SCORE FROM SC WHERE CNO='C1' ORDER BY SCORE DESC
30
例25 查询选修C2、C3、C4或C5课程的学号、课程号和成绩, 查询结果按学号升序排列,学号相同再按成绩降序排列。 SELECT SNO,CNO, SCORE FROM SC WHERE CNO IN ('C2' ,'C3', 'C4','C5') ORDER BY SNO,SCORE DESC
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2. 修改多个元组的值
[例6] 将所有学生的年龄增加1岁
UPDATE Student SET Sage= Sage+1;
3. 带子查询的修改语句
[例7] 将计算机科学系全体学生的成绩置零。 UPDATE SC SET Grade=0 WHERE 'CS'= (SELETE Sdept FROM Student WHERE Student.Sno = SC.Sno);
SELECT Sdept,AVG(Sage) FROM Student GROUP BY Sdept;
插入子查询结果(续)
RDBMS在执行插入语句时会检查所插元组是 否破坏表上已定义的完整性规则
➢ 实体完整性 ➢ 参照完整性 ➢ 用户定义的完整性
➢NOT NULL约束 ➢UNIQUE约束 ➢值域约束
INSERT INTO Student (Sno,Sname,Ssex,Sdept,Sage) VALUES ('200215128','陈冬','男','IS',18);
插入元组(续)
[例2] 将学生张成民的信息插入到Student表 中。
INSERT INTO Student VALUES (‘200215126’, ‘张成民’, ‘男’,18, 'CS');
➢指定修改方式
➢要修改的列 ➢修改后取值
WHERE子句
➢指定要修改的元组 ➢缺省表示要修改表中的所有元组
修改数据(续)
▪ 三种修改方式
1. 修改某一个元组的值 2. 修改多个元组的值 3. 带子查询的修改语句
1. 修改某一个元组的值
[例5] 将学生200215121的年龄改为22岁
UPDATE Student SET Sage=22 WHERE Sno=' 200215121 ';
[例4] 对每一个系,求学生的平均年龄,并把 结果存入数据库。
第一步:建表
CREATE TABLE Dept_age
(Sdept CHAR(15)
/* 系名*/
Avg_age SMALLINT); /*学生平均年龄*/
插入子查询结果(续)
第二步:插入数据
INSERT INTO Dept_age(,Avg_age)
)
▪ 功能
将新元组插入指定表中
插入元组(续)
▪ INTO子句
属性列的顺序可与表定义中的顺序不一致 没有指定属性列 指定部分属性列
▪ VALUES子句
提供的值必须与INTO子句匹配 ➢值的个数 ➢值的类型
插入元组(续)
[例1] 将一个新学生元组(学号: 200215128;姓名:陈冬;性别:男;所在系: IS;年龄:18岁)插入到Student表中。
▪ 语句格式
DELETE FROM <表名> [WHERE <条件>];
▪ 功能
删除指定表中满足WHERE子句条件的元组
▪ WHERE子句
指定要删除的元组 缺省表示要删除表中的全部元组,表的定义仍在
字典中
删除数据(续)
▪ 三种删除方式
1. 删除某一个元组的值 2. 删除多个元组的值 3. 带子查询的删除语句
二、插入子查询结果
▪ 语句格式 INSERT INTO <表名> [(<属性列1> [,<属性列2>… )] 子查询;
▪ 功能 将子查询结果插入指定表中
插入子查询结果(续)
▪ INTO子句(与插入元组类似)
▪ 子查询 SELECT子句目标列必须与INTO子句匹配 ➢值的个数 ➢值的类型
插入子查询结果(续)
3.5 数 据 更 新
3.5.1 插入数据 3.5.2 修改数据 3.5.3 删除数据
3.4.2 修改数据
▪ 语句格式
UPDATE <表名> SET <列名>=<表达式>[,<列名>=<表达式>]… [WHERE <条件>];
▪ 功能
修改指定表中满足WHERE子句条件的元组
修改数据(续)
SET子句
第三章 sql语言_3课件
第三章 关系数据库标准语言SQL
3.1 SQL概述 3.2 学生-课程数据库 3.3 数据定义 3.4 数据查询 3.5 数据更新 3.6 视图 3.7 小结
一、插入元组
▪ 语句格式
INSERT
INTO <表名> [(<属性列1>[,<属性列2 >…)]
VALUES (<常量1> [,<常量2>] …
据也随之改变
3.6 视 图
基于视图的操作 ▪ 查询 ▪ 删除 ▪ 受限更新 ▪ 定义基于该视图的新视图
3.6 视 图
3.6.1 定义视图 3.6.2 查询视图 3.6.3 更新视图 3.6.4 视图的作用
第三章 关系数据库标准语言SQL
3.1 SQL概述 3.2 学生-课程数据库 3.3 数据定义 3.4 数据查询 3.5 数据更新 3.6 视图 3.7 小结
3.6 视 图
视图的特点
▪ 虚表,是从一个或几个基本表(或视图)导出 的表
▪ 只存放视图的定义,不存放视图对应的数据 ▪ 基表中的数据发生变化,从视图中查询出的数
修改数据(续)
RDBMS在执行修改语句时会检查修改操作 是否破坏表上已定义的完整性规则
实体完整性 主码不允许修改 用户定义的完整性
➢ NOT NULL约束 ➢ UNIQUE约束 ➢ 值域约束
3.5 数 据 更 新
3.5.1 插入数据 3.5.2 修改数据 3.5.3 删除数据
3.5.3 删除数据
1. 删除某一个元组的值
[例8] 删除学号为200215128的学生记录。
DELETE FROM Student WHERE Sno= 200215128 ';
2. 删除多个元组的值
[例9] 删除所有的学生选课记录。
DELETE FROM SC;
3. 带子查询的删除语句
[例10] 删除计算机科学系所有学生的选课记录。 DELETE FROM SC WHERE 'CS'= (SELETE Sdept FROM Student WHERE Student.Sno=SC.Sno);
插入元组(续)
[例3] 插入一条选课记录( '200215128','1 ')。 INSERT INTO SC(Sno,Cno) VALUES (‘ 200215128 ’,‘ 1 ’); RDBMS将在新插入记录的Grade列上自动地赋空值。 或者: INSERT INTO SC VALUES (' 200215128 ',' 1 ',NULL);