AI智能
改变未来

MySQL 03 SQL语言的分类 、Mysql 语法、Navicat的使用、查询操作

SQL语言的分类 、Mysql 语法、Navicat的使用、查询操作

  • 一、SQL语言 的分类
  • 二、Mysql 语法规范
  • 三、Navicat的使用
  • 导入数据库
  • 四、查询操作
    • 1、基础查询
    • 2、条件查询
    • 3、模糊查询
    • 1.like
    • 2.between and
    • 3.in
    • 4.is null/is not null*/
    • 常见错误
  • 4、排序查询
    • 1、按单个字段进行排序
    • 2、按多个字段进行排序
    • 3、按表达式排序
    • 4、按别名排序
    • 5、按函数排序

    一、SQL语言 的分类

    DQL语言:Data Query Language 数据查询语言
    select
    DML语言:Data Manipulate Language 数据操纵语言
    insert、update、delete
    DDL语言:Data Define Language 数据定义语言
    create、alter、drop
    DCL语言:Data Control Language 数据控制语言
    commit、rollback

    二、Mysql 语法规范

    1、不区分大小写
    2、每句话用 ; 或 \\g 结尾
    3、MySQL的注释:
    单行注释: #(可以无空格)
    单行注释:– (必须有空格)
    多行注释:/* / 、 /* **/ (/ Linux斜线 、 \\ window斜线)
    4、sql语句可以写在一行或多行,各子句一般分行写
    5、关键字不能缩写也不能分行
    6、用缩进提高语句的可读性

    三、Navicat的使用

    导入数据库

    建立连接—>右键、新建数据库(数据库名保持一致)

    —>确定—>右键girls 选择 运行SQL文件

    —>选择SQL文件所在位置—>点击开始


    完成导入

    四、查询操作

    1、基础查询

    单行注释:#、–
    多行注释:/* */

    #基础查询
    select:查看、选择、显示
    语法:select 要显示的东西,类似于 System.out.println(要打印的东西);

    要显示的东西:①常量②表达式③函数④字段,但要显示字段必须添加from 表名
    语法: select 字段 from 表;

    #1.显示常量
    SELECT 100;
    SELECT ‘john’;

    #2.显示表达式
    SELECT 98*23;

    #3.显示函数(方法)
    SELECT LENGTH(‘john’);
    SELECT VERSION();

    #4.显示表中的字段
    SELECT last_name FROM employees;

    #5.显示表中的多个字段SELECT

    last_name

    ,

    phone_number

    ,

    first_name

    ,

    salary

    ,

    commission_pct

    ,

    manager_id

    FROM

    employees

    ;

    #6.显示表中所有字段
    SELECT * FROM employees;

    #7.起别名
    #方式一:
    SELECT last_name AS 姓,first_name AS 名 FROM employees;
    #方式二:
    SELECT last_name 姓,first_name 名 FROM employees;

    #示例:别名:out name
    SELECT last_name “out name” FROM employees;

    #8.如何去重
    #查询employees表中的所有部门编号
    – distinct
    SELECT DISTINCT department_id FROM employees;

    2、条件查询

    #条件查询
    概念:根据指定的条件过滤出数据
    语法:select 字段 from 表名where 条件;
    分类:
    1、按条件表达式查询
    条件运算符:> 、< 、>=、 <=、 =、 !=、 <>、 ,<=>安全等于,用于判断是否为null
    2、按逻辑表达式查询
    逻辑运算符:
    and、&& 两个条件都为true,结果为true,反之为false
    or、|| 两个条件只要有一个为true,结果为true,反之为false
    not、! 如果连接的条件本身为false,结果为true,反之为false
    优先级:not > and > or

    3、模糊查询

    #模糊查询

    1.like

    一般搭配着通配符使用,用作字符型的判断
    通配符:% 任意多个字符、_ 任意单个字符

    #案例1:查询姓名中包含字符 e的员工信息
    SELECT * FROM employees
    WHERE last_name LIKE ‘%e%’;

    #案例2:查询姓名中第二个字符为e,第四个字符为a的员工信息
    SELECT * FROM employees
    WHERE last_name LIKE ‘_e_a%’;

    #案例3:查询姓名中第三个字符为_的员工信息
    SELECT * FROM employees
    WHERE last_name LIKE ‘___%’;
    斜线 \\ —> window 斜线
    反斜线 / —> Linux 斜线

    #ESCAPE 自定义 转移符
    SELECT * FROM employees
    WHERE last_name LIKE ‘__KaTeX parse error: Expected group after \’_\’ at position 1: _̲%\’ ESCAPE \’’;

    // ESCAPE ’′;这句话是让\’; 这句话是 让′;这句话是让 拥有转义字符的形式和功能

    UPDATE employees SET last_name=’’ ‘’ WHERE employee_id=100;

    2.between and

    特点:在…之间
    ①等价于 使用 字段>=值1 and 字段<=值2
    ②两个临界值是包含的 [1,10]
    ③两个临界值不能颠倒顺序
    #案例1:显示出表employees部门编号在80-100之间 的姓名、职位
    SELECT last_name,job_id,department_id
    FROM employees
    WHERE department_id BETWEEN 80 AND 100; 对
    WHERE department_id BETWEEN 100 AND 80; 错

    #等价于
    SELECT last_name,job_id,department_id
    FROM employees
    WHERE department_id<=100 AND department_id>=80;

    3.in

    特点:判断某个字段的值是否在某个列表内
    in(值1,值2,…)
    等价于 or
    #案例1:显示出表employees的manager_id 是 100,101,110 的员工姓名、职位
    SELECT last_name,job_id,manager_id
    FROM employees
    WHERE manager_id IN(100,101,110);

    #等价于
    SELECT last_name,job_id,manager_id
    FROM employees
    WHERE manager_id=100 OR manager_id=101 OR manager_id = 110;

    #案例2:查询 job_id 为AD_VP或ST_MAN或SA_MAN
    SELECT last_name,job_id,manager_id
    FROM employees
    WHERE job_id IN(‘AD_VP’,‘S__MAN’); ×

    4.is null/is not null*/

    #案例1:查询没有奖金的员工
    SELECT * FROM employees
    WHERE commission_pct IS NULL;

    #案例2:查询有奖金的员工
    SELECT * FROM employees
    WHERE commission_pct IS NOT NULL;

    SELECT * FROM employees
    WHERE NOT(commission_pct IS NULL);

    SELECT * FROM employees WHERE last_name IS NULL;

    常见错误

    #1.表名不存在
    #TABLE ‘myemployees.employee’ doesn’t exist

    #2.列名错误
    #Unknown column ‘phone_numbe’ in ‘FIELD LIST’

    #3.语法错误
    #You have an error in your SQL syntax; check the manual
    #that corresponds to your MySQL server version
    #for the right syntax to use near \’FROM employees
    顺序:
    Select
    From
    Where
    Group by
    Having
    Order by
    limit

    4、排序查询

    #排序查询
    语法:select 字段|表达式|常量 from 表【where 条件】order by 排序的字段;

    1、升序 asc (默认可省略)降序 desc
    2.可以按表达式、函数、别名、多个字段进行排序
    3.一般来讲order by放到查询的语句的最后,在不使用分页的情况下

    1、按单个字段进行排序

    SELECT * FROM employees ORDER BY salary ;
    SELECT * FROM employees ORDER BY salary DESC;

    2、按多个字段进行排序

    SELECT * FROM employees
    ORDER BY salary DESC,employee_id ASC;

    3、按表达式排序

    #案例:按年薪降序
    SELECT ,salary12*(1+IFNULL(commission_pct,0)) 年薪
    FROM employees
    ORDER BY salary12(1+IFNULL(commission_pct,0)) DESC;

    4、按别名排序

    #案例:按年薪降序
    SELECT ,salary12*(1+IFNULL(commission_pct,0)) 年薪
    FROM employeesORDER BY 年薪 DESC;

    5、按函数排序

    #案例:按姓名中的字节长度大小降序
    SELECT last_name,LENGTH(last_name)
    FROM employees
    ORDER BY LENGTH(last_name) DESC;

    赞(0) 打赏
    未经允许不得转载:爱站程序员基地 » MySQL 03 SQL语言的分类 、Mysql 语法、Navicat的使用、查询操作