前两天刚做的实验,今天把语句整理一下(数据库的代码会贴在最后)

(1) SELECT 语句的基本使用。

1. 用 SELECT 语句查询 Departments 和 Salary 表中所有的数据信息。

SELECT <列名> FROM <表名> WHERE <条件>(这里用通配符 * 表示全列)

SELECT * FROM Departments,Salary WHERE Departments.DepartmentID=Salary.DepartmentID
--或者分成两个(还没学多表查询的时候),出来两个表
SELECT * FROM Departments
SELECT * FROM Salary
--**DISTINCT去重**

2. 查询 EmployeeID 为 000001 雇员的地址和电话。

这时候的<列名>部分就用具体的列,并用 , 进行分离

SELECT Address,PhoneNumber FROM Employees WHERE EmployeeID ='000001'

3. 查询 Employees 表中女雇员的地址和电话,使用 AS 子句将结果中各列 的标题分别 指定为地址、电话.

1) 先分析找什么:地址和电话
2) 从哪找: 查询 Employees 表中
3)条件是什么:女雇员

(这道题很简单,但是要培养思维,在后面难得才可以有思路,我这也是自己看书培养的自己的思路,有大佬有更好的见解,请务必分享给我)

SELECT Address AS 地址,PhoneNumber AS 电话 FROM Employees WHERE SEX='0'

这用到AS:就是给列原来的名字换个名
除了AS 还有两种方式

(1) 省略AS 形式

SELECT Address  地址,PhoneNumber  电话 FROM Employees WHERE SEX='0'

(2)赋值形式

SELECT  地址=Address ,  电话=PhoneNumber FROM Employees WHERE SEX='0'

4. 查询 Employees 表中员工的姓名和性别,要求 Sex 值为 1 时显示为“男”,为 0 时显 示为“女”。

这是CASE 语句,按Sex进行分类
(数字可以加引号,字符 男女 不能去掉引号)

SELECT Name,Sex =CASE Sex WHEN 1 THEN '男'WHEN 0 THEN '女'END
FROM Employees 

还有一种形式:

SELECT Name,Sex =CASE  WHEN Sex='1' THEN '男'WHEN Sex='0' THEN '女'END
FROM Employees

5. 计算每个雇员的实际收人

由语句可以看出<列名>中可以直接进行计算

SELECT EmployeeID ,(Income-OutCome) AS 实际工资 FROM Salary

6. 获得员工的总数。

这用的是count语句,他返回的是你所查询的东西到底有多少行

SELECT COUNT(*) FROM Employees
--等同于,因为EmployeeID就是 * 里的一列
SELECT COUNT(EmployeeID) FROM Employees

7. 查询财务部雇员的最高和最低实际收入

SELECT MAX(Income),MIN(Income) FROM Salary WHERE ?

你这里是无法缩小范围到财务部的,因为Salary表中没有DepartmentID这个列
所以要用多表查询(join on 内连接,连接部分会单独写一篇)

SELECT MAX(Income),MIN(Income) FROM SalaryJOIN Employees ON Employees.EmployeeID=Salary.EmployeeIDWHERE Employees.DepartmentID='1'

为什么用Employees而不用Departments,因为Employees既有EmployeeID又有DepartmentID

8. 找出所有姓王的雇员的部门号(模糊查询)

数据库的模糊查询真的算简单的!!!
记得是关键词LIKE ,不是等于!!!

SELECT DepartmentID FROM Employees WHERE LIKE '王%'

不确定在前(后)多少长度的就用 %
确定前(后)就一个字符的就用 _

比如 ’法外狂徒张三 ‘这个字符串 ,你就记得个张三就可以用‘%张三’
但你记得有几个字,比如‘法外_ _张%’
还有一种情况就是你的字符串里本就存在 _ % 这种符号
就要用 ESCAPE 这个关键词了,ESCAPE后的字符串就作为一种符号让这个符号一个 _ 或 % 成为真正的字符,而不是通配符
(因为别的语言很多用 / 所以我一般也用这个)

SELECT DepartmentID FROM Employees WHERE LIKE '/%' ESCAPE '/'

