【Access】Access:SQL 语句汇总

女足世界杯中国62482025-07-03 12:32:17

目录

一、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 ( AGE<200 and AGE>0 )

)

示例 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(下界<上界)集合运算① in 集合 ② not in 集合① 姓名 in { '小陈’ , '小李’ } ② 姓名 not in { '小陈’ , '小李’ }匹配运算① like 匹配串 ② not like 匹配串① 姓名 like '陈*’ ② 姓名 like '陈??’① 'wh*' 将找到 what、white 和 why,但找不到 awhile 或watch ② ? 匹配任意单个字母字符 ③ %代表任意多个字符

示例:

S :学生关系问:所有男学生的信息?

Select *

From S

Where 性别='男'

问:所有大于 22 岁的男学生的信息?

Select *

From S

Where 性别='男' and 年龄>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;

为什么大街上卖新疆切糕的人,现在都消失不见了?原因很现实
播放机—