计算机二级sql语言.ppt

上传人:小飞机 文档编号:6201643 上传时间:2023-10-04 格式:PPT 页数:44 大小:1.38MB
返回 下载 相关 举报
计算机二级sql语言.ppt_第1页
第1页 / 共44页
计算机二级sql语言.ppt_第2页
第2页 / 共44页
计算机二级sql语言.ppt_第3页
第3页 / 共44页
计算机二级sql语言.ppt_第4页
第4页 / 共44页
计算机二级sql语言.ppt_第5页
第5页 / 共44页
点击查看更多>>
资源描述

《计算机二级sql语言.ppt》由会员分享,可在线阅读,更多相关《计算机二级sql语言.ppt(44页珍藏版)》请在三一办公上搜索。

1、1,SQL概述,SQL是结构化查询语言Structured Query Language的缩写。它包含数据查询、数据定义、数据操纵和数据控制功能。,VFP在SQL方面支持数据查询、数据定义、数据操纵功能。,2,SQL语言的特点,SQL是一种一体化的语言 SQL语言是一种高度非过程化的语言 SQL语言非常简洁 SQL一种语言两种使用方式:可以直接以命令方式交互,也可以程序方式使用。,3,SQL概述,SQL九大命令,4,SQL数据查询,SELECT ALL|DISTINCTTOP(表达式)PERCENT字段列表FROM数据库!INNER|LEFT|OUTER|RIGHTOUTER|FULLOUTE

2、RJOIN 数据库!表名 ON WHERE GROUP BY 分组依据HAVING UNIONALL 查询命令ORDER BY,5,数据查询,6,数据查询,7,格式1:SELECT 字段1,字段2,字段n FROM 表名格式2:SELECT 字段1,字段2,字段n FROM 表名 WHERE,ALL|DISTINCT,DISTINCT短语的作用是去掉重复值,8,SELECT 工资 FROM 员工表SELECT DISTINCT 工资 FROM 员工表SELECT*FROM 员工表SELECT*FROM 员工表;WHERE 性别=“男”AND 工资 4000,分号代表续行符。,*代表查询表中所有

3、字段。,9,Select 员工号,姓名,部门名称;From 员工表,部门表;Where(工资3500)AND(员工表.部门号=部门表.部门号),连接查询是一种基于多个关系(表)的查询,所以进行的查询操作至少有两个表且必须有连接条件。,查询出工资多于3500元的员工号、姓名和部门名称,10,嵌套查询要求结果出自一个关系(表),但关系的条件却涉及多个关系。可用IN或NOT IN来判断在外层查询条件中是否包含内层查询的结果。,查询员工表中工资大于3500元的部门表中的信息。,Select*From 员工表 Where 部门号;IN(Select 部门号 From 员工表 Where 工资3500),

4、查询的结果为(”101”,”102”,”103”),11,Select*From 员工表;Where 工资 BETWEEN 2500 AND 3000,BETWEENAND:检索出某一区间范围的记录,包括两端的边界值。,检索出工资在2500元到3000元范围的员工表信息。,Select*From 员工表;Where 工资=2500 AND 工资=3000,12,LIKE:字符匹配运算符,在匹配查询中可使用通配符,通配符”%”表示0个或多个字符,”_”它表示一个字符。,查询出订货商表中来自上海的订货商名称。,查询姓张的员工且名字为两个字的员工信息。,从订货商表中检索出订货商是公司性质的信息。,S

5、elect*From 员工表 Where 姓名 Like“张_”,Select 订货商名称 From 订货商表 Where 地址 Like“上海%”,Select*From 订货商表 Where 订货名称 Like“%公司”,13,!=:不等于运算符,相当于否定运算NOT。,查询职务号不为“101”的员工表信息。,Select*From 员工表 Where 职务号!=“101”,14,排序是将数据从小到大,或从大到小进行排列存放,排序的短语是ORDER BY,BY后面给排序的字段。,按员工的工资降序检索出全部员工信息。,先按员工号降序排序,再按工资排序输出全部员工信息。,Select*From

