个人博客网:https://wushaopei.github.io/    (你想要这里多有)

一 、数据库语言定义及命令行查看数据库操作

-- SQL 语言可以分为三类
-- DML: 数据操纵语言。(对标的 - 增 删 改 查)
-- DDL:数据定义语言。(表的创建,删除,修改)
-- DCL: 数据控制语言。(commit,rollback)

命令行查看数据库 (也可以在客户端图形化界面操作)

-- 查看数据库
SHOW DATABASES;

-- 选择数据库
USE test; -- test:数据库的名字

-- 查看表
SHOW TABLES;

二、查看表结构

三 、 查询

  • 查询

SELECT first_name  -- select 表的列名(可以有多个,多个之间用","分开)
FROM employees;    -- from 表名

  • 查询所有人的薪水

SELECT first_name,salary
FROM employees

  • 不区分大小写。(''中的内容是需要区分大小写的)

SELECT first_name,SALARY
FROM employees7t

  • 查询表中所有的列

SELECT *   -- 代表所有的列
FROM employees;

  • 列的别名
  • 第一种方式   列名 + 空格 + 别名
  • 注意如果别名由多个单词组成,那么应该使用""引起来。
  • ""是sql的规定,但是在mysql中''也可以。orcal中只能使用""

SELECT first_name "first  name", salary ss
FROM employees

  • 第二种方式  列名  as 别名

SELECT first_name AS fn
FROM employees

  • 查询表结构

DESC employees;

注意:

【1 】语法:

SQL 语言大小写不敏感。
SQL 可以写在一行或者多行
关键字不能被缩写也不能分行
各子句一般要分行写。
使用缩进提高语句的可读性。

【2】别名

  • 列的别名:

重命名一个列。

便于计算。

紧跟列名,也可以在列名和别名之间加入关键字‘AS’,别名使用双引号,以便在别名中包含空格或特殊的字符并区分大小写。

【3】关于字符串

日期和字符只能在单引号中出现
每当返回一行时,字符串被输出一次。

四、运算

【1】比较运算

【2】其他运算

五、子查询

过滤和排序数据

【1】过滤

-- where + 过滤条件
-- 需求:查询90 好部门的所有员工

SELECT   *
FROM employees
WHERE department_id=90 -- 注意:不是 ==

-- 需求:查询薪水大于5000的所有员工

SELECT first_name,salary
FROM employees

-- 注意: where 只能放在from 的后面

  • 使用WHERE 子句,将不满足条件的行过滤掉。

WHERE salary>5000

-- 需求:查询薪水不等于5000的员工

SELECT salary
FROM employees
WHERE salary <> 5000

SELECT salary
FROM employees
WHERE salary!=5000

【2】between and  (使用 BETWEEN 运算来显示在一个区间内的值)
-- 需求: 查询薪水在7000-8000的所有员工

SELECT *
FROM employees
WHERE salary BETWEEN 7000 AND 8000;

【3】 and (相当于java中的 与(&&) )or (相当于java中的或(||))

SELECT *
FROM employees
-- and 相当于java中的 与(&&)
WHERE salary <= 8000 AND salary>=7000

【4】 in  (使用 IN运算显示列表中的值。)
-- 需求: 查询部门为70 或者 80 或者 90的员工

SELECT *
FROM employees
WHERE department_id = 70 OR department_id=80 OR department_id=90

SELECT *
FROM employees
WHERE department_id IN(70,80,90)

【5】like 用于模糊查询

使用 LIKE 运算选择类似的值
选择条件可以包含字符或数字:
% 代表零个或多个字符(任意个字符)。
_ 代表一个字符。

-- 需求: 查找员工姓名中包含a 字母的员工

SELECT first_name
FROM employees
WHERE first_name LIKE '%a%';

SELECT first_name
FROM employees
WHERE first_name LIKE 'a%';

-- 需求: 查找姓名中第二个字母为a的员工

SELECT first_name
FROM employees
WHERE first_name LIKE '_a%'

【6】ESCAPE  转义字符

回避特殊符号的:使用转义符。例如:将[%]转为[$%]、[_]转为[$_],然后再加上[ESCAPE ‘$’] 即可。

【7】NULL   使用 IS (NOT) NULL 判断空值。

-- 需求:查找奖金率为Null 的员工

SELECT commission_pct ,first_name
FROM employees
WHERE commission_pct IS NULL

-- 需求: 查找奖金率不为null的员工

SELECT commission_pct,first_name
FROM employees
WHERE commission_pct IS NOT NULL

【8】 排序: order by

  • 使用 ORDER BY 子句排序

ASC(ascend): 升序
DESC(descend): 降序
ORDER BY 子句在SELECT语句的结尾。

-- 需求: 按照工资进行排序

SELECT salary
FROM employees
ORDER BY salary ASC  -- 升序

SELECT salary
FROM employees
ORDER BY salary DESC  -- 降序

-- 二级排序,在manager_id 相同的情况下,salary 进行降序

SELECT manager_id ,salary
FROM employees
ORDER BY manager_id,salary DESC

-- 需求: 将员工部门为90好部门的员工的薪水按照降序排序

SELECT department_id , salary
FROM employees
WHERE department_id = 90
ORDER BY salary DESC

-- 按照别名进行排序

SELECT salary s
FROM employees
ORDER BY s DESC

