0


MYSQL常用命令

MYSQL常用命令

目录

1. 数据库 + 表

  1. 查看数据库:show databases;
  2. 创建数据库:create database db01;
  3. 删除数据库:drop database db01;
  4. 使用数据库: use db01;
  5. 查看表:show tables;
  6. 创建表:create table person(name varchar(100), age int(10));
  7. 删除表:drop table person;
  8. 使用表:use person;

2. Insert 添加数据语句

  1. 表插入全部字段(数据的顺序必须和表结构顺序一致):INSERT INTO person VALUES(5,‘AAA’,‘你好’);
  2. 表插入部分字段(数据的顺序必须和字段的顺序一致):INSERT INTO person(id,sex,name) VALUES(5,‘AAA’,‘你好’);

3. Update 修改数据语句

  1. 修改所有数据(很少用到,不安全):UPDATE person SET name=‘abc’, age=15;
  2. 修改部分语句:UPDATE person SET name=‘abc’, age=15 WHERE id=1;

4. Delete 删除数据语句

  1. 删除所有数据(很少用到,不安全,不可逆):DELETE FROM person;
  2. 删除部分数据:DELETE FROM person WHERE id=8;

5. Select 查询数据语句

SELECT
FROM
WHERE
GROUP BY
HAVING
ORDER BY

(1). SELECT 显示字段

  1. 显示表的所有字段:SELECT * FROM person;
  2. 显示表的固定字段:SELECT name, age, id FROM person;
  3. 显示表的固定字段,固定字段以别名输出:SELECT name stu_n, age stu_a, id stu_i FROM person;
  4. 以表达式显示表(会把age列全部加1,空值仍然还是空值):SELECT (age+1) stu_a, id FROM person;

(2). FROM 指定表

  1. 指定特定表:SELECT * FROM person;
  2. 指定表的特定字段方式显示:SELECT person.name, person.age, id FROM person;
  3. 指定表起别名(有时候表名太长):SELECT p.name FROM person p;

(3). WHERE 条件

A. 比较运算符(6个)

  1. 通过比较运算符查询:SELECT * FROM person WHERE age > 18; 通过比较运算符查询:SELECT * FROM person WHERE age >= 18; 通过比较运算符查询:SELECT * FROM person WHERE age < 18; 通过比较运算符查询:SELECT * FROM person WHERE age <= 18; 通过比较运算符查询:SELECT * FROM person WHERE age = 18; 通过比较运算符查询:SELECT * FROM person WHERE age != 18;

B. 逻辑运算符(3个)

  1. 通过 AND 逻辑与、表示并且的意思:SELECT * FROM person WHERE age > 18 AND age < 50 AND sex=‘男’;
  2. 通过 OR 逻辑或、表示或者的意思:SELECT * FROM person WHERE age = 18 OR age = 50;
  3. 通过 NOT 逻辑非、表示取反的意思(一般与其他运算符连用):SELECT * FROM person WHERE age IS NOT NULL; 或者 SELECT * FROM person WHERE name NOT LIKE ‘AAA’;

C. 其他运算符(4个)

  1. 通过 BETWEEN AND 查询数字区间、包含边界值:SELECT * FROM person WHERE age BETWEEN 18 AND 50;
  2. 通过 IN 查询数据区间:SELECT * FROM person WHERE name IN(‘王五’, ‘李四’, ‘张三’)
  3. 通过 LIKE 模糊查询、搜索功能、必须是字符类型varchar: 匹配符_: 匹配的是一个任意字符(1个、几乎不用):SELECT * FROM person WHERE name LIKE ‘王_’; 或者 SELECT * FROM person WHERE name LIKE ‘AAA’; 匹配符%: 匹配的是零个或者多个任意字符(任意个、用的多):SELECT * FROM person WHERE name LIKE ‘王%’; 或者 SELECT * FROM person WHERE name LIKE ‘%王%’;
  4. 通过 NULL 空、表示什么也没有、表示未知的意思(与 is 连用):SELECT * FROM person WHERE age IS NULL;

(4). GROUP BY 分组显示:相同的就是一组、显示组的信息。

通常必须和聚合统计类函数(MAX、SUM、MIN、AVG、COUNT等)一起使用:

  1. 通过 分组 显示:SELECT sex, MAX(age), MIN(age) FROM person GROUP BY sex;在这里插入图片描述

(5). HAVING 分组条件

