【Access】Access:SQL 语句汇总 | 您所在的位置:网站首页 › sql语句基础语句大全 › 【Access】Access:SQL 语句汇总 |
目录 一、SQL 的功能 二、考试重点 三、关系的定义 (1)新建关系 (2)删除关系 四、SQL 的「数据查询」功能 (1)基本结构 ① Select 语句的基本结构 ② Select 子句 ③ Where 子句 ④ 空值的处理 (2)聚集函数 ① Select 子句 ② Group By 子句 ③ Having 子句 ④ Order By 子句 ⑤ 空值的处理 (3)集合运算 ① From 子句:笛卡儿积 ② From 子句 (4)连接关系 ① 条件连接 / 内连接 ② 外连接 ③ 左外连接 ④ 右外连接 ⑤ 左 / 右外连接 ⑥ 全外连接 五、SQL 的「数据修改」功能 (1)插入:Insert 语句 ① 格式一 ② 格式二 (2)删除:Delete 语句 (3)更新:Update 语句 六、汇总 ① 创建表格 ② 插入数据 ③ 查询数据 ④ 更新数据 ⑤ 删除数据 ⑥ 连接数据 ⑦ 排序数据 ⑧ 分组数据 ⑨ 创建索引 ⑩ 删除索引 一、SQL 的功能SQL 功能 操作语句 备注 数据定义 CREATE,ALTER,DROP 数据查询 SELECT 数据查询与数据修改又合并称为数据操纵 数据修改 INSERT,UPDATE,DELETE 数据控制 GRANT,REVOKE,…… 二、考试重点【Access】win 10 / win 11:Access 下载、安装、使用教程(「管理信息系统」实践专用软件) 自考院校:[508] 610 华南师范大学(面向社会) 自考专业:[080901] 计算机科学与技术 自考科目:[02383] 管理信息系统 自考方式:上机实践考核 自考工具:Access ① Excel 数据导入 ② 创建表 create table ③ 单表查询 select from where group by having order by 集合函数④ 多表查询 笛卡儿积条件链接\内连接左外连接、右外连接、全外连接(没有) 嵌套查询⑤ 数据的增删改 update、delete、insert 三、关系的定义 (1)新建关系新建关系:即新建数据库中的表,命令格式如下 create table 关系名 ( 属性名 域 [default 缺省值] [not null ] { , 属性名 域 [default 缺省值] [not null ] } [ , primary key (属性名 {, 属性名}) ] { , foreign key (属性名 {, 属性名}) references 被参照关系名 (属性名 {, 属性名}) } [ , check (条件) ] )示例 1: create table S ( SNAME PERSON-NAME not null , AGE SMALLINT default 22, SEX VARCHAR (1), primary key (SNAME ), check ( AGE0 ) ) 示例 2: create table R ( SName VARCHAR(4), CName VARCHAR(4), RESULT INT, primary key (SName, CName), foreign key (SName) references S (SName), check ( (RESULT IS NULL) OR (RESULT BETWEEN 0 AND 100) ) )删除关系:即删除数据库中的表 ,命令格式如下 drop table 关系名【注意 Warning! 】 删除关系的定义后,关系的结构和内容、相关索引、以及由它导出的视图都被删除。 示例: drop table SC 四、SQL 的「数据查询」功能 基本结构 聚集函数 集合运算 连接关系 (1)基本结构 ① Select 语句的基本结构语义次序: From (取出R1表中的记录) → Where (选择符合条件的行) → Select (选择显示的列) ② Select 子句作用:从 (From 子句列出的) 关系中选出指定属性 要点:属性列表中,可以用表达式来构造的新属性 相当于广义投影运算示例: S: 学生关系问:所有学生的姓名和年龄? Select 姓名, 年龄 From S示例: Select 姓名 as 学生姓名, 2020 - 年龄 as 出生年份 From S要点:Select 后面,属性列表前,可加上关键字 all 或者distinct all 关键字表明结果中不消去重复元组distinct 关键字表明结果中消去重复元组没说明 all 或 distinct 的情况下,默认是 all ,即不消去重复行示例: Select all 课程 From R 作用:选出满足条件的行 等价于选择运算 【Where 子句】条件中的运算符号运算符号格式示例备注比较运算符①< ②<= ③> ④>= ⑤<>逻辑运算符① and ② or ③ not范围运算① between 下界 and 上界 ② not between 下界 and 上界① 年龄 between 20 and 23 ② 年龄 between 23 and 20(下界22空值判定 A is [not ] null判断指定 A(属性,表达式等)的值是否为空值 示例: 找出年龄值未知的员工姓名正确语法 Select 姓名 From employee Where 年龄 is nullGroup By 子句的作用:在 Where 子句筛选出元组后,对它们分组 分组属性: 属性1,属性2,……同时 Select 子句的作用发生变化:对分组进行统计 1. 每个分组在结果中被统计为一个元组 2. 在 Select 子句出现的属性只能是: ① 分组属性 ② 聚集函数(任意属性) ③ 由①和②组成的表达式 示例: 关系 R: 选修成绩问: 每门课程的平均和最高成绩? Select 课程, Avg(成绩) as 平均成绩, Max(成绩) as 最高成绩 From R Group By 课程出现在 Group By 子句后面: Having 子句只能配合 Group By 子句使用,而不能单独出现Having 子句作用:在分组后,筛选满足条件 Q 的分组 在分组限定条件中出现的属性只能是以下形式: ① 分组属性 ② 聚集函数(任意属性) Having 子句中的条件和 Where 子句中条件的不同: 1. Where 子句中的条件用于限定元组,施加在单个元组上 不满足条件的元组将不会参与到下一步的分组运算 (Group By 子句) 或投影运算 (Select 子句) 等2. Having 子句中的条件用于限定 Group By 子句产生的各个分组,施加在整个分组上 不满足条件的分组,将不会参与下一步的统计运算 (Select 子句)示例: 关系 R: 选修成绩问: 平均成绩大于85的学生姓名? Select 姓名 From R Group By 姓名 Having Avg(成绩) > 85Order By 子句的作用:在 Select 子句得出结果后,对结果进行排序 先按属性1的值,升序(asc)或降序(desc)排列,缺省是升序;属性1的值相同时,再按属性2值升序或降序排列…示例: R: 选修关系 问: 从高到低列出物理课程的成绩 Select 姓名, 成绩 From R Where 课程='物理' Order By 成绩 desc示例: Select avg(年龄) as 平均已知年龄, count (年龄) as 已知年龄人数, count (*) as 总人数, min(年龄) as 最小年龄, max(年龄) as 最大年龄 From employee示例: select ∗ from s,sc要点:From 子句中,关系可用如下方式重命名 旧关系名 新关系名 等价于更名运算一个关系在 From 子句中多次出现时,从第二次开始必须重命名关系重命名后,Select 和 Where 子句中的前缀是使用新的关系名示例: 关系 R: 选修成绩问: 谁的物理成绩高于王红的物理成绩? Select S.姓名 From R, R as S Where R.课程='物理' and R.姓名='王红' and S.课程='物理' and R.成绩 < S.成绩连接类型: inner join : 内连接,结果不包含失配元组 * (备注:* 这里失配元组指的是因不满足连接条件,无法和其它元组相连接的元组)outer join : 外连接,结果包含失配元组 * (备注:* 这里失配元组指的是因不满足连接条件,无法和其它元组相连接的元组)left outer join : 左外连接,结果包含左边关系的失配元组right outer join : 右外连接,结果包含右边关系的失配元组full outer join : 全外连接,结果包含两边关系的失配元组 ① 条件连接 / 内连接示例: select ∗ from s,sc where s.sno=sc.sno select ∗ from s inner join sc on s.sno=sc.sno示例: select ∗ from s right outer join sc on s.sno=sc.sno select ∗ from sc left outer join s on s.sno=sc.sno示例: Select Emp.姓名, Dept.名称 as 部门 From Emp left outer join Dept on Emp.部门号=Dept.部门号示例: Select Emp.姓名, Dept.名称 as 部门 From Emp right outer join Dept on Emp.部门号=Dept.部门号 示例: select ∗ from s left outer join sc on s.sno=sc.sno select ∗ from sc right outer join s on s.sno=sc.sno示例: Select Emp.姓名, Dept.名称 as 部门 From Emp full outer join Dept on Emp.部门号=Dept.部门号注意: 所列值的个数必须和属性的个数相等,且一一对应在插入的新元组中,对没有指定的属性填入缺省值(Create Table时定义),没有缺省值时填入空值示例: Insert Into R Values (‘刘朝', '物理', 80) 示例: 新建表 S Create Table Student ( 学号 VARCHAR (4), 姓名 VARCHAR(10) not null, 年龄 SMALLINT default 22, 班级 VARCHAR(20) ) 在 S 中插入元组 Insert Into Student (学号, 姓名) Values (1, '小刘')注意: 同样地,对其它的属性填入缺省值或空值 示例: 添加所有学生选修数学课程的信息 Insert Into R(姓名, 课程) Select 姓名,课程 From S, C Where 课程='数学' 说明: 在关系中找到满足条件的元组,并删除之如果没有 Where 子句,表示删除关系的全部元组 (保留结构)一次只能删除一个关系中的元组示例: 删除全部选修信息 Delete From R说明: 在关系中找到满足条件的元组,然后更新:表达式1的值赋予属性1;表达式2的值赋予属性2……没有 Where 子句时,则对关系的全部元组都要更新示例: 给销售部门的职工增加10%的工资 Update employ Set 工资=工资*1.1 Where 部门='销售'具体 SQL 实战操作查看我的另一博文: 【Access】实战:Access 操作 SQL 「学生」 ① 创建表格 CREATE TABLE table_name ( column1 datatype, column2 datatype, column3 datatype, ..... ); ② 插入数据 INSERT INTO table_name (column1, column2, column3, ....) VALUES (value1, value2, value3, ....); ③ 查询数据 SELECT column1, column2, ... FROM table_name WHERE condition; ④ 更新数据 UPDATE table_name SET column1 = value1, column2 = value2, .... WHERE condition; ⑤ 删除数据 DELETE FROM table_name WHERE condition; ⑥ 连接数据 SELECT * FROM table1 INNER JOIN table2 ON table1.column = table2.column; ⑦ 排序数据 SELECT column1, column2, ... FROM table_name ORDER BY column1 ASC/DESC, column2 ASC/DESC, ...; ⑧ 分组数据 SELECT column1, SUM(column2) FROM table_name GROUP BY column1; ⑨ 创建索引 CREATE INDEX index_name ON table_name (column1, column2, ...); ⑩ 删除索引 DROP INDEX index_name ON table_name; |
CopyRight 2018-2019 实验室设备网 版权所有 |