【Access】Access:SQL 语句汇总

news2025/1/12 6:04:45

目录

一、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;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/482253.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

HTB-TheNotebook

HTB-TheNotebook 信息收集80端口JWT攻击 立足www-data -> noahnoah -> root 信息收集 80端口 存在一个登录和注册用户业务。先看看登录业务&#xff0c;在登录中如果我输入不存在的用户就会出现&#xff1a; Login Failed! Reason: User doesn’t exist. 如果是存在的用…

Value for SWIFT_VERSION cannot be empty错误解决

出错: 解决方法: 选择后 重新编译成功

【2023 年第十三届 MathorCup 高校数学建模挑战赛】 B 题 城市轨道交通列车时刻表优化问题 42页论文及代码

【2023 年第十三届 MathorCup 高校数学建模挑战赛】 B 题 城市轨道交通列车时刻表优化问题 42页论文及代码 相关链接 【2023 年第十三届 MathorCup 高校数学建模挑战赛】 B 题 城市轨道交通列车时刻表优化问题 详细建模方案及代码实现 1 题目 列车时刻表优化问题是轨道交通…

​力扣解法汇总1376. 通知所有员工所需的时间

目录链接&#xff1a; 力扣编程题-解法汇总_分享记录-CSDN博客 GitHub同步刷题项目&#xff1a; https://github.com/September26/java-algorithms 原题链接&#xff1a;力扣 描述&#xff1a; 公司里有 n 名员工&#xff0c;每个员工的 ID 都是独一无二的&#xff0c;编号从…

【五一创作】【笔记】Git|如何将仓库中所有的 commit 合成一个?又名,如何清除所有 git 提交记录?(附 git rebase 机制的简要分析)

在对代码进行开源时&#xff0c;我们往往并不希望代码开发过程中的提交记录被其他人看到&#xff0c;因为提交的过程中往往会涵盖一些敏感信息。因此会存在 将仓库中所有 commit 合成一个 的需求。 直觉上&#xff0c;往往会用 rebase 和 squash 或 reset&#xff0c;不过我尝…

【Unity-UGUI控件全面解析】| Button 按钮组件详解

🎬【Unity-UGUI控件全面解析】| Button 按钮组件详解一、组件介绍二、组件属性面板2.1 Transition 类型三、代码操作组件四、组件常用方法示例4.1 监听点击事件4.2 按钮过度动画示例💯总结🎬 博客主页:https://xiaoy.blog.csdn.net 🎥 本文由 呆呆敲代码的小Y 原创,首…

JavaWeb——JavaScript

定义: js引入方式&#xff08;两种方式&#xff09; js基础语法 输出语句 变量 var的变量特点1:作用域大&#xff0c;是全局变量 var的变量特点2:可以重复声明 ES6最新增的关键字 数据类型&#xff0c;运算符&#xff0c;流程控制语句 js中也有着类似java的8大基本数据类…

企业级信息系统开发讲课笔记3.3 基于XML配置方式SSM框架西蒙购物网

文章目录 零、本节学习目标一、网站功能需求二、网站设计思路&#xff08;一&#xff09;设计模式&#xff08;二&#xff09;网站前台&#xff08;三&#xff09;网站后台1、用户管理2、类别管理3、商品管理4、订单管理 &#xff08;四&#xff09;购物流程图 三、网站运行效果…

Iron Web Scraper 2023.4.13 Crack

Iron Web Scraper 被认为是 C# 的互联网抓取库&#xff0c;它能够让用户和开发者激发和最终的个人浏览行为&#xff0c;以提取文件、内容甚至图片和应用程序。动词作为 .NET 的本机项。IronWebScraper 具有从后台处理礼貌和多线程进程的能力&#xff0c;这使得用户程序很容易简…

FreeRTOS 任务通知

文章目录 一、任务通知简介二、发送任务通知1. 函数 xTaskNotify()2. 函数 xTaskNotifyFromISR()3. 函数 xTaskNotifyGive()4. 函数 vTaskNotifyGiveFromISR()5. 函数 xTaskNotifyAndQuery()6. 函数 xTaskNotifyAndQueryFromISR() 三、任务通知通用发送函数1. 任务级任务通知通…

