目录

一、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. 先按属性1的值,升序(asc)或降序(desc)排列,缺省是升序;
  2. 属性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;

【Access】Access:SQL 语句汇总相关推荐

  1. (转)access和SQL语句的区别

    1.对于日期字段字段 access表示为1,对于日期字段字段 access表示为:#1981-28-12#:#1981-28-12# SQLSER SQLSERVER2000表示为:''1981-02 ...

  2. access oracle sql语句,在 Access 中使用 SQL 建索引

    时 间:2017-12-29 08:30:39 作 者:摘 要:  一般在Oracle中使用Sql,在Access中使用很少,不过与Oracle的Sql还是有很多相似之处的.以下SQL语句在ACCES ...

  3. Oracle、DB2、SQLSERVER、Mysql、Access分页SQL语句梳理

    最近把平时在项目中常用到的数据库分页sql总结了下.大家可以贴出分页更高效的sql语句. sqlserver分页 第一种分页方法 需用到的参数: pageSize 每页显示多少条数据 pageNumb ...

  4. 数据库常用的sql语句汇总

    数据库相关: 查所有数据库 show databases; 创建数据库 create database db1; 查看数据库 show create database db1; 创建数据库指定字符集 ...

  5. SQL语句汇总(一)——数据库与表的操作以及创建约束

    首先,非常感谢大家对上篇博文的支持,真是让本菜受宠若惊,同时对拖了这么久才出了此篇表示抱歉. 前言:此文旨在汇总从建立数据库到联接查询等绝大部分SQL语句.SQL语句虽不能说很多,但稍有时间不写就容易 ...

  6. SQL语句汇总(终篇)—— 表联接与联接查询

    上一篇博文说到相关子查询效率低下,那我们怎么能将不同表的信息一起查询出来呢?这就需要用到表联接. 和之前的UNION组合查询不同,UNION是将不同的表组合起来,也就是纵向联接,说白了就是竖着拼起来. ...

  7. SQL语句汇总(三)——聚合函数、分组、子查询及组合查询

    聚合函数: SQL中提供的聚合函数可以用来统计.求和.求最值等等. 分类: –COUNT:统计行数量 –SUM:获取单个列的合计值 –AVG:计算某个列的平均值 –MAX:计算列的最大值 –MIN:计 ...

  8. oracle常用SQL语句(汇总版)

    原文地址:https://www.cnblogs.com/xrhou12326/p/4094737.html Oracle数据库常用sql语句 ORACLE 常用的SQL语法和数据对象 一.数据控制语 ...

  9. 常用 SQL 语句汇总

    常用 SQL 汇总 使用索引注意事项 使用like关键字时,前置%会导致索引失效. 使用null值会被自动从索引中排除,索引一般不会建立在有空值的列上. 使用or关键字时,or左右字段如果存在一个没有 ...

最新文章

  1. Android Studio: finished with non-zero exit value2
  2. HTTP1.0、HTTP1.1和HTTP2.0的区别
  3. iphone如何使用CoreNFC
  4. html树状图右侧_treeview-树形菜单js组件编写及应用
  5. spring基础Bean管理基于xml注入
  6. 小程序授权及获取unionid,
  7. ffmpeg文档8:软件缩放
  8. vasp软件全名是什么_qvasp一款简单易用的VASP辅助计算软件
  9. linux 网络对时
  10. Google检索技巧大全
  11. 牛客练习赛41 E 球的体积并
  12. 论文笔记:NAOMI: Non-Autoregressive MultiresolutionSequence Imputation
  13. bind()方法实现
  14. 实战教程 | 用让新海诚本人惊讶的 AI 模型制作属于你的动漫视频
  15. stata读入dta乱码时的操作
  16. 抱歉,系统网络繁忙,您暂时无法付款,请稍后再试。
  17. model.eval()的使用
  18. 世界上第一个会话搜索引擎——Perplexity AI使用测评
  19. 2022电大国家开放大学网上形考任务-高等数学基础非免费(非答案)
  20. 安装PyCharm以及Python解释器

热门文章

  1. AD使用Backspace键删除连线
  2. 一比一复刻ACFun视频网站页面
  3. LINUX学习------3.6 Linux中的火墙策略优化
  4. 微信小程序最新调用用户头像以及昵称
  5. react 的 ref 按钮异步点击调用方法
  6. 哭唧唧!半年内使用过蚂蚁借呗、京东白条的 一律不给贷款?
  7. 45招绝密电脑全面小技巧汇总
  8. 3D软件中实体建模与曲面建模有什么区别?
  9. 计算机弹奏我去上学校,笑话段子:上大学的时候!记得有一次我喝过酒打车回学校...
  10. 有赞客户、会员、粉丝的区别