【Access】Access: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 下载、安装、使用教程(「管理信息系统」实践专用软件)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  (条件) ] 
 )

access sql语句,【软件测试】数据库测试,数据库,sql,Access

示例 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 )
 )

 access sql语句,【软件测试】数据库测试,数据库,sql,Access

示例 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) )
)

access sql语句,【软件测试】数据库测试,数据库,sql,Access


(2)删除关系 

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

drop table 关系名

【注意 Warning! 】

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

示例:

drop table   SC


四、SQL 的「数据查询」功能

  • 基本结构
  • 聚集函数
  • 集合运算
  • 连接关系

(1)基本结构

① Select 语句的基本结构

access sql语句,【软件测试】数据库测试,数据库,sql,Access

语义次序:

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


② Select 子句 

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

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

  • 相当于广义投影运算

示例:

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

access sql语句,【软件测试】数据库测试,数据库,sql,Access

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

access sql语句,【软件测试】数据库测试,数据库,sql,Access

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

示例:

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

access sql语句,【软件测试】数据库测试,数据库,sql,Access

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

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

示例:

Select  all 课程
From        R

access sql语句,【软件测试】数据库测试,数据库,sql,Access

Select  distinct  课程
From             R

 access sql语句,【软件测试】数据库测试,数据库,sql,Access


③ 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   性别='男'

access sql语句,【软件测试】数据库测试,数据库,sql,Access  

  • 问:所有大于 22 岁的男学生的信息?
Select  * 
From    S 
Where  性别='男' and 年龄>22

access sql语句,【软件测试】数据库测试,数据库,sql,Access


④ 空值的处理

空值判定

A   is   [not ]   null

判断指定 A(属性,表达式等)的值是否为空值

示例:

  • 找出年龄值未知的员工姓名
  • 正确语法
Select 姓名 
From   employee
Where 年龄 is  null

access sql语句,【软件测试】数据库测试,数据库,sql,Access

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

access sql语句,【软件测试】数据库测试,数据库,sql,Access


(2)聚集函数

① Select 子句

  • sum(字段):对字段的所有值求和,忽略空值
  • avg(字段):对字段的所有值求平均值,忽略空值
  • count(*) :统计记录的总数 count(字段):统计字段值的总数,忽略空值
  • max(字段):对字段的所有值求最大值,忽略空值
  • min(字段):对字段的所有值求最小值,忽略空值  

② Group By 子句 

access sql语句,【软件测试】数据库测试,数据库,sql,Access

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

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

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

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

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

① 分组属性

② 聚集函数(任意属性)

③ 由①和②组成的表达式 

示例:

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

access sql语句,【软件测试】数据库测试,数据库,sql,Access


③ Having 子句

access sql语句,【软件测试】数据库测试,数据库,sql,Access

出现在 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

access sql语句,【软件测试】数据库测试,数据库,sql,Access

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

access sql语句,【软件测试】数据库测试,数据库,sql,Access


④ Order By 子句

access sql语句,【软件测试】数据库测试,数据库,sql,Access

Order By 子句的作用:在 Select 子句得出结果后,对结果进行排序

  1. 先按属性1的值,升序(asc)或降序(desc)排列,缺省是升序;
  2. 属性1的值相同时,再按属性2值升序或降序排列…

示例:

R:  选修关系

问: 从高到低列出物理课程的成绩

Select    姓名, 成绩
From      R
Where     课程='物理' 
Order By  成绩  desc

access sql语句,【软件测试】数据库测试,数据库,sql,Access


⑤ 空值的处理

示例:

Select avg(年龄)    as  平均已知年龄,                
       count (年龄) as  已知年龄人数,                
       count (*)   as  总人数, 
       min(年龄)    as  最小年龄,
       max(年龄)    as  最大年龄
From   employee

access sql语句,【软件测试】数据库测试,数据库,sql,Access


(3)集合运算 

① From 子句:笛卡儿积 

示例:

select  ∗
from    s,sc

access sql语句,【软件测试】数据库测试,数据库,sql,Access


② From 子句 

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

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

示例:

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

access sql语句,【软件测试】数据库测试,数据库,sql,Access


