美文网首页MySQL
MySQL常用语句

MySQL常用语句

作者: h2coder | 来源:发表于2024-04-23 23:26 被阅读0次

语句分类

  • DDL(Data Definition Language) 数据定义语言,用来定义数据库对象:数据库,表,列等
  • DML(Data Manipulation Language) 数据操作语言,用来对数据库中表的数据进行增删改
  • DQL(Data Query Language) 数据查询语言,用来查询数据库中表的记录(数据)
  • DCL(Data Control Language) 数据控制语言,用来定义数据库的访问权限和安全级别,及创建用户

DDL操作数据库

查询所有数据库

SHOW DATABASES;

创建数据库

CREATE DATABASE 数据库名称;

创建数据库(判断,如果不存在则创建)

CREATE DATABASE IF NOT EXISTS 数据库名称;

删除数据库

DROP DATABASE 数据库名称;

删除数据库(判断,如果存在则删除)

DROP DATABASE IF EXISTS 数据库名称;

使用数据库

USE 数据库名称;

DDL操作表

创建表

  • 语法
CREATE TABLE 表名 (字段名 数据类型, 字段名 数据类型);
  • 示例
CREATE TABLE 表名 (
    字段名 数据类型,
    字段名 数据类型,
    ...
    字段名 数据类型
);

查看所有表

SHOW TABLES;

查询表结构

DESC 表名;

删除表

DROP TABLE 表名;

修改表名

ALTER TABLE 表名 RENAME TO 新表名;

单独添加一个字段

ALTER TABLE 表名 ADD 字段名 数据类型;

修改某字段的数据类型

ALTER TABLE 表名 MODIFY 字段名 新数据类型;

修改字段名和数据类型

ALTER TABLE 表名 CHANGE 字段名 新字段名 新数据类型;

删除某一字段

ALTER TABLE 表名 DROP 字段名;

DML表数据的增删查改

给表新增数据

给指定列添加数据

  • 语法
INSERT INTO 表名(字段名1, 字段名2, …) VALUES (值1, 值2, …);
  • 示例
INSERT INTO goods (NAME, price, sales_volume, produced_date) VALUES ('华为P40', 5999, 1000, '2020-08-20');

给全部列添加数据

  • 语法
INSERT INTO 表名 VALUES (值1, 值2, …);
  • 示例
INSERT INTO goods VALUES ('小米11', 4999, 5000, '2020-12-28');

给表批量添加数据

  • 注意
    • 字段名和值的数量要对应
    • 值的类型和字段的类型要对应
    • 除了数值类型,其他数据类型的数据都需要加引号(单引双引都行,推荐单引)
INSERT INTO 表名 VALUES (值1, 值2, …), (值1, 值2, …), (值1, 值2, …);

修改表中数据

  • 注意:修改语句中必须加条件,如果不加条件,则会将所有数据都修改
UPDATE 表名 SET 字段名=新的值 [WHERE 条件];

删除表中的数据

  • 注意:删除语句中必须加条件,如果不加条件,则会将所有数据都删除
DELETE FROM 表名 [WHERE 条件];

DQL查询表中数据

查询指定字段的数据

SELECT 字段名1, 字段名2 FROM 表名;

查询所有字段的数据

SELECT * FROM 表名;

去除重复行

SELECT DISTINCT 字段名1 FROM 表名;

计算列的值(四则运算)

SELECT 字段名1 (+ - * /) 字段名2 FROM 表名;

起别名查询

SELECT 字段名1 AS 别名1, 字段名2 AS 别名2 FROM 表名;

条件查询

SELECT 字段名 FROM 表名 WHERE 条件;
  • 比较运算符
符号 功能
> 大于
< 小于
>= 大于等于
<= 小于等于
= 等于
<>或!= 不等于
  • 逻辑运算符
AND或&& 并且
OR或|| 或者
NOT或! 非、不是
  • 范围
BETWEEN...AND... 在某个范围之内(都包含)
IN(...) 多选一
  • NULL的处理
IS NULL 是NULL
IS NOT NULL 不是NULL

模糊查询

  • MySQL的通配符
    • %: 表示任意多个字符
    • _: 表示一个字符
SELECT * FROM 表名 WHERE 字段名 LIKE '通配符字符串';

查询数据排序

  • 排序方式
    • ASC: 升序
    • DESC: 降序
SELECT 字段名 FROM 表名 ORDER BY 列名 排序方式;

聚合函数

  • 注意:

    • 记录为NULL的不统计
    • 如果不是数值类型,那么计算结果为0
  • COUNT: 统计指定列记录数

  • SUM: 计算指定列的数值和

  • MAX: 计算指定列的最大值

  • MIN: 计算指定列的最小值

  • AVG: 计算指定列的平均值

SELECT 聚合函数(字段名) FROM 表名;

分组查询

  • 注意:分组之后,查询的字段为分组字段和聚合函数,查询其他字段无任何意义
SELECT * FROM 表名 GROUP BY 字段名;

-- 带分组条件
SELECT * FROM 表名 GROUP HAVING 分组过滤条件;
  • having与where的区别
    • where是在分组前对数据进行过滤,having是在分组后对数据进行过滤
    • where后面不可以使用聚合函数,having后面可以使用聚合函数

