MySQL语句 常用大全

目录

一. SQL语句的分类

二. DDL(Data Definition Language)

1. 操作数据库

        1.1 查询数据库

        1.2 创建数据库

        1.3 删除数据库

        1.4 使用数据库

        1.5 查看当前使用的数据库

2. 操作数据表

        2.1 查询当前数据库下所有表名称

        2.2 查询表结构

        2.3 创建数据表的基本语法

        2.4 删除表

        2.5 删除表时判断表是否存在

        2.6 修改表名

        2.7 添加一列

        2.8 修改数据类型

        2.9 修改列名和数据类型

        2.10 删除列

三. DML(Data Manipulation Language) 重要

1. 语法说明

2. 添加数据

        2.1 给指定列添加数据

        2.2 给全部列添加数据

        2.3 批量添加数据

3. 修改及删除数据

        3.1 修改表数据

        3.2 删除表数据

四. DQL(Data Query Language) 非常重要

1. 语法说明

        1.1 查询的完整语法

        1.2 条件列表

        1.3  模糊查询

        1.4 排序查询

        1.5 聚合函数分类

         1.6 where 和 having 的区别

        1.7 分页查询起始索引计算公式

2. 常用语法

        2.1 查询多个字段

        2.2 去除重复记录

        2.3 起别名

        2.4 条件查询

        2.5 模糊查询案例

        2.6 排序查询

        2.7 聚合函数

        2.8 分组查询

        2.9 分页查询

五. 多表查询

1. 约束的分类

2. 约束的语法格式

        2.1 非空约束

        2.2 唯一约束

        2.3 主键约束

        2.4 默认约束

        2.5 外键约束

3. 多表查询的分类

4. 多表的语法格式

        4.1 内连接查询的语法格式

        4.2 外连接查询的语法格式

        4.3 子查询的语法格式

5. 事务

        5.1 事务的四大特征

        5.2 事务的基本语法


一. SQL语句的分类

DDL 数据定义语言:用来定义数据库对象:数据库,表,列等

DML 数据操作语言(重要):用来对数据库中,表的数据进行增删改

DQL 数据查询语言(非常重要):用来查询数据库中,表的记录(数据)

DCL 数据控制语言:用来定义数据库访问权限、安全级别、创建用户

二. DDL(Data Definition Language)

1. 操作数据库

        1.1 查询数据库

show databases;

show create database 数据库名称;

        1.2 创建数据库

create database 数据库名称;

create database if not exists 数据库名称;

        1.3 删除数据库

drop database 数据库名称;

        1.4 使用数据库

use 数据库名称;

        1.5 查看当前使用的数据库

select database();

2. 操作数据表

        2.1 查询当前数据库下所有表名称

SHOW TABLES;

        2.2 查询表结构

DESC 表名称;
show columns from 表名;

        2.3 创建数据表的基本语法

CREATE TABLE 表名 (
	字段名1  数据类型1,
	字段名2  数据类型2,
	…
	字段名n  数据类型n
);

        2.4 删除表

DROP TABLE 表名;

        2.5 删除表时判断表是否存在

DROP TABLE IF EXISTS 表名;

        2.6 修改表名

ALTER TABLE 表名 RENAME [AS|TO] 新的表名;

-- 将表名student修改为stu
alter table student rename to stu;

        2.7 添加一列

ALTER TABLE 表名 ADD [column] 列名 数据类型 [first|after 列名];

-- 给stu表添加一列address,该字段类型是varchar(50)
alter table stu add address varchar(50);

        2.8 修改数据类型

ALTER TABLE 表名 MODIFY 列名 新数据类型 [first|after 列名];

-- 将stu表中的address字段的类型改为 char(50)
alter table stu modify address char(50);

        2.9 修改列名和数据类型

ALTER TABLE 表名 CHANGE 列名 新列名 新数据类型 [first|after 列名];

-- 将stu表中的address字段名改为 addr,类型改为varchar(50)
alter table stu change address addr varchar(50);

        2.10 删除列

ALTER TABLE 表名 DROP 列名;

-- 将stu表中的addr字段 删除
alter table stu drop addr;

三. DML(Data Manipulation Language) 重要

