SQL是一种结构化查询语言,集数据定义、数据查询、数据操纵、数据控制功能于一体。

定义 create、drop、alter
查询 select
操纵 inster、update、delete
控制 crant、revote

【实例一:图书管理数据库】

假设我们有一个图书管理的数据库,其中的表关系如下:

一、创建表

create table 读者(借书证号 primary key,姓名 char(4) not null,部门.......)

二、修改表字段

1、增加表字段

alter table 读者 add 照片

2、删除表字段

alter table 读者 drop 备注

3、删除表

drop table 读者

三、查询操作

1、查询图书总价

SELECT sum(图书.单价) AS 总价
FROM 图书;

2、查询每个出版社图书的总数量,以降序排序

SELECT 出版社, sum(图书.库存数量)
FROM 图书
GROUP BY 出版社
ORDER BY sum(图书.库存数量) DESC;

3、查询单价最高的2本书的信息

SELECT TOP 2 *
FROM 图书
ORDER BY 单价 DESC;

4、查询以“计算机”开头的图书信息

SELECT 书名, 作者, 出版社
FROM 图书
WHERE 书名 like "单*";

5、查询高于平均单价的图书信息

SELECT 书名
FROM 图书
WHERE 单价>(select avg(单价)from 图书);

6、查询每本图书的借阅次数

SELECT 图书.书名, count(借书登记.书号) AS 人数
FROM 图书, 借书登记
WHERE 图书.书号=借书登记.书号
GROUP BY 图书.书名;

7、查询最受欢迎(借阅次数多)的2本书的书号

SELECT TOP 2 书号, count(书号) AS 次数
FROM 借书登记
GROUP BY 书号
ORDER BY count(书号) DESC;

8、查询最受欢迎的2本书的书名

SELECT TOP 2 图书.书名, count(借书登记.书号) AS 次数
FROM 借书登记, 图书
WHERE 借书登记.书号=图书.书号
GROUP BY 图书.书名
ORDER BY count(借书登记.书号) DESC;

9、查询每本未还图书的借阅信息

SELECT *
FROM 借书登记
WHERE 还书日期 is null;

10、查询计算机系读者的借阅信息

SELECT 借书登记.*
FROM 借书登记, 读者
WHERE 借书登记.借书证号=读者.借书证号
and 读者.部门="计算机";

11、如果借阅时间超过一个月还未还书,将记录中”是否超期”改为true

UPDATE 借书登记 SET 是否超期 = 1
WHERE 还书日期-借书日期>30;

12、查询所有借了书的读者的姓名和部门

SELECT 读者.姓名, 部门
FROM 读者, 借书登记
WHERE 读者.借书证号=借书登记.借书证号;

13、查询图书信息,按图书入库数量降序排列

SELECT *
FROM 图书
ORDER BY 入库数量 DESC;

14、查询图书库存数量最多的图书信息

SELECT TOP 1 *
FROM 图书
ORDER BY 库存数量 DESC;

15、查询没有被借阅的图书信息

SELECT *
FROM 图书 LEFT JOIN 借书登记 ON 图书.书号=借书登记.书号
WHERE 图书.书号 not in(select 书号 from 借书登记);

16、查询2015年1月1号至2015年3月31号期间借书的读者编号

SELECT 借书证号
FROM 借书登记
WHERE 借书日期 between #2015/1/01# and #2015/3/31#;

17、查询2015年1月1号至2015年3月31号期间借书的读者姓名

SELECT 读者.姓名
FROM 读者, 借书登记
WHERE 读者.借书证号=借书登记.借书证号
and 借书登记.借书日期 between #2015/1/01# and #2015/3/31#
GROUP BY 读者.姓名;

【实例二:教学管理数据库】

数据库关系图如下:

1、查询每名学生选课信息,并显示姓名、课程名、考试成绩等字段信息

SELECT 学生.姓名, 课程.课程名称, 选课成绩.考试成绩
FROM 学生 INNER JOIN (课程 INNER JOIN 选课成绩 ON 课程.[课程编号] = 选课成绩.[课程编号]) ON 学生.[学生编号] = 选课成绩.[学生编号];

2、查询每名学生的考试成绩的平均成绩、总成绩、最高成绩、最低成绩以及选课数

SELECT DISTINCTROW 学生.姓名, Sum(选课成绩.考试成绩) AS [考试成绩 之 合计], Avg(选课成绩.考试成绩) AS [考试成绩 之 平均值], Min(选课成绩.考试成绩) AS [考试成绩 之 最小值], Max(选课成绩.考试成绩) AS [考试成绩 之 最大值], Count(学生.姓名) AS 选课数
FROM 学生 INNER JOIN 选课成绩 ON 学生.[学生编号] = 选课成绩.[学生编号]
GROUP BY 学生.姓名;