6、 员工表 Where Order By 工资,Select*From 员工表;Where Order By 员工号 DESC,工资,15,SQL不仅提供了一般的检索能力,而且还有计算方式的检索。如检索员工的总人数、最高工资、最低工资、员工总工资、平均工资。,COUNT(字段名):用于统计个数,SUM(字段名):求和,AVG(字段名):求平均值,MAX(字段名):求最大值,MIN(字段名):求最小值,16,找出员工表中有多少个部门,Select Count(Distinct 部门号)From 员工表,Select Count(Distinct 部门号)部门总数 From 员工表,为该字段定义的别

7、名,17,求员工表中工资总数,Select SUM(工资)总工资 From 员工表,求所有员工的平均工资,Select AVG(工资)平均工资 From 员工表,检索部门号为“101”的员工的最高工资,Select MAX(工资)最高工资 From 员工表;Where=部门号号“101”,检索部门号为“101”的员工的最低工资,Select MIN(工资)最低工资 From员工表;Where=部门号号“101”,18,SQL中利用GROUP BY子句进行分组计算查询。格式如下:GROUP BY 字段1,字段2HAVING 查询条件,求每个部门的员工的平均工资,Select 部门号,AVG(工资

8、)平均工资 from 员工表;Group BY 部门号,19,求至少有两个男员工的部门中男员工的总工资,Select 部门号,Count(性别)男生总数,SUM(工资)总工资;From 员工表;Where 性别=“男”;Group BY 部门号 Having 男生总数2,HAVING必须与GROUP BY一起使用,不能单独使用,20,空值查询用函数IS NULL或IS NOT NULL,找出尚未确定部门的员工信息,Select*From 员工表 Where 部门号 IS NULL,Select*From 员工表 Where 部门号 IS NOT NULL,Select 姓名,职务名称 From

9、 员工表,职务表;Where 员工表.职务号=职务表.职务号,21,涉及到多个表时,当访问多个表中同名的字段时,需要用“表名.属性名”来指定。例如:,SQL允许在From短语后为关系名定义别名,格式为:关系名 别名,Select 姓名,职务名称 From 员工表 s,职务表 p;Where s.职务号=p.职务号,22,自连接定义:自连接可以将自身表的一个镜像当作另一个表来对待,从而能够得到一些特殊的数据。自连接别名是必需的。,Select e.雇员姓名,“带领,m.雇员姓名;From 雇员 e,雇员 m;Where e.雇员号=m.经理,根据雇员关系,查询出雇员姓名及其经理姓名,23,用的量

10、词和谓词有:IN(NOT IN),ANY,ALL,SOME、EXISTS、NOT EXISTS,其具体格式如下:,ANY|SOME|ALL(子查询),NOTEXISTS(子查询),ANY和SOME是同一词,在进行比较运算时只要子查询中有一行能使结果为真,则结果为真,ALL要求子查询中所有行都能使结果为真,则结果为真,EXISTS是用来检查在子查询中是否有结果返回,24,查询出职工的工资大于或等于101部门中任何一名职工的工资的部门号。,Select Distinct 部门号 From 员工表;Where 工资=ANY;(Select 工资 From 员工表 where 部门号=“101”),S

11、elect Distinct 部门号 From 员工表 Where 工资=;(Select MIN(工资)From 员工表 Where 部门号=“101”),25,超连接查询定义:首先保证一个表满足条件的元组都在结果表中,然后将满足连接条件的元组与另一个表的元组进行连接,不满连接条件的则将来自另一个表的属性值置为空值。,26,格式:Select 字段1,字段2,From 表名 INNER|LEFT|RIGHT|FULL JOIN 表名 ON 连接条件 Where,INNER JOIN(内连接):等同于JOIN,只有满足条件的记录才出现在查询结果中。,LEFT JOIN(左连接):除了满足条件的

12、记录才出现在查询结果中外,第一个表中不满足条件的记录也出现在查询结果中。,RIGHT JOIN(右连接):除了满足条件的记录才出现在查询结果中外,第二个表中不满足条件的记录也出现在查询结果中。,FULL JOIN(全连接):除了满足条件的记录才出现在查询结果中外,两个表中不满足条件的记录也出现在查询结果中。,27,格式:Select 字段1,字段2,From 表名 INNER|LEFT|RIGHT|FULL JOIN 表名 ON 连接条件 Where,INNER JOIN(内连接):等同于JOIN,只有满足条件的记录才出现在查询结果中。,LEFT JOIN(左连接):除了满足条件的记录才出现在