分页查询

  • 注意事项

  • 分页查询 limit 是MySQL数据库的方言,Oracle 分页查询使用 rownumber,SQL Server分页查询使用 top

  • offset是指偏移量,可以认为是跳过的记录数量,不写则默认为0

  • length是指需要显示的总记录数

SELECT * FROM 表名 LIMIT offset, length;

表约束

  • 约束:对表中的数据进行限定,保证数据的正确性、有效性、完整性
约束 说明
PRIMARY KEY 主键约束
UNIQUE 唯一约束
NOT NULL 非空约束
DEFAULT 默认值约束
FOREIGN KEY 外键约束
CHECK 检查约束
  • 注意
    • MySQL不支持检查约束
    • 约束通常是在创建表结构的时候创建

主键约束

  • 主键的作用:用来区分表中的数据

  • 主键的特点

    • 主键必须是唯一不重复的值
    • 主键不能包含NULL值
-- 建表
CREATE TABLE 表名 (
    字段名 字段类型 PRIMARY KEY,
    字段名 字段类型
);

-- 建表并设置外键约束
CREATE TABLE 表名(
   列名 数据类型,
   [CONSTRAINT] [约束名称] PRIMARY KEY(列名)
); 

删除主键约束

ALTER TABLE 表名 DROP PRIMARY KEY;

建表后,单独添加主键约束

ALTER TABLE 表名 ADD PRIMARY KEY (字段名);

设置主键自增长

  • 主键,如果让我们自己添加很有可能重复,我们通常希望在每次插入新记录时,数据库自动生成主键字段的值
字段名 字段类型 PRIMARY KEY AUTO_INCREMENT
  • 注意:AUTO_INCREMENT 的字段类型必须是数值类型

唯一约束

  • 唯一约束的作用:让字段的值唯一,不能重复
CREATE TABLE 表名 (
    字段名 字段类型 UNIQUE,
    字段名 字段类型
);

非空约束

  • 非空约束的作用:让字段的值不能为NULL
CREATE TABLE 表名 (
    字段名 字段类型 NOT NULL,
    字段名 字段类型
);

默认值约束

  • 默认值约束的作用:如果这个字段不设置值,就使用默认值
CREATE TABLE 表名 (
    字段名 字段类型 DEFAULT 值,
    字段名 字段类型
);

外键约束

  • 外键:一张表中的某个字段引用其他表的主键,这个字段称为外键
  • 主表:将数据给别人用的表
  • 副表/从表:使用别人数据的表

新建表时,增加外键约束

CREATE TABLE 表名 (
    字段名 字段类型,
    字段名 字段类型,
    -- 添加外键约束
    [CONSTRAINT 外键约束名] FOREIGN KEY(外键字段名) REFERENCES 主表(主键字段名)
);
  • 关键字解释
    • CONSTRAINT: 表示约束外键约束名: 给外键约束取个名字,将来通过约束名可以删除这个约束
    • FOREIGN KEY(外键字段名): 指定某个字段作为外键
    • REFERENCES 主表(主键字段名) : 引用主表的主键的值

删除外键约束

ALTER TABLE 表名 DROP FOREIGN KEY 外键约束名;

已有表增加外键约束

ALTER TABLE 从表 ADD [CONSTRAINT 外键约束名称] FOREIGN KEY (外键字段名) REFERENCES 主表(主键字段名);

相关文章

  • BigData-MySQL总结大全(一)苏暖人

    BigData之MySQL总结大全 MYSQL常用的基本语句 MYSQL常用的基本语句 例:SELECT TOP ...

  • MySQL常用语句

    MySQL常用语句 tags: MySQL 常用语句 语法 随便写的标签 建表 insert 语句 msyql 把...

  • MySQL常用语句

    本篇主要是归纳一下最常用、入门的 MySQL 语句。以安装完 MySQL 登录为起点,简单总结一下常用的几条语句。...

  • Mysql 语句

    Mysql 语句 Mysql 语句以考察各种常用连接为重点 几种常见连接 内连接(INNER JOIN):两个表都...

  • MYSQL | 常用mysql语句

    1、创建数据库 2.删除数据库 3.选择数据库 4.创建表 注意: 5.删除数据表: 6.向数据表插入数据 插入所...

  • mysql(二)——用户管理、数据备份、常用sql语句

    13.4 mysql用户管理13.5 常用sql语句13.6 mysql数据库备份恢复 13.4 mysql用户管...

  • MySQL常用操作(二)

    摘要:13.4 mysql用户管理 13.5 常用sql语句 13.6 mysql数据库备份恢...

  • MySQL的SQL语句执行过程

    理解MySQL当中的SQL语句 MySQL的sql语句和我们常用的编程语句一样,都是我们输入文本,编译器编译或者解...

  • MySQL的函数认识

    理解MySQL当中的SQL语句 MySQL的sql语句和我们常用的编程语句一样,都是我们输入文本,编译器编译或者解...

  • 常用MYSQL语句

    MySQL的SQL语句写法,除了那些基本的之外,还有一些也算比较常用的,这里记录下来,以便以后查找。 好记性不如烂...

网友评论

    本文标题:MySQL常用语句

    本文链接:https://www.haomeiwen.com/subject/sgiwxjtx.html