《2022年2022年计算机二级考试熟记SQL语句 .pdf》由会员分享,可在线阅读,更多相关《2022年2022年计算机二级考试熟记SQL语句 .pdf(7页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第一节关系数据库标准语言1、SQL概述(1)SQL(structured query language)是结构化查询语言的缩写,是关系数据库的标准语言。SQL的核 心 是 查 询,主 要 功 能 为:数 据 查 询(Select)、数 据 定 义(Create、Drop,Alter)、数 据 操 纵(Insert,Update,Delete)、数据控制(Grant,Revoke)(2)特点:A:是一种一体化的语言B:是一种高度非过程化的语言C:非常简洁D:既可在命令窗口中使用,也可在程序中使用2、数据查询(1)简单查询A:格式:select distinct 字段名列表 from 表名 whe
2、re 条件 select 姓名,性别,出生日期 from zgda select*from zgda select distinct 职称 from zgda select distinct 性别,职称 from zgda select*from zgda where 性别=”女”select*from zgda where 职称=教授 select*from zgda where 工资 700 select 姓名,性别,婚否 from zgda where 婚否=.t.select*from zgda where 职称=教授 and 性别=男 select*from zgda where 性
3、别=男 or 出生日期=表达式 1 并且=2 如果有Group by短语,而无order by 短语时,查询的结果默认以分组字段的升序排列如果 Where 和 Having 同时使用时,先执行Where,再执行Having 补充:在查询的过程当中使用了统计函数,并且查询结果可能有多个值,此时使用group by 短语进行分组,在分组了以后,每组对应一条记录(5)集合的并运算(union)A:是将两个select 语句的查询结果合并成一个查询结果,默认情况下,合并的结果删除重复的记录。用 all表示显示所有记录(包含重复记录)B:合并条件:列数相同,并且对应字段的数据类型和宽度相同对应字段的取值
4、范围相同合并格式:第一条完整的sql 语句 union 第二条完整的sql 语句例如:sele*from zgda where 性别=”女”union sele *from zgda where 职称=”教授”(6)利用空值查询注:查询空值时用:字段名 is null select*from 订购单 where 订购日期 is null 查询不为空值时用:字段名 is not null select*from 订购单 where 订购日期 is not null(7)保存查询结果格式:select all/distinct 字段表达式 as 新字段名 top n percent from 表名
5、 Group by 分类字段 having 条件 order by 排序字段列表asc/desc A:输出到临时表中:into cursor 表名执行完 select 语句后,临时表仍然保持打开和活动状态,但为只读一旦关闭临时表,查询结果则自动被删除B:输出到永久表中:into dbf/table 表名 执行完 select 语句后,此表依然处于打开和活动状态这个表将永远保存在默认目录下C:输出到数组中:into array 数组名这里的数组为二维数组,每行一条记录,每列对应查询结果的一列,数组中有几行几列由查询结名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 7 页 -果中记录
6、以及字段来确定数组中可以存放n 个值,但他只属于一个内存变量数组的下标是从1 开始的。D:输出到文本文件中:to file 文件名 additive 扩展名为 .txt,无格式仅是纯文本有 additive表示将查询结果追加到此文件内容的后面3、数据定义(1)建立表(若建立数据库表,则必须事先建立或打开数据库)格式:create table 表名 free (字段名 1 类型(宽度,小数位数)check 条件 error字符串 default 默认值 NULL NOT NULL primary key unique,,,,,foreign key 索引表达式 tag 索引名 reference
7、s 父表名 tag 父表的索引名 )注释:free 说明此表为自由表。create table 注册 free(姓名 c(6),性别 c(2),出生年月 d)类型只能用代表字母。check 为字段指定有效性规则;error 表示出错时的提示信息create table student(姓名 c(6),性别 c(2),年龄 i check 年龄=10 error 年龄超范围)Default 表示默认值create table score(学号 c(10),成绩 n(7,2)default 40)create table 教师(姓名 c(6),性别 c(2)default 女,基本工资 n(8,2
8、)NULL 表示字段中允许取空值;NOT NULL 表示字段中不能取空值。create table 职工(编号 c(5),姓名 c(6),工资 n(5,2)null default.null.)primary key 表示建立主索引unique 表示建立候选索引foreign key 表示建立普通索引,但不能单独使用,在此之前必须先给父表建立主索引或侯选索引,建立普通索引的同时和父表建立永久性关系。若无 tag 父表的索引名 选项,则表示将关系建立在父表的主索引上。不能建立唯一索引(2)修改表结构A:字段修改字段名alter table 表名 rename column 原字段名 to 新字段
9、名修改字段的宽度和类型alter table 表名 alter column 字段名类型(宽度,小数位数)添加新字段alter table 表名 add column 字段名类型(宽度,小数位数)名师资料总结-精品资料欢迎下载-名师精心整理-第 4 页,共 7 页 -删除字段名alter table 表名 drop column 字段名B:修改字段有效性修改规则及提示信息alter table 表名 alter 字段名 set check 条件 error 字符串 修改字段的默认值alter table 表名 alter 字段名 set default 默认值删除规则及提示信息alter ta
10、ble 表名 alter 字段名 drop check 删除字段的默认值alter table 表名 alter 字段名 drop default 补充:添加新字段的同时设置有效性规则C:索引(表事先存在)建立主索引alter table 表名 add primary key 索引表达式 tag 索引名删除主索引alter table 表名 drop primary key 建立侯选索引alter table 表名 add unique 索引表达式 tag 索引名删除侯选索引alter table 表名 drop unique tag 索引名建立两表之间的永久关系(建立普通索引)alter t
11、able 当 前 表(子表)add foreign key 索引 表达 式tag 索引 名references 父表 tag父表的索引名 删除两表之间的永久关系(删除普通索引)alter table 表名(子表)drop foreign key tag 索引名(3)表的删除(物理删除)A:删除自由表:drop table 表名B:删除数据库表:打开数据库drop table 表名4、操作功能名师资料总结-精品资料欢迎下载-名师精心整理-第 5 页,共 7 页 -(1)插入记录A:插入单条记录insert into 表名(字段名 1,字段名2,,)values(表达式 1,表达式 2,,)注释:
12、如果要向当前表所有字段中插入所有值,则第一部分可以省略第二部分表达式的值必须与对应的字段类型相同B:将数组中的值插入到表中insert into 表名 from array 数组名(2)删除记录(逻辑删除)delete from 表名 where 条件(3)有规律的修改记录或替换记录update 表名 set 要修改的字段名=用谁来修改 where 条件5、联接查询(1)简单联接查询select 多表中字段名列表 from 多表列表 where 联接条件基于多个表的查询,查询的结果可以出自多个表中找出工资多于1230 元的职工号和他们所在的城市Select 职工号,城市 from 职工,仓库
13、where(工资 1230)and(职工.仓库号=仓库.仓库号)找出工作面积大于400 的仓库的职工号一级这些职工工作的城市Select 职工号,城市 from 仓库,职工 where(面积 400)and(职工.仓库号=仓库.仓库号)(2)嵌套查询select 字段列表 from 表名 where 条件或字段名关键字 in(select 一个字段名关键字from 表名 where 条件)例:哪些城市至少有一个仓库的职工的工资为1250 Select 城市 from 仓库 where 仓库号 in(select 仓库号 from 职工 where 工资=1250)查询的结果来自一个表,而查询的
14、条件却涉及到其他表in 的前面必须写关键字段,子查询的查询结果只能有一个字段,在内容上必须和in 前的一样,但它们却发属于两个表子查询的查询结果做为主查询的一个查询条件,子查询应该是一条完整的sql 语句在嵌套查询当中,子查询中不能再使用嵌套查询(2)自联接查询select 字段列表 from 表名别名 where 条件(3)使用量词和谓词的查询A:使用量词查询select 字段名列表 from 表名 where 字段表达式比较运算符 ANY/ALL/SOME (子查询)ANY、ALL、SOME是量词ANY和 SOME 在查询中如果子查询只要有任意一条记录能使结果为真,主查询便显示相应的记录名
15、师资料总结-精品资料欢迎下载-名师精心整理-第 6 页,共 7 页 -ALL 要求子查询中的所有记录都必须使结果为真时,主查询才显示相应的记录B:使用谓词查询select 字段名列表 from 表名 where NOT EXISTS (子查询)EXISTS是谓词,用来查询在子查询中是否有结果返回,即存在或不存在记录。他本身并没有任何运算或比较。(4)超联接查询(基于多表的查询)A:两表:select from 表 1 inner/left/right/full join 表 2 on 联接条件联接条件在ON短语中给出,联接类型在FROM 短语中给出INNER JOIN 满足联接条件的记录才出现在查询结果中LEFT JOIN 在查询结果中包含JOIN 左侧表中的所有记录,以及JOIN 右侧表中匹配的记录RIGHT JOIN 在查询结果中包含JOIN 右侧表中的所有记录,以及JOIN 左侧表中匹配的记录FULL JOIN 在查询结果中包含JOIN 两侧所有的匹配和不匹配记录B:三表select 字段列表 from第一个表 inner join 第二个表 inner join 第三个表 on 第三个表中关键字=第二个表中关键字 on 第二个表中关键字=第一个表中关键字名师资料总结-精品资料欢迎下载-名师精心整理-第 7 页,共 7 页 -