我用的这个表里没有 _ %这种字符串,所以这个语句只是为了举例子

9. 找出住址有其地址中含有“中山”的雇员的号码及部门号。

SELECT EmployeeID,DepartmentID FROM Employees WHERE Address LIKE'%中山%'

10. 找出所有在部门“1”或“2”工作的雇员的号码。

SELECT  EmployeeID ,DepartmentID FROM Employees
WHERE DepartmentID='1' OR DepartmentID='2'

这里关于用and还是用or 我觉得and有点像数学集合里的 且(n) ,而 or 就像 并(U)。

11. 找出所有收人在 2000~3OOO 元之间的员工.号码。

SELECT Employees.EmployeeID ,Salary.Income FROM Employees
JOIN Salary ON Employees.EmployeeID =Salary.EmployeeID
WHERE Salary.Income  BETWEEN 2000 AND 3000

12. 使用 INTO() 子句, 由表 SaIary 创建“收人在 1500 元以上的员工”表,包括编号和 收入

SELECT EmployeeID ,Income  INTO Salary1 FROM Salary
WHERE Income>1500
SELECT * FROM Salary1

数据库代码:

USE yggl1 INSERT INTO Departments
VALUES('1','财务部',NULL),('2','人力资源部',NULL),('3','经理办公室',NULL),('4','研发部',NULL),('5','市场部',NULL);
INSERT INTO Employees
VALUES
('000001','王林','大专','1966-1-23',1,'8','中山路 32-1-508','83355668','2'),
('010008','吴荣华','本科','1976-03-28',1,'3','北京东路100-2','83321321','1'),
('020010','王向荣','硕士','1982-12-09',1,'2','四牌楼40-0108','8792361','1'),
('020018','李丽','大专','1960-07-30',0,'6','中山东路102-2','83413301','1'),
('102201','刘明','本科','1972-10-18',1,'3','虎踞路100-2','83606608','5'),
('102208','朱俊','硕士','1965-09-28',1,'2','牌楼巷5-3-106','84708817','5'),
('108991','钟敏','硕士','1979-08-10',0,'4','中山路10-3-105','83346722','3'),
('111006','张石兵','本科','1974-10-01',1,'1','解放路34-1-203','84563418','5'),
('210678','林涛','大专','1977-04-02',1,'2','中山北路24-35','83467336','3'),
('302566','李玉明','本科','1968-09-20',1,'3','热河路209-3','58765991','4'),
('308759','叶凡','本科','1978-11-18',1,'2','北京西路3-7352','83308901','4'),
('504209','陈林琳','大专','1969-09-03',0,'6','汉中路120-4012','84468158','4')INSERT INTO Salary
VALUES
('000001','2100.80','123.09'),
('010008','1582.62','88.03'),
('102201','2569.88','185.65'),
('111006','1987.01','79.58'),
('504209','2066.15','108.00'),
('302566','2980.70','210.20'),
('108991','3259.98','281.52'),
('020010','2860.00','198.00'),
('020018','2347.68','180.00'),
('308759','2531.98','199.08'),
('210678','2240.00','121.00'),
('102208','1980.00','100.00')

