2012第6章SQL语言(讲课用).doc

上传人:自*** 文档编号:126223173 上传时间:2020-03-23 格式:DOC 页数:12 大小:318.50KB
返回 下载 相关 举报
2012第6章SQL语言(讲课用).doc_第1页
第1页 / 共12页
2012第6章SQL语言(讲课用).doc_第2页
第2页 / 共12页
2012第6章SQL语言(讲课用).doc_第3页
第3页 / 共12页
2012第6章SQL语言(讲课用).doc_第4页
第4页 / 共12页
2012第6章SQL语言(讲课用).doc_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《2012第6章SQL语言(讲课用).doc》由会员分享,可在线阅读,更多相关《2012第6章SQL语言(讲课用).doc(12页珍藏版)》请在金锄头文库上搜索。

1、第6章 SQL语言6.1 SQL概述 SQL是结构化查询语言,由四部分构成,分别为数据定义,数据查询,数据操纵和数据控制。6.2 SQL的数据定义功能6.2.1 创建数据表 命令:CREATETABLEFREE(,小数位数NULL/NOT NULLCHECK ERROR DEFAULTPRIMARY KEY/UNIQUE, 功能:创建数据表结构create table 学生;(学号 c(8) primary key not null,;姓名 c(8) not null,;性别 c(2) default 男 check 性别=男 or 性别=女 error 性别必须是男或女,;出生年月 d ch

2、eck (出生年月=1960-01-01),;入校总分 n(3),;三好生 l,;特长 m,;照片 g)Null子句定义字段可以为空;not null 子句定义字段不能为空值;primary key子句定义表的主索引;default定义字段的默认值,定义的默认值的类型应和字段的类型相同;check定义字段的有效性规则,有效性规则必须是一个逻辑表达式;error定义当表中的记录违反有效性规则时系统提示的出错信息。定义的出错信息必须是字符串表达式,字符串定界符不能省略。 注意:create table 是一条命令,分号(;)是续行号,字段之间用逗号(,)隔开。6.2.2 修改数据表 命令:ALTE

3、R TABLE ADD/ALTER/drop/rename COLUMN,小数位NULL/NOT NULLCHECKERRORDEFAULTPRIMARY KEY/UNIQUE 功能:修改基本表结构 例:在“学生”表中增加“电话”字段,并设为候选索引。ALTER TABLE 学生;ADD COLUMN 电话 C(8)6.2.3删除数据表 当某个数据表无用时,可将其删除,删除后,该表中的数据和在此表上所建的索引都被删除。 命令:DROPTABLE表名 功能:删除数据表。 例:删除表“学生”DROPTABLE学生6.2 SQL的数据查询功能 SQL的查询功能实际上是数据操纵语言(Data Mani

4、pulation Language 简称DML)的范畴。 数据查询是对数据库中的数据按指定内容和顺序进行检索输出 数据查询是数据库的核心操作。 SQL语言的数据查询只有一条SELECT语句,但用途最广泛,具有灵活的使用方法和丰富的功能。6.2.1 SELCET命令的格式 命令:SELECTALL/DISTINCTTOPPERCENT.AS,.ASFROM,INNER/LEFT/RIGHT/FULL JOINONINTO/TO FILE/TO PRINTER/TO SCREENWHEREANDAND/ORAND/ORGROUP BY,.HAVINGORDER BYASC/DESC,ASC/DES

5、C; 功能:实现数据查询。SELECT语句的执行过程: 根据WHERE 子句的连接和检索条件,从FROM 子句指定的基本表或视图中选取满足条件的元组 再按SELECT 子句中指定的列表达式,选出元组中的属性值形成结果表 如有GROUP 子句,则将查询结果按照指定列名相同的值进行分组 如果GROUP 子句后有HAVING 短语,则只输出满足HAVING 条件的元组 如果有ORDER 子句,查询结果还要按照指定列名的值进行排序。 SELECT语句中各子句的使用分为:投影查询、条件查询、分组查询、查询排序、连接查询、子查询。6.3.2 投影查询 例66:查询学生的情况。SELECT学号,姓名,入校总

6、分,性别,;出生年月FROM学生注:可以重新指定列的顺序。 例67:查询学生的全部情况。SELECT* FROM学生 例68:查询入校总分最低的五名学生基本情况,按入校总分由低到高进行排序,同时指定表中的字段在查询结果中的列标题。SELECT TOP 5 学号 AS 学生编号,姓名 AS 学生姓名,;性别 AS 学生性别,;入校总分 AS 高考分数;FROM 学生 ORDER BY 入校总分注:top 必须和order by 一起使用 例69:查询选课学生的学号。select distinct 学号 from 选课 例610:查询学生的学号并改名显示为学生编号。select 学号 as 学生编

7、号 from 学生6.3.3 条件查询 当要在数据表中找出满足某些条件的行时,则需使用WHERE子句指定查询条件 WHERE子句中,条件通常由三部份来描述: 列名 比较运算符 列名、常数 比较大小 多重条件查询 确定范围 确定集合: 部份匹配查询6.3.4 统计查询在应用中,有的需要在原有数据上通过计算输出统计结果。SQL提供了许多库函数,增强了检索的功能 例620:求学号为s0201109学生的总分和平均分(显示学号)。select 学号,sum(成绩) as 总分,avg(成绩) as 平均分;from 选课;where (学号= s0201109 )6.3.5 分组查询 GROPU BY

8、子句可以将查询结果按属性列或属性列组合在行的方向上进行分组,每组在属性列或属性列组合上具有相同的值。 例625:查询各位教师的教师号及其任课门数。select 教师号,count(*) as 任课门数;from 授课;group by 教师号注意:GROUPBY子句按教师号的值分组,所有具有相同教师号的元组为一组,对每一组使用函数COUNT进行计算,统计出各位教师任课的门数。6.3.6 查询的排序 对查询结果使用ORDER BY子句对一个或多个属性进行排序,默认为升序。 ORDERBY子句必须放在其他子句之后。 例628:查询选修了课程“C140”的学生学号和成绩,并按成绩降序排列。selec

9、t 学号,成绩;from 选课;where 课程号=c140;order by 成绩 desc6.3.7 连接查询 连接操作的目的:通过加在连接字段上的条件将多个表连接起来,以便从多个表中查询数据。 连接查询包括:等值与非等值连接查询、自身连接查询、外连接查询。 表的连接方法: 方法1 :表之间满足一定条件的行进行连接,此时FROM 子句中指明进行连接的表名,WHERE 子句指明连接的列名及连接条件。 方法2 :利用关键字JOIN 进行连接。 方法2具体分为:INNERJOIN(内部连接),LEFTJION(左连接),RIGHTJOIN(右连接),FULLJOIN(全连接)1、等值连接与非等值

10、连接例631:查询陈静教师所讲授的课程号select 教师.教师号,姓名,课程号;from 教师,授课;where 教师.教师号=授课.教师号 and 姓名=陈静 一般的连接格式:.列名2比较运算符主要有:= , , =, y.工资 and y.姓名=陈静3、外连接 例635:查询教师姓名、职称及课程名。select 姓名,职称,课程名;from 教师,课程,授课;where 教师.教师号=授课.教师号 and ;授课.课程号=课程.课程号6.2.8 嵌套查询 嵌套查询可将一系列简单查询构成复杂查询,增强查询功能。子查询嵌套层次最多可为255层。嵌套查询执行时由里向外处理。1、返回一个值的子查

11、询 当子查询返回一个值时,可以使用比较运算符将父查询和了查询连接起来。 例636:查询与“陈静”老师职称相同的老师姓名和职称。select 姓名,职称;from 教师;where 职称=;(select 职称;from 教师;where 姓名=陈静)2、返回一组值的子查询 如果返回一组值,不能直接使用比较运算符,可以在比较运算符和子查询之间插入ANY/IN或ALL。 例638:查询讲授课程号为“C140”的教师姓名。select 姓名;from 教师;where 教师号=any;(select 教师号;from 授课;where 课程号=C140)6.3.9 查询结果输出使用INTO子句,可以

12、将查询结果输出到一个新建的数据表或一个临时表。INTOTABLE表名:输出到数据表INTOCURSOR:输出到临时表例643:将每个同学选修的课程名及成绩输出到数据表(表名为学生成绩)select 姓名,课程名,成绩;from 学生信息,选课,课程;where 学生信息.学号=选课.学号 and 选课.课程号=课程.课程号;into table 学生成绩还有一些输出选项:TOFILE文件名:将查询结果输出到文件TOPRINT:将查询结果输出到打印机TOSCREEN:将查询结果输出到VF主窗口6.4 SQL的数据操纵功能6.4.1 插入数据1. 插入数据记录 命令:INSERT INTO (,)VALUES(,) 功能:将新记录插入到指定的表中,分别用表达式1、表达式2等为字段名1、字段名2等赋值。 说明:表名是指要插入新记录的表;字段名是可选项,指定添加数据的列;VALUES子句指定待添加数据的具体值。例644:在学生表中插入一条学生记录insert into 学生 (学号,姓名,性别,出生年月,入校总分,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > IT计算机/网络 > 其它相关文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号