个人博客网: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. RSA host key has changed

  2. window下用notepad++编辑了脚本文件然后放在linux报错显示无法运行

    首先vi :set ff 查看文件类型 接着 下载dos2unix  root用户下yum -y install dos2unix 然后 dos2unix 文件.sh 转换格式  接着在正常启动即可

  3. openshift 4.3 Istio的搭建(istio 系列一)

    openshift 4.3 Istio的搭建 本文档覆盖了官方文档的Setup的所有章节 目录 openshift 4.3 Istio的搭建 安装Istio openshift安装Istio 更新is ...

  4. Django 设置admin后台表和App(应用)为中文名

    设置表名为中文 1.设置Models.py文件 class Post(models.Model): name = models.CharField() --省略其他字段信息 class Meta: v ...

  5. 深度剖析西门子PLC的开放式TCP通信

    对于自控或电气工程师来说,西门子PLC是每个人都非常熟悉的一款PLC品牌:而对于上位机开发工程师来说,Socket通信或TCP/IP协议也是必须要掌握的一种通信方式.刚好手头有一款西门子的200Sma ...

  6. Ubuntu 配置/etc/fstab参数实现开机自动挂载硬盘

    文章目录 前言 fstab 参数含义 实现步骤 1 查看硬盘信息,并找到需要进行挂载的硬盘 2 sudo mkfs.ext4 /dev/sdc 3 sudo mkdir /home/diska 4 查 ...

  7. [hdu1402]大数乘法(FFT模板)

    题意:大数乘法 思路:FFT模板 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 ...

  8. 初识spring boot maven管理--SpringMVC

    springboot完美的支持了springmvc,自家东西当然是支持最好的啦! @EnableAutoConfiguration自动注入了一下信息 1.包含了ContentNegotiatingVi ...

  9. 设计模式系列之适配器模式(Adapter Pattern)——不兼容结构的协调

    模式概述 模式定义 模式结构图 模式伪代码 类适配器,双向适配器,缺省适配器 类适配器 双向适配器 缺省适配器 模式应用 模式在JDK中的应用 模式在开源项目中的应用 模式总结 主要优点 主要缺点 适 ...

  10. JVM系列(2)-GC

    1.什么是GC? 大白话说就是垃圾回收机制,内存空间是有限的,你创建的每个对象和变量都会占据内存,gc做的就是对象清除将内存释放出来,这就是GC要做的事. 2.需要GC的区域 说起垃圾回收的场所,了解 ...