3、查询学生表中同名的学生记录

SELECT First(学生.姓名) AS [姓名 字段], Count(学生.姓名) AS NumberOfDups
FROM 学生
GROUP BY 学生.姓名
HAVING (((Count(学生.姓名))>1));

4、查询选课表中相同成绩的选课信息

SELECT First(选课成绩.课程编号) AS [课程编号 字段], First(选课成绩.考试成绩) AS [考试成绩 字段], Count(选课成绩.课程编号) AS NumberOfDups
FROM 选课成绩
GROUP BY 选课成绩.课程编号, 选课成绩.考试成绩
HAVING (((Count(选课成绩.课程编号))>1) AND ((Count(选课成绩.考试成绩))>1));

5、查询没有学生选修的课程

SELECT 课程.*
FROM 课程 LEFT JOIN 选课成绩 ON 课程.[课程编号] = 选课成绩.[课程编号]
WHERE (((选课成绩.课程编号) Is Null));

6、查询没有选修课程的学生

SELECT 学生.姓名, 选课成绩.学生编号
FROM 学生 LEFT JOIN 选课成绩 ON 学生.[学生编号] = 选课成绩.[学生编号]
WHERE (((选课成绩.学生编号) Is Null));

7、查询学生表中所有学生的班级、姓名、年龄

SELECT 学生.姓名, 学生.班级, Year(Now())-Year([出生日期]) AS 年龄
FROM 学生;

8、查询选课的学生中没有参加考试的学生,显示“姓名”、“性别”

9、查询考试成绩等于0分的学生,显示“姓名”、“性别”、“考试成绩”

10、查询考试成绩不等于0分的学生,显示“姓名”、“性别”、“考试成绩”

SELECT 选课成绩.考试成绩, 学生.姓名, 学生.性别
FROM 学生 INNER JOIN 选课成绩 ON 学生.学生编号 = 选课成绩.学生编号
WHERE (((选课成绩.考试成绩)>0));

11、查询考试成绩小于60分和考试成绩大于等于90分的女生,显示“姓名”、“考试成绩”

SELECT 选课成绩.考试成绩, 学生.姓名
FROM 学生 INNER JOIN 选课成绩 ON 学生.学生编号 = 选课成绩.学生编号
WHERE (((选课成绩.考试成绩)<=60 Or (选课成绩.考试成绩)>=90) AND ((学生.性别)="女"));

13、查询学生表中不同性别的学生人数

SELECT Count(学生.学生编号) AS 人数统计, 学生.性别
FROM 学生
WHERE (((学生.性别)="女" Or (学生.性别)="男"))
GROUP BY 学生.性别;

14、查询学生表中不同性别的学生每门课程的平均成绩,以交叉表的形式显示

TRANSFORM Avg(选课成绩.总评成绩) AS 总评成绩之平均值
SELECT 学生.性别
FROM 课程 INNER JOIN (学生 INNER JOIN 选课成绩 ON 学生.学生编号 = 选课成绩.学生编号) ON 课程.课程编号 = 选课成绩.课程编号
GROUP BY 学生.性别
PIVOT 课程.课程名称;

15、查询学生表中每个学生的选课情况,要求以交叉表的形式显示每个学生选了哪门课及每个学生总的选课数

TRANSFORM Count(选课成绩.课程编号) AS 课程编号之计数
SELECT 学生.姓名, Count(课程.课程编号) AS 总选课数
FROM 学生 INNER JOIN (课程 INNER JOIN 选课成绩 ON 课程.课程编号 = 选课成绩.课程编号) ON 学生.学生编号 = 选课成绩.学生编号
GROUP BY 学生.姓名
PIVOT 课程.课程名称;

16、建立参数查询,要求根据输入的学生姓名,显示该学生的全部信息

SELECT 学生.姓名, 学生.性别, 课程.课程名称, 选课成绩.总评成绩, 学生.学生编号
FROM 课程 INNER JOIN (学生 INNER JOIN 选课成绩 ON 学生.学生编号 = 选课成绩.学生编号) ON 课程.课程编号 = 选课成绩.课程编号
WHERE (((学生.姓名)=[请输入学生姓名:]));

17、建立更新查询,将“女学生”表中的所有非团员都改为团员

UPDATE 学生 SET 学生.团员否 = "1"
WHERE (((学生.性别)="女"));

