• MySQL的一些简单命令


    MySQL 的一些简单命令

    我们可以在 Navicat Premium 软件中,创建数据库和表,然后输入查询命令来查询数据。选择菜单栏「查询->新建查询->输入 sql 命令->运行」即可.

    我们还可以直接在终端输入命令行来操作。

    注意,在 Mac 终端执行 sql 命令时,命令的末尾必须加上;(英文格式的分号)。

    MySQL 命令行的一些简单命令如下。

    以 root 身份进入命令行

    mysql -u root -p
    
    • 1

    查看有哪些数据库

    show databases;
    
    • 1

    选择进入指定的数据库

    use xxx_database;
    
    # 举例
    use shocklock_database;
    
    • 1
    • 2
    • 3
    • 4

    在当前数据库中,查看有哪些表

    show tables;
    
    • 1

    在当前数据库中,查询指定表的全部数据

    SELECT * FROM xxx_table;
    
    # 举例
    SELECT * FROM shocklock_student_table
    
    • 1
    • 2
    • 3
    • 4

    删除指定的表

    drop table xxx;
    
    # 举例
    drop table shocklock_student_table;
    
    • 1
    • 2
    • 3
    • 4

    删除指定的数据库

    drop database shocklock_student_table;
    
    • 1

    创建一个数据库

    create database shocklock_database2;
    
    • 1

    where 条件查询

    使用 where 子句可以对表中的数据进行筛选,结果为 true 的行会出现在查询结果中。

    语法格式如下:

    SELECT * FROM 表名 where 条件;
    
    • 1

    上面的语法格式中,条件 具体要怎么写呢?这个可能有很多种情况。我们继续往下看。

    比较运算符

    • = 等于
    • > 大于
    • >= 大于等于
    • < 小于
    • <= 小于等于
    • !=:不等于
    • age > 20:查询 age 大于 30 的数据

    举例

    # 查询 age 大于 20 的数据
    SELECT * FROM shocklock_table WHERE age > 20;
    
    • 1
    • 2

    逻辑运算符

    • AND

    • OR

    • NOT

    举例

    # 查询 age 在20至30之间的数据
    SELECT * FROM shocklock_table WHERE age BETWEEN 20 AND 30;
    
    
    • 1
    • 2
    • 3

    范围查询

    • in 表示在一个非连续的范围内。

    • between ... and ... 表示在一个连续的范围内

    举例:

    # 查询 name 为 夏洛克 或者 许嵩的数据
    SELECT * FROM shocklock_table WHERE name IN ['夏洛克', '许嵩'];
    
    SELECT * FROM shocklock_table WHERE age BETWEEN 20 AND 30;
    
    • 1
    • 2
    • 3
    • 4

    模糊查询

    • like
      • % 表示任意多个任意字符
      • _ 表示一个任意字符

    % 符号举例:

    # 查询标题中包含“前端”这两个字的数据(“前端”这两个字的前后可能都有内容)
    select * from shocklock_table where `title` like "%前端%";
    
    # 查询标题以“前端”开头的数据
    select * from shocklock_table where `title` like "前端%";
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    _符号举例:

    # 查询标题,查询条件是:标题中至少有五个字符,而且,这五个字符中,前两个字符一定是“夏”开头的。
    SELECT * FROM shocklock_table WHERE `title` LIKE "夏___";
    
    • 1
    • 2

    NULL 的判断

    • is null 判断为空

    • is not null 判断为非空

    注意,is null空字符串"" 是有区别的。学过 js 基础之后,你应该知道:空字符串并非 null,只不过是里面的值为空而已;空字符串也是会占有内存空间的。

    举例:

    select * from shocklock_table where name is not NULL;
    
    
    • 1
    • 2

    join 联表查询

    联表查询命令

    • tableA inner join tableB:表 A 与表 B 匹配的行会出现在结果中。

    • tableA left join tableB:表 A 与表 B 匹配的行会出现在结果中。表 A 中独有的数据,对应表 B 中用 null 填充。

    • tableA right join tableB:表 A 与表 B 匹配的行会出现在结果中。表 B 中独有的数据,对应表 A 中用 null 填充。

    光是这样看,不好理解,我们来举个例子。

    举例

    现在有下面这两张表:作者表 author、图书表 book。

    表 1、作者表 author:

    idauthorIdauthorName
    111王小波
    212吴军
    388夏洛克

    表 2、图书表 book:

    idbookIdbookNameauthorId
    1201黄金时代11
    2202白银时代11
    3203青铜时代11
    4204浪潮之巅12
    5205硅谷之谜12
    6206数学之美12
    7777设计心理学99

    注意,表2中的每本图书都有对应的 authorId,这个 authorId 就是对应表1中的 authorId。通过 authorId 把两张表关联起来

    通过联表查询上面的两张表,我们来对比一下查询结果。

    情况 0:(inner join)

    SELECT * FROM author INNER JOIN book;
    
    • 1

    上面这种查询,没有意义,因为没有加任何查询条件。

    情况 1:(inner join)

    SELECT * FROM author INNER JOIN book ON author.authorId = book.authorId;
    
    • 1

    上面这行命令,跟下面这行命令等价:

    SELECT * FROM author, book WHERE author.authorId = book.authorId;
    
    • 1

    情况 2:(left join)

    SELECT * FROM author LEFT JOIN book ON author.authorId = book.authorId;
    
    • 1

    情况 3:(right join)

    SELECT * FROM author RIGHT JOIN book ON author.authorId = book.authorId;
    
    • 1

    关联查询

    涉及到层级关系时可以用自关联查询。

    子查询

    当一个查询结果是另一个查询的条件时,这个查询称之为子查询。

  • 相关阅读:
    Ansible Automation Platform - 保护 Playbook 中的敏感内容
    基于Matlab通过惯性传感器融合估计方向(附源码)
    简易通讯录Promax
    maven重新加载后Target bytecode version总是变回1.8
    python *和**的用法
    【go语言基础】go类型断言 type switch + case,t := x.(type)
    简单讲解Android Fragment(四)
    2022十三届蓝桥杯国赛题解
    C语言程序设计——题目:输出特殊图案,请在c环境中运行,看一看,Very Beautiful!
    Spring framework Day10:JSR330注入注解
  • 原文地址:https://blog.csdn.net/qq_44278908/article/details/126708295