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