第5章 结构化查询语言SQL课件.ppt
《第5章 结构化查询语言SQL课件.ppt》由会员分享,可在线阅读,更多相关《第5章 结构化查询语言SQL课件.ppt(77页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、数据库案例教程数据库案例教程第第5章章 结构化查询语言结构化查询语言SQL本章选修本章选修学习要点(学习要点(本章内容学生可以自学本章内容学生可以自学) SQL语言的基本概念、特点语言的基本概念、特点 SQL语言的功能语言的功能 SQL语言的用法语言的用法 通过本章的学习,了解通过本章的学习,了解SQL语言及其标语言及其标准的发展、准的发展、SQL语言的特点及分类、视图相语言的特点及分类、视图相关语句,熟悉关语句,熟悉SQL语言中各种语句的语法,语言中各种语句的语法,熟悉熟悉SQL数据定义语言(数据定义语言(DDL)语句,掌)语句,掌握握SQL语言中数据查询、数据操纵语言的详语言中数据查询、数
2、据操纵语言的详细语法,并能深刻理解、综合应用,以便为细语法,并能深刻理解、综合应用,以便为今后深层次的学习打下更加坚实的基础。今后深层次的学习打下更加坚实的基础。学习目标学习目标重点难点v 重点:重点:v 1、SELECT命令的使用,如:使用SELECT命令实现基本查询、条件查询、嵌套查询、多表查询和连接查询。v 2、查询结果的处理,输出重定向,查询结果的排序、查询分组和统计等。v 3、用查询设计器构造SELECT语句。v 难点:难点:v 1、SELETE命令的使用。特别是条件查询、嵌套查询、多表查询和连接查询的实现。v 2、查询结果的排序、分组和统计处理。 5.1 SQL语言概述vSQLSt
3、ructured Query Language,结构化查询语言 1986年,由美国ANSI确定为关系数据库的标准语言。 1987年,ISO将其定为国际标准。 1989年,ISO提出了具有完整性特征的SQL,成为SQL89 1992年公布了SQL的新标准,即SQL-92。 SQL99SQL3SQL语言的特点vSQL是一种结构一体化的语言。它包括了数据定义、数据查询、数据操纵和数据控制等功能,可以完成数据库活动中的全部工作。SQL语言的组成v数据定义:CREATE、DROP(删除)、 ALTER(修改) (删除某记录)v数据操纵:INSERT、UPDATE、DELETEv数据控制:GRANT、RE
4、VOKEv数据查询:SELECT(选择工作区)SQL语言的组成(1)数据定义语言(Data Definition Language,简称DDL) 用于定义SQL模式、基本表、视图和索引。(2)查询语言(Query Language,简称QL) 用于数据查询。(3)数据操纵语言(Data Manipulation Language,简称DML) 用于数据的增、删、修改。(4)数据控制语言(Data Control Language,简称DCL) 用于数据访问权限的控制。5.2 数据定义语言vCREATE vALTERvDROP创建表v在CREATE TABLE中可以使用的数据类型及说明:vC、N
5、 、 D 、 T 、L、M、G创建表CREATE TABLE定义基本表的语句格式为 :CREATE TABLE( NOT NULL UNIQUE ,属性名2类型2 NOT NULL UNIQUE ) 其他参数;v 例5-1:学生成绩数据库含有三张表:v 学生关系:S(SNO,SNAME,SEX, AGE, DNAME)v 课程关系:C(CNO, CNAME, CREDIT, PRE_CNO)v 选课关系:SC(SNO, CNO, SCORE)v 可用下列SQL语句来实现: 创建表CREATE TABLE CREATE TABLE S ( SNO CHAR(6) PRIMARY KEY, SNA
6、ME CHAR(8) NOT NULL, AGE SMALLINT, SEX CHAR(1), DNAME VARCHAR(12);CREATE TABLE C ( CNO CHAR(2) NOT NULL, CNAME VARCHAR(24) NOT NULL, CREDIT SMALLINT, PRE_CNO CHAR(2), PRIMARY KEY(CNO);CREATE TABLE SC ( SNO CHAR(6) NOT NULL, CNO CHAR(2) NOT NULL, SCORE SMALLINT, PRIMARY KEY(SNO,CNO), FOREIGN KEY(SNO)
7、 REFERENCES S ON DELETE CASCADE, FOREIGN KEY(CNO) REFERENCES C ON DELETE NO ACTION);创建表v 例1、使用命令建立数据库XSK,用SQL命令在该库中建立STUDENT表,结构及要如下。字段名字段类型字段长度特殊要求学号C7主索引姓名C8不能为空性别C2年龄N3入学年月D是否党员L备注M创建表创建表v例2、在XSK中建立score表,结构如下。字段名字段类型字段长度小数位数学号C7课号C5期末N52修改表结构ALTER TABLEv添加字段: ALTER TABLE 表名 ADD COLUMN 字段名 字段类型 (
8、宽度)v例:为SCORE表添加添加两个字段,“平时(N(5,1)”和“期中(N(5,1)”。修改表结构v修改字段 ALTER TABLE 表名 ALTER COLUMN 字段名 字段类型(宽度)v例:在score中,修改“期末”字段为N(5,1)。修改表结构v删除字段 ALTER TABLE 表名 DROP COLUMN 字段名v例:在student表中,删除“是否党员”字段。修改表结构v字段更名 ALTER TABLE 表名 RENAME COLUMN 原字段名 TO 新字段名v例:在STUDENT表中,把“备注”字段名改为“其它情况”。修改表结构v改变表的结构时,索引表达式、字段和表的有效
9、性规则、命令、函数等等可能仍会引用原始字段名,因此有时不能执行命令。删除表DROP TABLEvDROP TABLE 表名v执行了 DROP TABLE 之后,所有与被删除表有关信息都将丢失。v例:删除SCORE表。5.3 数据操纵语言vINSERTvDELETEvUPDATE插入记录INSERT v INSERT INTO 表名 字段名1,字段名2 VALUE(表达式1,表达式2)v 如果要插入表中所有字段的数据,可省略字段名。v 如果省略了字段名,则必须按照表结构定义字段的顺序来指定字段值。v 例1、向STUDENT表中添加记录。插入记录v INSERT INTO 表名 FROM ARRA
10、Y 数组名v INSERT INTO 表名 FROM MEMVARv 把内存变量的内容插入到与它同名的字段中。如果某一字段不存在同名的内存变量,则该字段为空。v 例1、从数组向表中添加记录。v例2、利用内存变量向表中添加记录。删除记录DELETEv DELETE FROM 数据库名 表名WHERE 逻辑表达式1 AND|OR 逻辑表达式2v 为指定的表中的记录加删除标记。如果要删除当前数据库中的表的记录,可省略数据库名,否则必须加上包含有该表的数据库名。在数据库名的后面、表名的前面包含感叹号 (!) 分隔符。v 例:将STUDENT表中所有男生的记录删除。UPDATEvUPDATE 数据库名!
11、表名 SET 字段名1=表达式1,字段名2=表达式2WHERE 逻辑表达式1 AND|OR 逻辑表达式2v如果省略了 WHERE 子句,在列中的每一行都用相同的值更新。v例:将STUDENT表中所有99级学生的“入学年月”改为“1999/09/10”。 索引的建立和删除 建立索引的语句格式为: CREATE UNIQUE INDEX 索引名 ON 基本表名(ASC|DESC, ASC|DESC);例如,对表S建立以下索引 CREATE UNIQUE INDEX SNO_INDEX ON S (SNO); CREATE UNIQUE INDEX SNAME_ADDR_INDEX ON S (SN
12、AME ASC,HOSTADDR DESC); 删除索引的语句格式: DROP INDEX 索引名;5.4 数据查询SELECTv SELECT FROMWHEREv 功能:从一个表或多个表中查询数据。 SELECT指定查询哪些字段 使用WHERE子句限定记录 使用FROM子句限定表名v 含义:根据WHERE子句的条件表达式,从FROM子句指定的表中找出满足条件的记录,再按SELECT子句中的字段表达式,选出记录形成结果表。v在VFP中,查询就是一个扩展名为QPR的查询文件,其中的内容就是一条SELECT语句。5.4 数据查询SELECT5.4.1 基本查询基本查询就是单表查询,:SELECT
13、 ALL|DISTINCT *|列表达式 FROM 学生nALL:查询结果中包含所有行 ( 包括重复值 ), 是默认设置。nDISTINCT:在查询结果中剔除重复的行。n注意 每一个 SELECT 子句只能使用一次DISTINCT。n*表示所有字段。n列表达式可以是字段名,表达式,字符串常量、函数等。基本查询v例1:列出“学生”表中所有同学名单 SELECT * FROM 学生v例2:列出成绩表中所有学生的学号,去掉重复值。 SELECT DISTINCT 学号 FROM 成绩SELECT命令中的函数v例3、列出所有学生的学号,姓名和入学成绩,其中入学成绩四舍五入保留整数。 SELECT 学号
14、,姓名,ROUND(入学成绩,0) AS “入学成绩” FROM 学生vAS :指定查询结果中列的标题。可省略。v例4、列出学生表中所有学生的年龄。 SELECT 姓名, YEAR(DATE()-YEAR(出生日期) AS 年龄 FROM 学生v例5、求出学生总数。 SELECT COUNT(*) FROM 学生v例6、查询选修了课程的学生人数。 SELECT COUNT(DISTINCT 学号) FROM 成绩课堂练习v1、查询全体学生的姓名、学号、专业。v2、查全体学生的姓名及其出生年份。v3、查询成绩表中的课号,去掉重复值。v4、查询成绩表中平时,期中,期末的平均成绩。5.4.2 带条件
15、查询vWHERE子句可指定查询的条件。v格式:WHERE 条件表达式 AND|OR条件表达式2WHERE比较操作符n例1、查询所有的男生记录。nSELECT * FROM 学生 WHERE 性别=“男”n例2、求出计算机专业学生入学成绩的平均分。nSELECT 专业,AVG(入学成绩) AS 入学成绩平均分 FROM 学生 WHERE 专业=“计算机” v例3、列出非计算机专业的学生名单。 SELECT * FROM 学生 WHERE 专业“计算机”v例4、统计计算机专业入学成绩在600分以上的学生的人数。 SELECT COUNT(姓名) 人数 FROM 学生 WHERE 入学成绩=600
16、AND 专业=“计算机”WHEREINvWHERE子句中的IN谓词用来确定查询的集合。v例1、查询计算机专业和外语专业的学生姓名和专业。 SELECT 姓名,专业 FROM 学生 WHERE 专业 IN (“计算机”,“外语”) 相当于 SELECT 姓名,专业 FROM 学生 WHERE 专业 =“计算机” OR 专业=“外语”)v例2、查询既不是计算机专业也不是外语专业的学生姓名和专业。 SELECT 姓名,专业 FROM 学生 WHERE 专业 NOT IN (“计算机”,“外语”)WHEREBETWEENvWHERE子句中的BETWEEN运算符用来确定范围。v格式: BETWEENAN
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第5章 结构化查询语言SQL课件 结构 查询 语言 SQL 课件
限制150内