1. 语法说明

        DML主要是对数据进行增(insert)删(delete)改(update)操作。

2. 添加数据

        2.1 给指定列添加数据

INSERT INTO 表名(列名1,列名2,…) VALUES(值1,值2,…);

        2.2 给全部列添加数据

INSERT INTO 表名 VALUES(值1,值2,…);

        2.3 批量添加数据

INSERT INTO 表名(列名1,列名2,…) VALUES(值1,值2,…),(值1,值2,…),(值1,值2,…)…;

INSERT INTO 表名 VALUES(值1,值2,…),(值1,值2,…),(值1,值2,…)…;

3. 修改及删除数据

        3.1 修改表数据

UPDATE 表名 SET 列名1=值1,列名2=值2,… [WHERE 条件] ;

-- 注意:
-- 1. 修改语句中如果不加条件,则将所有数据都修改!
-- 2. 像上面的语句中的中括号,表示在写sql语句中可以省略这部分

        3.2 删除表数据

DELETE FROM 表名 [WHERE 条件] ;
-- 注意:如果不加条件, 所有数据都被删除了 很严重

四. DQL(Data Query Language) 非常重要

1. 语法说明

        1.1 查询的完整语法

SELECT        字段列表
FROM        表名列表 
WHERE        条件列表
GROUP BY        分组字段
HAVING        分组后条件
ORDER BY        排序字段
LIMIT        分页限定

        1.2 条件列表

注意事项:
        语句中 && 和 and 都表示并且的意思。建议使用 and 。

        可以使用 between ... and 来实现范围查询。

        null值的比较不能使用 = 或者 != 。需要使用 is 或者 is not

        1.3  模糊查询

模糊查询的基本语法:

        模糊查询使用like关键字,可以使用通配符进行占位:

1)_ : 代表单个任意字符

2)% : 代表任意个数字符

        1.4 排序查询

1)ASC : 升序排列 (默认值)

2)DESC : 降序排列

        1.5 聚合函数分类

         1.6 where 和 having 的区别

执行时机不一样:

        where 是分组之前进行限定,不满足where条件,则不参与分组,而having是分组之后对结果进行过滤。

可判断的条件不一样:

        where 不能对聚合函数进行判断,having 可以。

        1.7 分页查询起始索引计算公式

起始索引 = (当前页码 - 1) * 每页显示的条数

2. 常用语法

        2.1 查询多个字段

SELECT 字段列表 FROM 表名;
SELECT * FROM 表名; -- 查询所有数据

        2.2 去除重复记录

SELECT DISTINCT 字段列表 FROM 表名;

        2.3 起别名

AS: AS 也可以省略

        2.4 条件查询

SELECT 字段列表 FROM 表名 WHERE 条件列表;

        2.5 模糊查询案例

- 查询姓'马'的信息
  select * from tb_user where name  like  "马%"

- 查询第二个字是'小'的信息  
  select * from tb_user where name  like  "_小%"

- 查询名字中包含 '云' 的信息
  select * from tb_user where name  like  "%云%"

        2.6 排序查询

SELECT 字段列表 FROM 表名 ORDER BY 排序字段名1 [排序方式1],排序字段名2 [排序方式2] …;

-- 按照字段升序排列 
select * from 表 order by 字段 ;

-- 按照字段降序排列
select * from 表 order by 字段 desc ;

-- 按照字段降序排列,如果字段值相同,再按照其他字段升序排列
select * from 表 order by 字段1 desc , 字段2 asc ;

        2.7 聚合函数

SELECT 聚合函数名(列名) FROM 表;
-- 注意:null 值不参与所有聚合函数运算

        2.8 分组查询

SELECT 字段列表 FROM 表名 [WHERE 分组前条件限定] GROUP BY 分组字段名 [HAVING 分组后条件过滤];
-- 注意:**分组之后,查询的字段为聚合函数和分组字段,查询其他字段无任何意义

        2.9 分页查询

SELECT 字段列表 FROM 表名 LIMIT  起始索引 , 查询条目数;
-- 注意: 上述语句中的起始索引是从0开始

五. 多表查询

1. 约束的分类

        约束是作用于表中列上的规则,限制加入表的数据,保证了数据库中数据的正确性、有效性和完整性。