Access中的基础SQL操作相关推荐

  1. Cisco Packet Tracer中的基础命令操作以及组织网络实验

    基于思科模拟器的路由基础命令操作 4.路由器的模式切换 5.路由器基本命令及实现功能 路由器命令小结: 基于思科模拟器的路由基础命令操作 1.打开Cisco packet tracer,选取路由器Ro ...

  2. C# Access中OLE对象的操作

    有时候需要大数据的存取时,如图片,需要用到ole对象的操作. 首先,在默认文件中,添加两个名空间 using System.Data.OleDb; using System.IO; 一个用于数据库操作 ...

  3. 工作中的基础git操作

    撤销修改 如果还没将修改进行提交,还没执行git commit语句 则进行 git checkout -- *  # 整体代码撤销修改 git checkout -- a.py b.py  # 单独撤 ...

  4. (转)SQL操作全集

    下列语句部分是Mssql语句,不可以在access中使用. SQL分类: DDL-数据定义语言(CREATE,ALTER,DROP,DECLARE)  DML-数据操纵语言(SELECT,DELETE ...

  5. SQL操作全集[自己收藏]|Findnet.com.cn

    下列语句部分是Mssql语句,不可以在access中使用. SQL分类:  DDL-数据定义语言(CREATE,ALTER,DROP,DECLARE)  DML-数据操纵语言(SELECT,DELET ...

  6. Access中使用sql查询

    在ACCESS中使用SQL查询语句检查SQL语法时非常有用. 操作步骤如下: [创建]->[查询设计] 直接关闭弹出的[显示表] 找到[SQL视图]: 在查询命令窗口输入命令,然后执行运行命令. ...

  7. SQL数据库基础中的基础

    SQL数据库基础中的基础 1.数据库操作 0.0 提前准备 再开始操作之前,需要有数据库,如果没有安装的可以看我上一篇的内容.以下所有操作均在数据库上操作. 1.1 DDL操作 1.1.1 数据库操作 ...

  8. 测试基础——数据库及数据库表的SQL操作(了解即可)

    目录 1.数据库基础概念 2.SQL介绍 3.MySQL介绍 4.数据库连接工具Navicat 5.数据类型 6.约束 7.对数据库操作的SQL语句 7.1创建数据库 7.2使用/打开/切换数据库 7 ...

  9. JavaWeb - 数据库,MySQL安装卸载,MySQL服务器存储结构,sql语言,使用sql操作数据库/数据库表/表中记录,聚集函数,分组操作,limit关键字,重置root密码

    转载请注明出处:https://blog.csdn.net/mythmayor/article/details/72781451 1.数据库的简介 (1)什么是数据库,就是一个文件系统,使用标准sql ...

最新文章

  1. 【转载】目前为止看到描述VSCode编写C++配置文件最清楚的一篇文章
  2. [I2C]I2C总线协议图解
  3. boost::mp11::mp_invoke_q相关用法的测试程序
  4. 一维数组,二维数组,三维数组,数组与指针,结构体数组,通过改变指针类型改变访问数组的方式
  5. 北大OJ(POJ 3237)鸡兔同笼
  6. 全职带孩子可能会面临哪些问题?
  7. 微信JSAPI模式与浏览器类型安全访问
  8. makefile ------ subst、foreach、wildcard、notdir
  9. Matlab实现身份证号码快速识别
  10. 循环经济升级推动产业升级发展建议
  11. Git常用命令及其作用_艾孜尔江撰
  12. lol最克制诺手的英雄_LOL:对线很“无解”的5个英雄,其实他们都有克星,诺手只怕它!...
  13. Toronto Research Chemicals 双(乙酰丙酮)铂(II)
  14. 微信付费进群收费进群系统源码 底部会显示价格(可自定义)入群
  15. raid5常见故障数据恢复方法/服务器数据恢复常用方法
  16. CUDA PTX ISA阅读笔记(二)
  17. 域横向批量atschtasksimpacket 传递
  18. 75+精美的网格网站设计欣赏
  19. Python:函数使用
  20. stata绘制roc曲线_使用Stata进行ROC曲线分析实例分析-roc曲线分析实例

热门文章

  1. 利用 Sony Vegas 制作消音伴奏教程
  2. linux c++编程教程,Linux下的C++编程入门教程.ppt
  3. 重磅!《阿里聚安全 2016 年报》正式发布!
  4. 原来华展云还能这么玩? 玩转华展云之——官网风云
  5. 互联网造车定位称王还是镜花水月
  6. 电脑安装android办公,办公室上班族的福利,在电脑上玩安卓系统
  7. COBIT4.0简介
  8. PHP获取服务器硬件信息
  9. QImage与Qpixmap的区别
  10. 与Bosun一起监控