数据库之 MySQL --- 数据处理 之 子查询 (二)的更多相关文章

  1. MySQL里面的子查询

    一.子查询定义 定义: 子查询允许把一个查询嵌套在另一个查询当中. 子查询,又叫内部查询,相对于内部查询,包含内部查询的就称为外部查询. 子查询可以包含普通select可以包括的任何子句,比如:dis ...

  2. MySQL中IN子查询会导致无法使用索引

    今天看到一个博客园的一篇关于MySQL的IN子查询优化的案例,一开始感觉有点半信半疑(如果是换做在SQL Server中,这种情况是绝对不可能的,后面会做一个简单的测试.)随后动手按照他说的做了一个表 ...

  3. MySQL中in子查询会导致无法使用索引问题(转)

    MySQL的测试环境 测试表如下 create table test_table2 ( id int auto_increment primary key, pay_id int, pay_time ...

  4. 数据库之 MySQL --- 数据处理 之 多行子查询(五)

    ​ [1]需求: 谁的工资比Abel 高?方式一: 第一步线查出Abel共子 第二部进行过滤 SELECT salary FROM employees WHERE last_name = 'Abel' ...

  5. 百万年薪python之路 -- MySQL数据库之 MySQL行(记录)的操作(二) -- 多表查询

    MySQL行(记录)的操作(二) -- 多表查询 数据的准备 #建表 create table department( id int, name varchar(20) ); create table ...

  6. 数据库之 MySQL --- 数据处理 之多表查询 (三)

    个人博客网:https://wushaopei.github.io/    (你想要这里多有) 一.多表查询 [1]什么是多表查询? 即,从多个表中获取数据. 注意: 在多表查询是,如果列明在两个表中 ...

  7. mysql 子句、子查询、连接查询

    一.mysql查询的五种子句 where子句(条件查询):按照“条件表达式”指定的条件进行查询. group by子句(分组):按照“属性名”指定的字段进行分组.group by子句通常和count( ...

  8. MySql学习(三) —— 子查询(where、from、exists) 及 连接查询(left join、right join、inner join、union join)

    注:该MySql系列博客仅为个人学习笔记. 同样的,使用goods表来练习子查询,表结构如下: 所有数据(cat_id与category.cat_id关联): 类别表: mingoods(连接查询时作 ...

  9. 【MySQL】02_子查询与多表查询

    子查询 指一个查询语句嵌套在另一个查询语句内部的查询,这个特性从MySQL 4.1开始引入. SQL 中子查询的使用大大增强了 SELECT 查询的能力,因为很多时候查询需要从结果集中获取数据,或者 ...

随机推荐

  1. 深入理解Mybatis插件

    Mybatis插件实现原理 本文如有任何纰漏.错误,请不吝指出,谢谢! 首先,我并没有使用过 Mybatis的插件,但是这个和我写这篇文章并不冲突,估计能真正使用到插件的人也比较少,写这篇文章的目的主 ...

  2. 闲来无事做个C#小项目——1

    2020-05-10 12:25:47 项目背景就是最近和一些朋友在玩一个游戏,游戏中有一个囤货的东西,就是买进卖出的,然后为了方便计算,所以就先写一个简单的计算器用来算账, 这是界面图(最初形态,没 ...

  3. EEGLAB-批量处理.dat数据及保存脑电地形图

    步骤 1.先在图形界面操作一遍准备做的操作. 2.在命令行窗口输入 EEG.history 获取刚刚操作都用到哪些语句. 3.稍加修改即可以写一个批量化函数来读取生成数据. 4.在 EEGLAB\ee ...

  4. hex文件格式总结

    hex文件格式总结 文章目录 hex文件格式总结 什么是hex文件? 文件格式 指令类型(Record type) 校验和 :04 02B0 00 92020008 AE :04 0000 05 08 ...

  5. js对页面中的内容进行拼音搜索,只对后台已经传过来的页面数据进行索引

    实现输入拼音(可以使用拼音首字母来查),来查询出已经存在于页面的数据 注意:这种写法只能适用于页面中已经存在的数据进行检索,大体意思是将本页内的数据拼接成一个字符串,然后通过该字符串去检索匹配的字符串 ...

  6. java ->Date、DateFormat、Calendar类

    Date类概述 类 Date 表示特定的瞬间,精确到毫秒. 毫秒概念:1000毫秒=1秒 毫秒的0点: System.currentTimeMillis()  相当于Date d = new Date ...

  7. Loadrunner中遇到Failed to connect to server[10061] connection refused错误

    (1)run-time setting/browser emulation中,将simulate a new user on each iteration  选项去掉(默认是选中的). 重新运行一切正 ...

  8. docer run 、docker attach 与 docker exec的区别

    进入容器的方式有以下三种: 使用ssh登陆进容器 使用nsenter.nsinit等第三方工具 使用Docker本身提供的工具 最佳方案为使用Docker本身提供的工具 docker run:创建和启 ...

  9. 5.1 Go函数定义

    1 Go函数定义 Go函数是指:一段具有独立功能的代码,然后可以在程序中其他地方多次调用. Go分为自定义函数,系统函数. 函数可以将一个大的工作拆解成小的任务. 函数对用户隐藏了细节. Golang ...

  10. 流复制-pg_start_backup(带自定义表空间)

    一.准备slave库 archive_mode = on ---开启归档模式 archive_command = 'test ! -f /mysqldata/pg/archive_active/%f ...