MySQL中的DDL操作,MySQL中DML操作,MySQL查询数据,SQL函数,MySQL中的索引,MySQL事务,MySQL的用户管理,MySQL分页查询

本文详细介绍了MySQL中的数据操作,包括DDL(数据定义语言)如创建、修改和删除表,约束的添加和删除,DML(数据操纵语言)如插入、更新和删除数据,以及查询操作如SELECT的基本用法、函数和多表查询。此外,还讨论了事务处理和不同隔离级别的概念,以及索引的创建和管理。最后提到了用户管理和分页查询的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

MySQL中的DDL操作

一、创建表与删除表

1,创建表

2,查看已创建的表。

3,删除表

二、修改表

1,修改表名

2,修改列名

3,修改列类型

4,添加新列

5,删除指定列

三、MySQL的约束

1,修改表添加主键约束

2,删除主键

3,修改表添加外键约束 

4,删除外键约束

5,修改表添加唯一性约束

6,删除唯一性约束

7,修改表添加非空约束

8,删除非空约束

9,查询表中的约束信息

10,创建表时添加约束

MySQL中DML操作

一、添加数据(INSERT)

1,选择插入:

2,完全插入:

 3,创建表时指定列的默认值(DEFAULT)

 4,修改表添加新列并指定默认值

二、插入数据时的默认值处理

 三、更新数据(UPDATE)

 四、删除数据(DELETE)

1,DELETE删除数据

2,TRUNCATE清空表

清空表时DELETE与 TRUNCATE 区别:

MySQL查询数据

SELECT基本查询

1,查询中的列选择

选择所有列

 选择指定列

2,查询中的算术运算符

3,MySQL中定义空值

4,MySQL中的别名

使用列别名

使用表别名

5,除去相同的行

6,用选择限制行

7,MySQL中的比较条件

8,其他比较条件

a) 使用BETWEEN条件

b) 使用IN条件

 c) 使用LIKE条件

 d) 使用NULL条件

9,逻辑条件

10,优先规则

11,使用 ORDER BY 排序 

12,使用别名排序

13,多列排序

SQL函数

单行函数

​编辑​编辑

1,字符函数

2,数字函数

ROUND(column|expression, n) 函数

 TRUNCATE(column|expression,n) 函数

3,日期函数

4,转换函数

隐式数据类型转换

 显示数据类型转换

 5,通用函数(用的比较多,更多是用来处理逻辑判断的)

多表查询

SQL92标准中的查询

1,等值连接

增加搜索条件

限制不明确的列名

使用表别名

多表连接

2, 非等值连接

3,自连接(自连接的表别名非常重要)

SQL99标准中的查询

SQL99中的交叉连接(CROSS JOIN)

1,创建交叉连接

SQL99中的自然连接(NATURAL JOIN)

2,创建自然连接

 SQL99中的内连接(INNER JOIN)

用ON子句指定连接条件

 用ON子句指定更多的连接条件

外连接查询(OUTER JOIN)

1,孤儿数据(Orphan Data)

2,左外连接

3,右外连接(RIGTH OUTER JOIN)

4,全外连接(FULL OUTER JOIN)

聚合函数

AVG 和 SUM 函数

MIN 和 MAX 函数

COUNT 函数

使用 DISTINCT 关键字

组函数和 Null 值

数据分组(GROUP BY)

1,GROUP BY 子句语法

2,使用 GROUP BY 子句

3,在多列上使用分组

4,约束分组结果(HAVING)

HAVING 子句

约束分组结果

HAVING子句语法

子查询(分而治之)

子查询

1,使用子查询

 2,使用子查询的原则

单行子查询

多行子查询 

1,使用ANY运算符

2,使用ALL运算符

3,子查询中的空值

MySQL中的索引

普通索引

1,查询索引

2,直接创建索引

3,修改表添加索引

4,创建表时指定索引列

5,删除索引

唯一索引(当为一个表分配了唯一性约束时,这个表就自带唯一索引了)