注意:having 必须和 group by 一起使用。
where条件对是表中每一条记录进行过滤。分组之前运行
having条件对分组之后的每一条记录进行过滤。分组之后运行

  1. 通过 having 条件(having是对group by执行完后的数据再次筛选):SELECT sex, count() FROM person WHERE name != ‘abc’ GROUP BY sex HAVING count() > 2;

(6). ORDER BY 排序

  1. 通过 ORDER BY 排序(比如按照年龄排序、默认升序):SELECT * FROM person ORDER BY age;
  2. 通过 ORDER BY 的 ASC 升序排序:SELECT * FROM person ORDER BY age ASC;
  3. 通过 ORDER BY 的 DESC 降序排序:SELECT * FROM person ORDER BY age DESC;

6. Distinct 去重、唯一显示的关键字(过滤重复值)

  1. 通过 DISTINCT 显示:SELECT DISTINCT age FROM person;在这里插入图片描述

7. Limit n 表示返回前几条记录;Limit m, n 表示m起始位置(第几条开始截取,从0开始计数),n表示返回的记录数、

作用一:做top-n分析:

  1. 第一步-按照某个字段排序
  2. 第二步-使用limit关键字截取记录
    示例:SELECT * FROM person ORDER BY age DESC LIMIT 3;

作用二:分页功能
示例(从0位置开始取三条):SELECT * FROM person LIMIT 0,3;
示例(从2位置开始取两条):SELECT * FROM person LIMIT 2,2;

8. 数据库中表与表之间的关联关系分为3种:

在这里插入图片描述

  1. 多表连接-笛卡尔积(A表m条记录、B表n条记录,最终结果是m*n条记录、多表连接经常的错误):SELECT * FROM tableA, tableB;
  2. 多表连接-标准写法(必须指定公共列的条件,如果连接n个表,至少需要指定n-1个公共列,否则就会产生笛卡尔积):SELECT * FROM tableA, tableB WHERE tableA.ida = tableB.idb;
  3. 多表连接-别名的应用:SELECT t_A.name 公司名, t_B.name 员工名 FROM tableA t_A, tableB t_B WHERE t_A.ida = t_B.idb;
  4. 多表连接-左连接(以左表为主表、可以把左表中所有记录都查询出来、当希望把左表中不满足条件的也查询出来的时候):SELECT * FROM tableA LEFT JOIN tableB ON tableA.ida = tableB.idb;
  5. 多表连接-左外连接,与左连接一模一样:SELECT * FROM tableA LEFT OUTER JOIN tableB ON tableA.ida = tableB.idb;
  6. 多表连接-右连接(以右表为主表、可以把右表中所有记录都查询出来、当希望把右表中不满足条件的也查询出来的时候):SELECT * FROM tableA RIGHT JOIN tableB ON tableA.ida = tableB.idb;
  7. 多表连接-右外连接,与右连接一模一样:SELECT * FROM tableA RIGHT OUTER JOIN tableB ON tableA.ida = tableB.idb;
  8. 多表连接-内连接(只查询出满足公共列条件的记录、和2中等价):SELECT * FROM tableA INNER JOIN tableB ON tableA.ida = tableB.idb;

9. 子程序:就是SELECT嵌套语句。

  1. SELECT子查询(通过分步骤的思想来解决问题、每次只关注一张表):在这里插入图片描述
  2. WHERE子查询在这里插入图片描述
  3. FROM子查询在这里插入图片描述在这里插入图片描述 补充: 理论一:在这里插入图片描述 理论二:在这里插入图片描述 理论三:在这里插入图片描述

10. 并联:把两个表或者查询语句纵向连接

在这里插入图片描述
在这里插入图片描述

11. 视图

在这里插入图片描述
在这里插入图片描述

12. 事务

是一系列SQL语句的执行单元、这些SQL语句要么都执行、要么都不执行。
MYSQL数据库中的事务:默认情况下每一个sql语句独立执行、事务自动提交。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

13. CASE表达式

在这里插入图片描述

14. 数据库表设计的范式:

范式是表设计的一个通过标准
在这里插入图片描述
在这里插入图片描述

标签: mysql 数据库 sql

本文转载自: https://blog.csdn.net/weixin_38778769/article/details/126868751
版权归原作者 努力的小学弟 所有, 如有侵权,请联系我们删除。

“MYSQL常用命令”的评论:

还没有评论