• 数据库之 MySQL --- 数据处理 之 子查询 (二)


    个人博客网: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

  • 相关阅读:
    Java使用POI插件将数据以excel形式备份
    bzoj1611[Usaco2008 Feb]Meteor Shower流星雨*
    bzoj1603[Usaco2008 Oct]打谷机*
    bzoj1599[Usaco2008 Oct]笨重的石子*
    bzoj1230[Usaco2008 Nov]lites 开关灯*
    bzoj4002[JLOI2015]有意义的字符串
    bzoj1613[Usaco2007 Jan]Running贝茜的晨练计划*
    bzoj1602[Usaco2008 Oct]牧场行走*
    bzoj1715[Usaco2006 Dec]Wormholes 虫洞*
    bzoj2442[Usaco2011 Open]修剪草坪*
  • 原文地址:https://www.cnblogs.com/wushaopei/p/11732793.html
Copyright © 2020-2023  润新知