非空约束: 关键字是 NOT NULL

唯一约束:关键字是 UNIQUE

主键约束: 关键字是 PRIMARY KEY

检查约束: 关键字是 CHECK

默认约束: 关键字是 DEFAULT

外键约束: 关键字是 FOREIGN KEY

2. 约束的语法格式

        2.1 非空约束

-- 创建表时添加非空约束
CREATE TABLE 表名(
   列名 数据类型 NOT NULL,
   …
); 

        2.2 唯一约束

-- 创建表时添加唯一约束
CREATE TABLE 表名(
   列名 数据类型 UNIQUE [AUTO_INCREMENT],
   -- AUTO_INCREMENT: 当不指定值时自动增长
   …
); 

CREATE TABLE 表名(
   列名 数据类型,
   …
   [CONSTRAINT] [约束名称] UNIQUE(列名)
); 

        2.3 主键约束

-- 创建表时添加主键约束
CREATE TABLE 表名(
   列名 数据类型 PRIMARY KEY [AUTO_INCREMENT],
   …
); 

CREATE TABLE 表名(
   列名 数据类型,
   [CONSTRAINT] [约束名称] PRIMARY KEY(列名)
); 

        2.4 默认约束

-- 创建表时添加默认约束
CREATE TABLE 表名(
   列名 数据类型 DEFAULT 默认值,
   …
); 

        2.5 外键约束

-- 建完表后添加外键约束
ALTER TABLE 表名 ADD CONSTRAINT 外键名称 FOREIGN KEY (外键字段名称) REFERENCES 主表名称(主表列名称);

-- 删除外键约束
ALTER TABLE 表名 DROP FOREIGN KEY 外键名称;

3. 多表查询的分类

连接查询:

        内连接查询:相当于查询AB交集数据

        外连接查询:

                左外连接查询:相当于查询A表所有数据和交集部门数据

                右外连接查询: 相当于查询B表所有数据和交集部分数据

子查询:

        查询中嵌套查询,称嵌套查询为子查询

子查询语句的编写位置:

1)子查询语句作为条件值,使用 = != > < 等进行条件判断,子查询语句结果是单行单列

2)子查询语句作为条件值,使用 in 等关键字进行条件判断,子查询语句结果是多行单列

3)子查询语句作为虚拟表,子查询语句结果是多行多列

4. 多表的语法格式

        4.1 内连接查询的语法格式

-- 隐式内连接
SELECT 字段列表 FROM 表1,表2… WHERE 条件;

-- 显示内连接
SELECT 字段列表 FROM 表1 [INNER] JOIN 表2 ON 条件;

-- 注意:
    --内连接相当于查询 A B 交集数据

        4.2 外连接查询的语法格式

-- 左外连接
SELECT 字段列表 FROM 表1 LEFT [OUTER] JOIN 表2 ON 条件;

-- 右外连接
SELECT 字段列表 FROM 表1 RIGHT [OUTER] JOIN 表2 ON 条件;

--注意:
    --左外连接:相当于查询A表所有数据和交集部分数据
    --右外连接:相当于查询B表所有数据和交集部分数据

        4.3 子查询的语法格式

-- 子查询语句的编写位置
select * from 表1 , (sql语句)   where  条件

select * from 表1 join (sql语句)  on   条件

select * from 表1 where id = (sql语句) --- 100

select * from 表1 where id in  (sql语句) --- 1,2,3,4,5

5. 事务

        5.1 事务的四大特征

        说明:mysql中事务是自动提交的,也就是说我们不添加事务执行sql语句,语句执行完毕会自动的提交事务。

原子性(Atomicity): 事务是不可分割的最小操作单位,要么同时成功,要么同时失败

一致性(Consistency) : 事务完成时,必须使所有的数据都保持一致状态

隔离性(Isolation) : 多个事务之间,操作的可见性

持久性(Durability) : 事务一旦提交或回滚,它对数据库中的数据的改变就是永久的

        5.2 事务的基本语法

        开启事务:begin

START TRANSACTION;
或者  
BEGIN;

        提交事务:commit

commit;

        回滚事务:rollback

rollback;
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

10JQK炸

如果对您有所帮助,请给点鼓励吧

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值