【Access】Access:SQL 语句汇总 您所在的位置:网站首页 sql语句基础语句大全 【Access】Access:SQL 语句汇总

【Access】Access:SQL 语句汇总

2024-07-16 12:26| 来源: 网络整理| 查看: 265

目录

一、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 下载、安装、使用教程(「管理信息系统」实践专用软件)https://gusanshang.blog.csdn.net/article/details/130353056【本科自考】

自考院校:[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) ) )

(2)删除关系 

删除关系:即删除数据库中的表 ,命令格式如下

drop table 关系名

【注意 Warning! 】

删除关系的定义后,关系的结构和内容、相关索引、以及由它导出的视图都被删除。 

示例:

drop table SC 四、SQL 的「数据查询」功能 基本结构 聚集函数 集合运算 连接关系 (1)基本结构 ① Select 语句的基本结构

语义次序:

From (取出R1表中的记录) → Where (选择符合条件的行) → Select (选择显示的列) 

② Select 子句 

作用:从 (From 子句列出的) 关系中选出指定属性 

要点:属性列表中,可以用表达式来构造的新属性

相当于广义投影运算

示例:

S: 学生关系问:所有学生的姓名和年龄? Select 姓名, 年龄  From  S

问: 每个学生的出生年份 Select 姓名, 2020 - 年龄 From  S

用表达式构造的新属性无属性名,但可采用以下方式命名表达式 as 属性名原有属性也可用如下方式重新命名旧属性名 as 新属性名

示例:

Select 姓名 as 学生姓名, 2020 - 年龄 as 出生年份 From  S

要点:Select 后面,属性列表前,可加上关键字 all 或者distinct

all 关键字表明结果中不消去重复元组distinct 关键字表明结果中消去重复元组没说明 all 或 distinct 的情况下,默认是 all ,即不消去重复行 

示例:

Select all 课程 From  R

Select distinct 课程 From  R

 

③ Where 子句 

作用:选出满足条件的行

等价于选择运算  【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 null

错误语法 Select 姓名  From  employee Where 年龄= null

(2)聚集函数 ① Select 子句 sum(字段):对字段的所有值求和,忽略空值avg(字段):对字段的所有值求平均值,忽略空值count(*) :统计记录的总数 count(字段):统计字段值的总数,忽略空值max(字段):对字段的所有值求最大值,忽略空值min(字段):对字段的所有值求最小值,忽略空值   ② Group By 子句 

Group By 子句的作用:在 Where 子句筛选出元组后,对它们分组

分组属性: 属性1,属性2,……

同时 Select 子句的作用发生变化:对分组进行统计

1. 每个分组在结果中被统计为一个元组

2. 在 Select 子句出现的属性只能是:

① 分组属性

② 聚集函数(任意属性)

③ 由①和②组成的表达式 

示例:

关系 R: 选修成绩问: 每门课程的平均和最高成绩? Select 课程, Avg(成绩) as 平均成绩, Max(成绩) as 最高成绩  From R Group By 课程

③ Having 子句

出现在 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(成绩) > 85

问: 成绩大于 85 的学生姓名? (对比以上问题) Select distinct 姓名 From R Where 成绩 > 85

④ Order By 子句

Order 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

(3)集合运算  ① From 子句:笛卡儿积 

示例:

select ∗ from s,sc

② From 子句 

要点:From 子句中,关系可用如下方式重命名

旧关系名  新关系名 等价于更名运算一个关系在 From 子句中多次出现时,从第二次开始必须重命名关系重命名后,Select 和 Where 子句中的前缀是使用新的关系名

示例:

关系 R: 选修成绩问: 谁的物理成绩高于王红的物理成绩? Select S.姓名  From R, R as S Where R.课程='物理' and R.姓名='王红' and S.课程='物理' and R.成绩 < S.成绩

(4)连接关系 

连接类型:

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.部门号

五、SQL 的「数据修改」功能 插入:Insert 语句 删除:Delete 语句 更新:Update 语句  (1)插入:Insert 语句 ① 格式一

注意:

所列值的个数必须和属性的个数相等,且一一对应在插入的新元组中,对没有指定的属性填入缺省值(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 课程='数学'

 

(2)删除:Delete 语句

说明:

在关系中找到满足条件的元组,并删除之如果没有 Where 子句,表示删除关系的全部元组 (保留结构)一次只能删除一个关系中的元组

示例:

删除全部选修信息 Delete From R

(3)更新:Update 语句

说明:

在关系中找到满足条件的元组,然后更新:表达式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 实验室设备网 版权所有