SQL sever教程(实验2)数据库的查询和视图+SQL查询语句(一)相关推荐

  1. 【SQL】(task3)复杂查询(视图 | 子查询 | 谓词 | Case)

    学习总结 (1)视图和子查询.对于一些复杂的查询需要使用子查询加一些条件语句组合才能得到正确的结果.一个SQL语句的层数不能过深,不然可读性差而且执行效率也难以保证,所以尽量有简洁的语句来完成需要的功 ...

  2. 《SQL 入门教程》示例数据库

    文章目录 Oracle 示例表 示例数据 创建索引 删除对象 MySQL 示例表 示例数据 创建索引 删除对象 Microsoft SQL Server 示例表 示例数据 创建索引 删除对象 Post ...

  3. 【SQL Sever】将SQL Sever中的一个数据表的数据导出为insert语句

    例如:这SQL   Sever中的一张数据表,想要将这张数据表中的数据  转化成一个一个的insert语句存储在txt的文档中,那么不论走到那里这个insert语句一执行,我们就能将这个数据表中的数据 ...

  4. mysql 视图查询_MySQL视图复杂查询详解

    内容大纲:什么是视图查询 子查询 标量子查询 关联子查询 如何用SQL解决业务问题 各种函数 总结:知识点图解 视图什么是视图 视图存放的是SQL语句,而数据库表存放的是数据,使用视图时,会运行视图里 ...

  5. sql 占比计算_数据库索引的优化及SQL处理过程(建议收藏)

    想要设计出好的索引,首先必须了解SQL语句在数据库服务器中的处理过程,本文介绍 数据库索引设计与优化 中几个对索引优化非常重要的概念. 谓词 谓词就是条件表达式. SQL语句的where子句由一个或者 ...

  6. oracle查询远程视图进行insert语句报错:ORA-00600: 错误 [qerrmOFBu1], [24347], []

    今天开发提供了一个insert语句 在开发库上执行的时候居然报错: ORA-00600: 内部错误代码,参数: [qerrmOFBu1], [24347], [], [], [], [], [], [ ...

  7. Navicat Premium 15连接SQL sever (记录一下我的艰难历程,希望对大家有用,摸了半天终于连接上了)

    首先在下载安装Navicat Premium 15之前我安装了sql sever 和ssms,如果不按这两个个我想我肯定无法成功在Navicat Premium 15上连接sql sever,这里面最 ...

  8. 查找本地计算机的SQL Sever实例并实现访问

    查找本地计算机的SQL Sever实例并实现访问 1. 确定数据库的实例名及其连接串 1.1 方法1:新建本地udl文件获取连接字符串 1.1.1 获取实例名 1.1.2 获取连接串 1.2 方法2: ...

  9. SQL基础教程MICK版 ···第五章总结

    SQL基础教程MICK版 ···第五章总结 视图 子查询 标量子查询 标量子查询.没有用标量子查询.常量的比较总结 关联子查询 自己的困惑 视图 1.视图的概念 ​ 1)从SQL的角度来看视图就是一张 ...

最新文章

  1. gentoo emerge安装软件
  2. PHP 判断数据类型
  3. Spring MVC 接收请求参数所有方式总结!
  4. 智能合约重构社会契约(11)天德区块链智能合约系统
  5. 【数据结构与算法】之有序数组中的单一元素的算法
  6. 数据库一键自动生成 Java 实体类和数据库文档
  7. 路透:在美投资遇阻 中国科技资金转向以色列
  8. 在Ubuntu10.10下升级内核到2.6.36使用systemtap
  9. Avast注册以及更新
  10. OSX malware and exploit collection (~100 files) + links and resources for OSX malware analysis
  11. 大数据项目流程(必须会)
  12. Java项目:校园自行车租赁管理系统(java+JSP+JavaScript+Servlet+Mysql)
  13. sw与matlab连接_solidworks与matlab联合仿真simMechnics下载及安装
  14. linux 查看gnu,查看GNU/Linux信息
  15. 如何在PS(Adobe Photoshop)安装Portraiture3插件教程
  16. 利用电脑学象棋的一点想法
  17. java集成kettle 8.2 获取转换的执行日志与步骤度量
  18. java 订单模块实现
  19. 【链表】 链表的基本概念及分类
  20. 短视频营销的3个重点:KOL化+话题性+深度互动

热门文章

  1. bfs算法 c语言,基于BFS算法的贪吃蛇(一)----基本架构
  2. CentOS 7.9 使用Docker安装悟空72crm-11.0-Spring
  3. ESP8266智能家居的设计(开心!!各个小组之间终于合作了!!!)
  4. 凸优化问题定义及其凸函数、凸集、仿射函数相关概念和定义
  5. php 二维数组去重
  6. java手表_java钟表实例
  7. Istio Java SDK API - 连接访问
  8. 有趣的纯CSS实现动态晴阴雨雪
  9. 2003-2021年飞机航线数据
  10. VGG16のFine-tuning技术识别17种花