13、查询结果中外,第一个表中不满足条件的记录也出现在查询结果中。,RIGHT JOIN(右连接):除了满足条件的记录才出现在查询结果中外,第二个表中不满足条件的记录也出现在查询结果中。,FULL JOIN(全连接):除了满足条件的记录才出现在查询结果中外,两个表中不满足条件的记录也出现在查询结果中。,28,员工表和部门表连接。,员工表和部门表右连接。,员工表和部门表左连接。,员工表和部门表全连接。,Select 员工表.部门号,姓名,工资 From 员工表;INNER JOIN 部门表 ON 员工表.部门号=部门表.部门号,Select 员工表.部门号,姓名,工资 From 员工表;RIGHT J

14、OIN 部门表 ON 员工表.部门号=部门表.部门号,Select 员工表.部门号,姓名,工资 From 员工表;LEFT JOIN 部门表 ON 员工表.部门号=部门表.部门号,Select 员工表.部门号,姓名,工资 From 员工表;FULL JOIN 部门表 ON 员工表.部门号=部门表.部门号,29,JOIN连接多个表时,JOIN的顺序和ON的顺序正好相反,Select 仓库.仓库号,供应商名;From 供应商 JOIN 订购单 JOIN 职工;ON 订购单.职工号=职工.部门号;ON 供应商.供应商号=订购单.供应商号,30,31,显示工资最高的30%员工的信息。,显示年龄最大的3

15、位员工的信息。,将查询到的员工信息放在数组A中。,Select*TOP 30 PERCENT From 员工表;ORDER BY 工资 DESC,Select*TOP 3 From 员工表;ORDER BY 年龄,Select*From 员工表 INTO ARRAY A,将查询到的员工信息放在临时.dbf文件A中。,Select*From 员工表 INTO CURSOR A,将查询到的员工信息放在表A中。,Select*From 员工表 INTO DBF A,32,数据操作功能,SQL的数据操作功能是指对数据库中的插入、更新和删除。,INSERT,DELETE,UPDATE,33,INSERT

16、 INTO 员工表(员工号,姓名,年龄);VALUE(”120”,”xiao”,25),格式1:INSERT INTO(字段1),字段2,);VALUE(表达式1,表达式2,),向员工表中插入一条新记录,员工号、姓名和年龄分别是”120”,”xiao”,25.,34,INSERT INTO S FROM ARRAY ARR1,格式2:INSERT INTO FROM ARRAY,从数组ARR1中插入一条记录到表S;,35,UPDATE 员工表 SET 工资=工资*(1+0.1),UPDATE;SET=,=,将所有员工的工资提高10%。,36,DELETE FROM 员工表 WHERE 员工号=

17、“101”,DELETE FROM;Where,删除员工表中员工号为”101”元组。,37,数据定义功能,38,格式:CREATE TABLE NAME 长表名 FREE(宽度),(宽度),FROM ARRAY),创建表的名字,可包括路径,指定一个长表名,建立一个自由表,定义字段的数据类型,用字母表示,见P110表5-4,39,列级完整性包括:NULL和NOT NULL:NULL允许字段的值为空值CHECK ERROR 错误提示UNIQUE:建立候选索引DEFAULT:指定特定字段的默认值,40,格式:DROP TABLE,41,在已存在的表中添加新字段修改已有字段,ALTER TABLE A

18、DD|ALTER 字段1(宽度,小数位数)NULL|NOT NULLCHECK 逻辑表达式ERROR 字符文本信息DEFAULT默认值PRIMARY KEY|UNIQUEREFERENCESTAG,42,定义、修改和删除表中已有字段的约束和默认值定义,ALTER TABLE ALTER|COLUMN 字段2 NULL|NOT NULL SET DEFAULT默认值SET CHECK 逻辑表达式 ERROR 字符文本信息DROP DEFAULTDROP CHECK,43,删除表中字段、修改字段名,ALTER TABLE DROPCOLUMN 字段名3 RENAME COLUMN 字段名4 TO 字段名5,44,定义、修改和删除表一级的有效性约束,ALTER TABLE ADD PRIMARY KEY 主键名 TAG 标识名1DROP PRIMARY KEYADD UNIQUE 表达式TAG 标识名2DROP UNIQUE TAG 标识名3ADD FOREIGN KEY 表达式 TAG 标识名4 REFERENCESTAG 标识名5DROP FOREIGN KEY TAG 标识名6SAVE,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号