1,创建唯一索引

2,修改表添加唯一索引

3,创建表时指定唯一索引

主键索引

1,修改表添加主键索引

2,创建表时指定主键索引

组合索引

1,添加组合索引

2,创建表时创建组合索引

MySQL事务

事务四大特征(ACID)

事务类型

使用事务

事务的并发问题

1,脏读(读取未提交数据)

2,不可重复读(前后多次读取,数据内容不一致)

3,幻读(前后多次读取,数据总量不一致)

事务的隔离级别

1,查看MySQL默认事务隔离级别

2,设置事务隔离级别

MySQL的用户管理

用户管理

1,创建用户

2,查看用户

权限管理

1,分配权限

2,刷新权限

3,删除用户

MySQL分页查询

1,IMIT子句

2,LIMIT OFFSET子句


MySQL中的DDL操作

一、创建表与删除表

1,创建表

CREATE TABLE 表名(列名 类型,列名 类型......);

 

2,查看已创建的表。

show tables;

3,删除表

DROP TABLE 表名;

二、修改表

1,修改表名

ALTER TABLE 旧表名 RENAME 新表名;

2,修改列名

ALTER TABLE 表名 CHANGE COLUMN 旧列名 新列名 类型;

3,修改列类型

ALTER TABLE 表名 MODIFY 列名 新类型;

4,添加新列

ALTER TABLE 表名 ADD COLUMN 新列名 类型;

5,删除指定列

ALTER TABLE 表名 DROP COLUMN 列名;

三、MySQL的约束

1,修改表添加主键约束

ALTER TABLE 表名 ADD PRIMARY KEY(列名)

2,删除主键

ALTER TABLE 表名 DROP PRIMARY KEY;

注意: 删除主键时,如果主键列具备自动增长能力,需要先去掉自动增长,然后再删除主键。

3,修改表添加外键约束 

ALTER TABLE 表名 ADD CONSTRAINT 约束名FOREIGN  KEY(列名) 
REFERENCES 参照的表名(参照的列名);

4,删除外键约束

ALTER TABLE 表名 DROP FOREIGN KEY 约束名;

5,修改表添加唯一性约束

ALTER TABLE 表名 ADD CONSTRAINT 约束名 UNIQUE(列名);

6,删除唯一性约束

ALTER TABLE 表名 DROP KEY 约束名;

7,修改表添加非空约束

ALTER TABLE 表名 MODIFY 列名 类型 NOT NULL;

8,删除非空约束

ALTER TABLE 表名 MODIFY 列名 类型 NULL;

9,查询表中的约束信息

SHOW KEYS FROM 表名;

10,创建表时添加约束

示例:创建 depts 表包含 department_id 该列为主键且自动增长, department_name 列不 允许重复,location_id 列不允含有空值。

create table depts(department_id int primary key auto_increment,
department_name varchar(30) unique,
location_id int not null);

MySQL中DML操作

一、添加数据(INSERT)

1,选择插入:
INSERT INTO 表名(列名 1 ,列名 2 ,列名 3.....) VALUES(值 1 ,值 2 ,值 3......);
2,完全插入:
INSERT INTO 表名 VALUES(值 1 ,值 2 ,值 3......);

注意: 如果主键是自动增长,需要使用 default 或者 null 或者 0 占 位。

3,创建表时指定列的默认值(DEFAULT)

CREATE TABLE 表名(列名 类型 default 默认值,......);

在 MySQL 中可以使用 DEFAULT 为列设定一个默认值。如果在插入 数据时并未指定该列的值,那么 MySQL 会将默认值添加到该列 中。

 4,修改表添加新列并指定默认值

ALTER TABLE 表名 ADD COLUMN 列名 类型 DEFAULT 默认值;

示例: 修改 emp3 表,添加job_id 该列默认值为 0。

二、插入数据时的默认值处理