一、环境搭建

一、创建新的环境空间 conda create -n yanyu python3.7.4 yanyu为新的环境空间名称&#xff0c;可自定义修改 conda activate yanyu 切换一下环境空间 二、安装sklearn并验证 安装相关包 pip install numpy pip install scipy pip install matplotlib pip install sklear…

Python小姿势 - Python面向对象

Python面向对象 Python是一种面向对象的编程语言&#xff0c;它能够把很复杂的事情简单化。面向对象最大的特点就是数据和对数据的操作分离开了。 举个例子&#xff0c;假设你要做一个学生成绩管理系统&#xff0c;在这个系统里&#xff0c;你需要存储每个学生的姓名、年龄、成…

【2023 年第十三届 MathorCup 高校数学建模挑战赛】A 题 量子计算机在信用评分卡组合优化中的应用 42页论文及代码

【2023 年第十三届 MathorCup 高校数学建模挑战赛】A 题 量子计算机在信用评分卡组合优化中的应用 42页论文及代码 相关信息 【2023 年第十三届 MathorCup 高校数学建模挑战赛】A 题 量子计算机在信用评分卡组合优化中的应用 详细建模过程解析及代码实现 1 题目 在银行信用…

【python知识】推导式和生成器

一、说明 Python 推导式&#xff0c;是针对容器对象&#xff08;列表,字典&#xff0c;集合&#xff0c;元组&#xff09;的产生方式的语句。它可以从一个数据序列构建另一个新的数据序列的结构体。 Python 支持各种数据结构的推导式&#xff1a; 列表(list)推导式字典(dict)推…

从零开始实现 std::string:让你更深入地了解字符串的本质

文章目录 前言string类 的模拟实现一&#xff0c;搭建框架二&#xff0c;重载输入输出操作符 ‘<<’ ‘>>’1. 重载操作符 ‘<<’2.重载操作符 ‘>>’且看方式一来看方式二 三&#xff0c;实现构造函数方式一方式二 四&#xff0c;实现拷贝构造和重载赋…

TCP之报文格式解析

TCP网络协议是较常用的&#xff0c;也基本上都会接触&#xff0c;那么来简单了解下它吧。TCP 是一种面向连接的、可靠的传输协议&#xff0c;它能够将数据分成一些小块&#xff0c;并通过 Internet 进行传输。在 TCP 中&#xff0c;数据被分割成一些称为 TCP 报文段&#xff08…

JetBrains 公布 WebStorm 2023.2 路线图

JetBrains 已公布了 WebStorm 2023.2 版本的路线图&#xff0c;以便用户可以率先了解到官方的规划以及能够预览一下未来能够用上的新功能。 主要聚焦于以下内容&#xff1a; 稳定的新 UI。这是此版本中的优先事项之一。CSS 嵌套支持。WebStorm 2023.2 计划将添加对 CSS 嵌套功能…

TensorRT:自定义插件学习与实践 002:实现GELU

代码连接:https://github.com/codesteller/trt-custom-plugin TensorRT版本的选择 教程代码对应的版本TensorRT-6.0.1.8,我尝试使用TensorRT-7.2.3.4也能通过编译 set_ifndef(TRT_LIB /usr/local/TensorRT-7.2.3.4/lib) set_ifndef(TRT_INCLUDE /usr/local/TensorRT-7.2.3.4…

是不是在为 API 烦恼 ?好用免费的api接口大全呼之欲出

前期回顾 “ ES6 —— 让你的JavaScript代码从平凡到精彩 “_0.活在风浪里的博客-CSDN博客Es6 特性https://blog.csdn.net/m0_57904695/article/details/130408701?spm1001.2014.3001.5501 &#x1f44d; 本文专栏&#xff1a;开发技巧 先说本文目的&#xff0c;本文会分…

有效日志管理在软件开发和运营中的作用

作者&#xff1a;Luca Wintergerst, David Hope, Bahubali Shetti 当今存在的快速软件开发过程需要扩展和复杂的基础架构和应用程序组件&#xff0c;并且操作和开发团队的工作不断增长且涉及多个方面。 有助于管理和分析遥测数据的可观察性是确保应用程序和基础架构的性能和可靠…