(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

access sql语句,【软件测试】数据库测试,数据库,sql,Access


② 外连接 

示例:

select            ∗
from              s 
right outer join  sc
on                s.sno=sc.sno
select           ∗
from             sc 
left outer join  s
on               s.sno=sc.sno

access sql语句,【软件测试】数据库测试,数据库,sql,Access


③ 左外连接

示例:

Select           Emp.姓名, Dept.名称 as 部门
From             Emp 
left outer join  Dept 
on               Emp.部门号=Dept.部门号

access sql语句,【软件测试】数据库测试,数据库,sql,Access


④ 右外连接

示例:

Select            Emp.姓名, Dept.名称 as 部门
From              Emp 
right outer join  Dept 
on                Emp.部门号=Dept.部门号

 access sql语句,【软件测试】数据库测试,数据库,sql,Access


⑤ 左 / 右外连接 

示例:

select           ∗
from             s 
left outer join  sc
on               s.sno=sc.sno
select            ∗
from              sc 
right outer join  s
on                s.sno=sc.sno

access sql语句,【软件测试】数据库测试,数据库,sql,Access


⑥ 全外连接

示例:

Select           Emp.姓名, Dept.名称 as 部门
From             Emp 
full outer join  Dept
on               Emp.部门号=Dept.部门号

access sql语句,【软件测试】数据库测试,数据库,sql,Access



五、SQL 的「数据修改」功能

  • 插入:Insert 语句
  • 删除:Delete 语句
  • 更新:Update 语句 

(1)插入:Insert 语句

① 格式一

access sql语句,【软件测试】数据库测试,数据库,sql,Access

注意:

  • 所列值的个数必须和属性的个数相等,且一一对应
  • 在插入的新元组中,对没有指定的属性填入缺省值(Create Table时定义),没有缺省值时填入空值

示例:

Insert Into R Values (‘刘朝', '物理', 80)

 access sql语句,【软件测试】数据库测试,数据库,sql,Access

示例:

  • 新建表 S
Create  Table  Student (
               学号   VARCHAR (4),
               姓名  VARCHAR(10)  not  null,
               年龄  SMALLINT  default  22,
               班级  VARCHAR(20)
)
  • 在 S 中插入元组
Insert  Into  Student (学号, 姓名)  Values  (1, '小刘') 

access sql语句,【软件测试】数据库测试,数据库,sql,Access


② 格式二

access sql语句,【软件测试】数据库测试,数据库,sql,Access

注意:

同样地,对其它的属性填入缺省值或空值

 示例:

  • 添加所有学生选修数学课程的信息
Insert  Into  R(姓名, 课程)
Select        姓名,课程  
From          S,  C
Where         课程='数学'

 access sql语句,【软件测试】数据库测试,数据库,sql,Access


(2)删除:Delete 语句

access sql语句,【软件测试】数据库测试,数据库,sql,Access

说明:

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

示例:

  • 删除全部选修信息
Delete  From  R

access sql语句,【软件测试】数据库测试,数据库,sql,Access


(3)更新:Update 语句

access sql语句,【软件测试】数据库测试,数据库,sql,Access

说明:

  • 在关系中找到满足条件的元组,然后更新:表达式1的值赋予属性1;表达式2的值赋予属性2……
  • 没有 Where 子句时,则对关系的全部元组都要更新

示例:

  • 给销售部门的职工增加10%的工资
Update  employ 
Set     工资=工资*1.1
Where   部门='销售'

access sql语句,【软件测试】数据库测试,数据库,sql,Access



六、汇总 

具体 SQL 实战操作查看我的另一博文:

【Access】实战:Access 操作 SQL 「学生」 文章来源地址https://www.toymoban.com/news/detail-728916.html

① 创建表格

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 语句汇总的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • 网络安全进阶学习第十二课——SQL手工注入3(Access数据库)

    网络安全进阶学习第十二课——SQL手工注入3(Access数据库)

    判断数据库类型 —— 判断表名 —— 判断列名 —— 判断列名长度 —— 查出数据。 asp的网站,常用数据库为access、sqlserver。 and exsits (select * from msysobjects)0 access and exsits (select * from sysobjects)0 sqlserver 上述语句 会返回1或者0 。 msysobjects是access的默认数据库 , sysobjects是sqlserv

    2024年02月11日
    浏览(10)
  • 常见的软件测试面试题汇总

    一、   你们的测试流程是怎么样的? 答:1.项目开始阶段, BA (需求分析师) 从用户方收集需求并将需求转化为规格说明书,接 下来在 项目组领导 会组织需求评审。 2.需求评审通过后,BA 会组织 项目经理 、 开发人员 和 测试人员 交接需求( 交接需求的过程中, 我一般会

    2024年02月14日
    浏览(9)
  • 软件测试项目实战,电商业务功能测试点汇总(全覆盖)

    软件测试项目实战,电商业务功能测试点汇总(全覆盖)

    支付功能怎么测试 1、从功能方面考虑: ①正常完成支付的流程; ②支付中断后继续支付的流程; ③支付中断后结束支付的流程; ④单订单支付的流程; ⑤多订单合并支付的流程; ⑥余额不足; ⑦未绑定银行卡; ⑧密码错误; ⑨密码错误次数过多; ⑩找人代付; ⑪弱网

    2024年02月12日
    浏览(8)
  • ☆常用的Sql语句汇总(DDL/DML)

    ☆常用的Sql语句汇总(DDL/DML)

    里面有表注释 数据库种类 sql 备注 mysql -- 获取所有表名、视图名 show tables -- 获取 dev_test_data数据库 所有表、视图信息 select * from information_schema.tables where table_schema=\\\'dev_test_data\\\' -- 获取表名、视图名 select table_name from information_schema.tables where table_schema=\\\'dev_test_data\\\' -- 只获取表信息

    2024年02月03日
    浏览(5)
  • sql 1044 - Access denied for user ‘root‘@‘localhost‘ to database ‘information_schema‘

    sql 1044 - Access denied for user ‘root‘@‘localhost‘ to database ‘information_schema‘

    这是sql数据库执行问题。 错误原因:未打开数据库直接导入sql文件。 解决步骤: 1.正确打开数据库。 数据库如下第一个为绿色 2.右击该数据库,选择新建数据库,输入数据库名,对应的字符集和规则,一般为utf8,规则为utf8_general_ci。 utf8和utfmb4区别: utfmb4 兼容 utf8 且可以

    2024年02月06日
    浏览(8)
  • 报错:java.sql.SQLException: Access denied for user ‘root‘@‘localhost‘ (using password: YES)

    报错:java.sql.SQLException: Access denied for user ‘root‘@‘localhost‘ (using password: YES)

    在使用springboot连接数据库时,会使用到yml或yaml来设置DataSource信息,就看你出现以下异常。 提示用户访问被拒绝,原因是密码不正确,但是我们在检查时,密码明明配置的是正确的密码,原因就在yml或yaml中。 首先找到IDEA中,yaml或yml中,配置数据库密码的地方: 因为yml或

    2024年02月03日
    浏览(12)
  • Selenium 学习(0.16)——软件测试之测试用例设计方法——白盒测试——逻辑覆盖法(语句覆盖和判定覆盖)

    Selenium 学习(0.16)——软件测试之测试用例设计方法——白盒测试——逻辑覆盖法(语句覆盖和判定覆盖)

            写在前面          今天回来有点晚,因为上午给小伙伴们开了个小会,随便说了些什么,结果小伙伴们下班就没急着走,弄点我还有点不好意思提前走了,就略留了一会。其实也没说什么,就是强调工作要抓点紧,8小时内提高效率就好,我反对无意义的加班;

    2024年02月05日
    浏览(19)
  • 成功解决 java.sql.SQLException: Access denied for user ‘root’@‘localhost’ (using password: YES)

    成功解决 java.sql.SQLException: Access denied for user ‘root’@‘localhost’ (using password: YES)

    今天在用IDE配置JDBC连接MySQL时,一直报错,java.sql.SQLException: Access denied for user ‘root’@‘localhost’ (using password: YES),网上找了很多的解决办法,现在已成功解决,记录一下。 重新启动MySQL服务 右击此电脑 - 管理 - 服务 - 找到MySQL - 右键重新启动。 重新启动MySQL, IDEA还是报错

    2024年02月04日
    浏览(8)
  • 已解决:java.sql.SQLException: Access denied for user ‘root‘@‘localhost‘ (using password: YES)

    已解决:java.sql.SQLException: Access denied for user ‘root‘@‘localhost‘ (using password: YES)

    今天在搞软测一个作业 要用Tomcat整个古董项目 因为用到的东西都很老 大概就是因为旧版本的MySQL服务器使用mysql_native_password  但是 这是发生错误的主要原因 找到my.ini文件,找到mysqld部分,(如果没有就直接增加这句话)将 auth_native_password 设置为 1 ,新版本的客户端仍然能

    2024年04月16日
    浏览(10)
  • java.sql.SQLException: Access denied for user ‘root‘@‘localhost‘ (using password: YES)报错原因

    java.sql.SQLException: Access denied for user ‘root‘@‘localhost‘ (using password: YES)报错原因

    1.第一个:用户名和密码不匹配,或者是在连接池里多打了空格之类的 就是配置文件的问题; 2.第二个:可能是用户的权限不够,给他添加权限; 授予权限 -- grant all privileges on databasename.tablename to \\\'user\\\'@\\\'host\\\' identified by \\\'password\\\'; -- 授予myuser用户全局级全部权限: GRANT ALL PRI

    2024年02月06日
    浏览(7)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包