如果在插入数据时并未指定该列的值,那么MySQL 会将默认值添加 到该列中。如果是 完全项插入需要使用 default 来占位。

 三、更新数据(UPDATE)

UPDATE 表名 SET 列名=值,列名=值 WHERE 条件;

注意: 更新语句中一定要给定更新条件,否则表中的所有数据都会被 更新。

 四、删除数据(DELETE)

1,DELETE删除数据

DELETE FROM 表名 WHERE 条件;

注意: 在DELETE语句中,如果没有给定删除条件则会删除表中的所有 数据。

2,TRUNCATE清空表

TRUNCATE TABLE 表名;
清空表时DELETE与 TRUNCATE 区别:
  • truncate 是整体删除(速度较快), delete 是逐条删除(速度较慢);
  • truncate 不写服务器 log,delete 写服务器 log,也就是 truncate 效率比 delete 高的原因;
  • truncate 是会重置自增值相当于自增列会被置为初始值,又重新从 1 开始记录,而不是接着原 来的值。
  • delete 删除以后, 自增值仍然会继续累加

MySQL查询数据

SELECT基本查询

 1,查询中的列选择

选择所有列

 选择指定列

 用 SELECT 语句来显示表的指定列,指定列名之间用逗号分隔。

2,查询中的算术运算符

 如果算术表达式包含有一个以上的运算,乘法和除法先计算。如果 在一个表达式中的运算符优先级相同,计算从左到右进行。可以用圆括号强制其中 的表达式先计算。

3,MySQL中定义空值

 0 是一个数字,而空格是一个字符。包含空值的算术表达式计算结果为空。

4,MySQL中的别名

使用列别名
SELECT 列名 AS 列别名 FROM 表名 WHERE 条件;
使用表别名
SELECT 表别名.列名  FROM 表名 as 表别名 WHERE 条件;

5,除去相同的行

SELECT DISTINCT 列名 FROM 表名;

6,用选择限制行

SELECT * | 投影列 FROM 表名 WHERE 选择条件;

7,MySQL中的比较条件

 符号 != 也能够表示 不等于条件。

8,其他比较条件

a) 使用BETWEEN条件

可以用 BETWEEN 范围条件显示基于一个值范围的行。指定的范围包含一个下限和一个上限。

包含上限和下限,是闭区间。

b) 使用IN条件

 c) 使用LIKE条件

 d) 使用NULL条件

NULL 条件,包括 IS NULL 条件和 IS NOT NULL 条件。

IS NULL 条件用于空值测试。空值的意思是难以获得的、未指定 的、未知的或者不适用的。因此,你不能用 = ,因为 null 不能等于 或不等于任何值。

9,逻辑条件

 10,优先规则

可使用圆括号改变优先规则。

11,使用 ORDER BY 排序 

如果使用了 ORDER BY 子句,它必须位于 SQL 语句的最后。

SELECT 语句的执行顺序如下:

  • FROM 子句
  • WHERE 子句
  • SELECT 子句
  • ORDER BY 子句

12,使用别名排序

 13,多列排序

 也可以排序一个不在select列表中的列。

SQL函数

单行函数

 1,字符函数

2,数字函数

 

 

 举例:

ROUND(column|expression, n) 函数
SELECT ROUND(45.923,-1);--->50
SELECT ROUND(45.923,-2);--->0
SELECT ROUND(55.923,-2);--->100
 TRUNCATE(column|expression,n) 函数
SELECT TRUNCATE(45.923,0);--->45
SELECT TRUNCATE(45.923,-1);--->40
SELECT TRUNCATE(45.923,-2);--->0
SELECT TRUNCATE(345.923,-2);--->300
SELECT TRUNCATE(345.923,-3);--->0

3,日期函数

在MySQL中允许直接使用字符串表示日期,但是要求字符串的日期 格式必须为:‘YYYY-MM-DD HH:MI:SS’ 或者‘YYYY/MM/DD HH:MI:SS’。

4,转换函数

隐式数据类型转换

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值