四章节结构化查询语言SQL.ppt
《四章节结构化查询语言SQL.ppt》由会员分享,可在线阅读,更多相关《四章节结构化查询语言SQL.ppt(47页珍藏版)》请在三一办公上搜索。
1、第四章 结构化查询语言SQL,掌握数据模式的建立和删除的命令格式与作用;掌握基本表结构的建立、修改与删除的命令格式与作用;掌握基本表内容的插入、修改与删除的命令格式与作用;掌握视图的建立、修改与删除的命令格式与作用;熟练掌握查询语句的格式与各个选项的作用,能够按照查询要求写出相应的查询语句。,SQL语言的功能:SQL是结构化查询语言(Structured Query Language)的缩写,具有数据定义(DDL)、数据操纵(DML)和数据控制(DCL)、数据查询四个部分。,SQL数据定义功能:能够定义数据库的三级模式结构,即外模式、全局模式和内模式结构。在SQL中,外模式有叫做视图(View
2、),全局模式简称模式(Schema)或数据库(Database),内模式由系统根据数据库模式自动实现,一般无需用户过问。,基本表(表)、属性(字段)、元组(行)的概念,SQL数据操纵功能:包括对基本表和视图的数据查询、插入、删除和修改,特别是具有很强的数据查询功能。,SQL的数据控制功能:主要是对用户的访问权限加以控制,以保证系统的安全性。,SQL,视图V1,视图V2,基本表B4,基本表B3,基本表B2,基本表B1,外模式,模式,存储模式,SQL支持的数据库的体系结构,一、数据库模式的建立和删除 1、建立数据库模式 语句格式:CREATESCHEMA|DATABASE AUTHORIZATIO
3、N 语句功能:在计算机系统中建立一个只有名字的空数据库,并定义出它的所有者名。,语句举例:(1)create schema xuesh authorization 刘勇(2)create database 数据库,2、删除数据库模式 语句格式:DROP SCHEMA|DATABASE 数据库名 语句功能:从计算机系统中删除(撤销)一个数据库。当然会同时把该库中的所有信息一并删除掉。语句举例:drop database xuesh,二、表结构的建立、修改和删除 1、建立表结构 语句格式:CREATE TABLE.(,,)语句功能:在当前或给定的数据库中定义一个表的结构(即关系模式)。,语句说明:
4、a.若省略和则在当前数据库中建立一个表,否则在指定数据库中建立一个表。使用户给所定义的表所起的名字。可以在一个表定义中出现一次或多次,每个包括列名(即属性名)、相应数据类型和该列的完整性约束等内容。在所有列定义之后可以给出表级完整性约束。,b.可使用的数据类型主要有以下四种:char(n)定长字符型 int 整型 float 浮点型,又称实数型 date 日期型,c.列级完整性约束有以下六种:1.DEFAULT 默认值约束。2.NULL/NOT NULL 空值/非空值约束。注明每行上的该列值为空。3.PRIMARY KEY 主码约束。注明该列为关系的主码。4.UNIQUE单值约束,又称唯一值约
5、束。必须不相同,d.表级完整性约束包括以下四种:1.PRIMARY KEY(,)主码约束。注明一列或同时多个列为关系的主码。2.UNIQUE单值约束。一个或同时若干个列为单值。3.FOREIGN KEY()REFERENCES(,)外码约束。4.CHECK()检查约束。,5.REFERENCES()外码约束。6.CHECK()检查约束。注明该列的取值条件,或称取值限制。,注:若只涉及到一个列时,则既可以作为列级完整性约束,又可以作为表级完整性约束,当然只取其一。,语句举例:(1)create table 学生(学生号 char(7)primary key,姓名 char(6)not null
6、unique,性别 char(2)not null chech(性别=男 or 性别=女),出生日期 datetime check(出生日期=1 and 年级=4),(2)Create table 课程(课程号 char(4)primary key,课程名 char(10)not null unique,课程学分 int check(课程学分=1 and 课程学分=6),Create table 选课(学生号 char(7),课程号 char(4),成绩 int check(成绩=0 and 成绩=100),primary key(学生号,课程号),foreign key(学生号)refere
7、nces 学生(学生号),foreign key(课程号)references 课程(课程号),三、表内容的插入、修改和删除 1、插入记录 向一个表中插入记录有两种语句格式,一种是单行插入,另一种是多行插入。单行插入:格式:INSERT INTO.(,)VALUES 多行插入:格式:INSERT(INTO).(,)语句功能:向一个表中所指定的若干列插入一行或多行数据。注意:当列值为字符串或日期时,必须用单引号括起来,以区别于数值数据。语句举例:p79,2、修改表结构 语句格式:ALTER TABLE.ADD,|DROP COLUMN,|DROP,语句功能:向已定义过的表中添加一些列的定义或一些
8、表级完整性约束,或者从已定义过的表中删除一些列或一些完整性约束。举例:(1)alter table 学生 add 籍贯 char(6)(2)alter table 学生 drop column 籍贯,3、删除表结构 语句格式:DROP TABLE.语句功能:从当前或给定的数据库中删除一个表。举例:drop table 学生1,2、修改记录 语句格式:UPDATE.SET=,FROM,WHERE 语句功能:按条件修改一个表中一些列的值、语句举例:(1)update 职工 set 年龄=年龄+1(2)Update 职工 set 基本工资=职工1.基本工资+职工1.职务津贴 from 职工1 whe
9、re 职工.职工号=职工1.职工号(3)Update 职工 set 基本工资=基本工资*1.2 where 职工号=010405,3、删除记录 语句格式:DELETE FROM.FROM,WHERE,语句功能:删除一个表中满足条件的所有行语句举例:(1)delete from 职工 where 年龄45(2)Delete 职工 from 职工1 where 职工.职工号=职工1.职工号(3)Delete 职工,四、视图的建立、修改和删除 视图是在基本表之上建立的表,它的结构(即所有列定义)和内容(即所有数据行)都来自基本表,它依据基本表存在而存在。每个视图的列可以来自同一个基本表,也可以来自多
10、个不同的基本表。它是基本表的抽象和在逻辑意义上建立的新关系。对视图只能进行修改和查询操作。,1、建立视图 语句格式:CREATE VIEW(,)AS 功能:在当前库中根据SELECT子局的查询结果建立一个视图,包括视图的结构和内容。,语句举例:create view 成绩视图表(学生号,姓名,课程号,课程名,成绩)as select 选课.学生号,姓名,选课.课程号,课程名,成绩 from 学号,课程,选课 where 学生.学生号=选课.学生号 and 课程.课程号=选课.课程号 and 专业=电子,2、修改视图内容 语句格式:UPDATE.SET=,FROM,WHERE 语句功能:按照一定
11、条件对当前或指定数据库中的一些列值进行修改。语句举例:update 成绩视图表 set 成绩=80 where 学生号=0102005 and 课程号=E002,3、修改视图定义:语句格式:ALTER VIEW(,)AS 语句功能:在当前数据库中修改已知视图的列,它与SELECT子句的查询结果相对应。语句举例:Create view 学生视图(学生号,姓名)as select 学生号,姓名 from 学生Alter view 学生视图(学生号,专业)as select 学生号,专业 from 学生,4、删除视图 语句格式:DROP VIEW 语句功能:删除当前数据库中一个视图。语句举例:dro
12、p view 成绩视图表,五、SQL查询1、SELECT语句 格式:SELECT ALL|DISTINCT AS,|*|.*|INTO FROM AS,AS WHERE GROUP BY,HAVING ORDER BY ASC|DESC,ASC|DESC 功能:根据一个或多个表按条件进行查询,产生出一个新表(即查询结果),该新表被显示出来或者被命名保存起来。,语句说明:a.Select选项给处在查询结果中每一行(即每一条记录)所包含的列,以及决定是否允许在查询结果中出现重复行(即内容完全相同的记录);b.into 选项决定是否把查询结果以基本表的形式保存起来,若需要则应带有该选项;c.from
13、选项提供用于查询的基本表和视图,它们均可以带有表别名,称这些表为源表,而把查询结果称为目的表;d.where 选项用来指定不同源表之间记录的连接条件和每个源表中记录的筛选(选择)条件,只有满足所给连接条件和筛选条件的记录才能被写入到目的表中;e.group by 选项用于使查询结果只包含按指定列的值进行分组的统计信息;f.having 子句通常同group by 选项一起使用,筛选出符合条件的分组统计信息;g.order by 选项用于将查询结果按指定列值的升序或降序排序。在查询语句中,通过select 选项实现投影运算,通过from选项和where选项是实现连接和选择运算(在SQL新版本中,
14、用from 选项专门实现连接运算,用where 选项专门实现选择运算),2、SELECT 选项 在该选项中,ALL/DISTING为任选项,若选择ALL,则允许在查询结果中出现内容重复的行(记录),若选择DISTINCT,则在查询结果中不允许出现内容重复的行,即只有内容互不相同的记录才能被写入到查询结果中,若省略该选项,则隐含为ALL.,应用举例:P89 例4-14-10,3、FROM选项 例4-11,4、WHERE选项 例4-124-16,SPK1(商品代号 C(8),分类名 C(6),单价 N(8,2),数量 N(3),一、简单查询,例1 从SPK1中查询出每个记录的分类名字段的值。,SE
15、LECT ALL 分类名 FROM SPK1,例2 从SPK1中查询出所有商品的不同分类名。,SELECT DISTINCT 分类名 FROM SPK1,练习:1、从SPK1中查询出单价低于2000元的商品代号、分类名和单价。2、从SPK1中查询出单价在1000元至2500元之间的所有商品。,例3 从SPK1中查询出分类名为“电视机”的所有商品,SELECT*;FROM SPK1;WHERE 分类名=“电视机”,用AS指出字段别名:,例4 从SPK1中查询出每一种商品的最高价值、最低价值。,SELECT MAX(单价*数量)AS 最高价值,MIN(单价*数量)AS 最低价值;FROM SPK1
16、,在SQL-SELECT命令中,使用的字段函数有:COUNT(字段名|*)统计出对应字段的个数,它也就是相应的记录数,通常使用*表示任一字段。MAX(字段名)求出最大值。MIN(字段名)求出最小值。AVG(字段名)求出对应的数值字段的平均值。SMU(字段名)求出对应的数值字段的总和。,SPK2(商品代号C(8),产地C(8),品牌C(8),练习 3、从SPK1中查询出每一种商品的价值。4、查询出SPK1库中分类名为“电视机”的商品种数、最高价、最低价及平均价。,练习题答案:1、SELECT 商品代号,分类名,单价;FROM SPK1;WHERE 单价1000 AND 单价2500 3、SELE
17、CT 商品代号,单价*数量 AS 价值;FROM SPK1 4、SELECT 分类名,COUNT(*)AS 种数;MAX(单价)AS 最高价,MIN(单价)AS 最低价;AVG(单价)AS 平均价;FROM SPK1;WHERE 分类名=“电视机”,SELECT 商品代号,品牌;FROM SPK2;WHERE 产地 IN(南京,北京),例 查找SPK1中所有商品中数量大于10的分类号及单价,并把单价按降续排序。,用ORDER BY 对查询结果排序,在WHERE中使用谓词 IN,例 查找SPK2中产地是南京或北京的商品的商品代号、品牌。,SELECT 分类号,单价;FROM SPK1;WHERE
18、 数量=10;ORDER BY 单价 DESC,在WHERE中BETWEENAND和NOT BETWEEND 使用,例 从SPK1中查询出单价在1000元至2500元之间的所有商品。,SELECT 商品代号,分类名,单价;FROM SPK1;WHERE 单价 BETWEEN 1000 2500,例4-11 从教学库中查询出每个学生选修每门课程的学生号、姓名、课程号、课程名、成绩等数据,Select x.学生号,姓名,y.课程号,课程名,成绩From 学生 x,课程 y,选课 zWhere x.学生号=z.学生号 and y.课程号=z.课程号,例4-12 从商品表1种查询出单价大于1500,同
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 章节 结构 查询 语言 SQL
链接地址:https://www.31ppt.com/p-5383244.html