Day02 MySQL操作语句
杂项
异常处理,终端显示'>代表前面的文本( ’ ’ )没有封起来
表操作修改
- 添加列
alter table 表明 add [column] 字段名 类型;
- 修改列的类型
alter table 表名 modify [column] 字段名 类型;
- 修改列名称和类型
alter table 表名
change [column] 原字段名 新字段名 新列类型
[comment 注释] [约束];
- 删除列
alter table 表名 drop [column] 字段名;
- 修改表名
rename table 旧名称 to 新名称;
# or
alter table 表名称 rename to 新名称;
- 删除表
drop table [if exists] 表名;
删除table的时候会把table里所有的数据都删除
- 截断表
truncate table 表名;
#删除表之后会创建一个空表
- 创建和某表结构一样的表
create table 表名 like 要复制的表;
#当要复制的表不在当前数据库时
create table 表名 like 数据库名.要复制的表名;
数据管理
插入数据 DML
insert into 表名[(字段名称1,字段名称2,字段名称3)]
value(value1,value 2,value 3);
insert into 表名[(字段名称1,字段名称2,字段名称3)]
values(value1,value 2,value 3);
# 如果前面有字段按照前面的字段顺序添加,没有按照默认的顺序添加
# 插入多条数据
insert into 表名 values (), (), ();
查询数据 DQL
# 无条件查询
select *(字段1,字段2,字段3 . ) from表名;
# 等值查询
select * from 表名 where 字段名 = value;
# 设置列别名
select 字段名 [as] '别名' from 表名 WHERE 条件;
# 剔除重复行
select distinct * from 表名;
# 只是在显示的时候不显示重复的数据,数据未删除
修改数据
update 表名 set 字段 = value where 条件;
# 修改满足条件的字段值
删除数据
delete from 表名 where 条件;
# 删除满足条件的行
数据备份
参数名
| 缩写 | 含义 |
|---|---|
| -h | 主机地址 |
| -P | 服务器端口号 |
| -u | MySQL用户名 |
| -p | MySQL密码 |
| -B | 指定要备份的数据库 |
| -A | 备份mysql服务器上的所有数据库 |
| -d | 不备份数据,默认为备份数据 |
| -i | 是否有信息备注,默认为打开的,使用–skip-comments关闭 |
数据备份
mysqldump [选项] 数据库名 [表名] > 地址
#完整写法
mysqldump -u root -p [选项] 数据库名 > 地址(绝对路径)
选项说明:
文件目录不能有空格,文件目录正反斜杠不影响读取
-
备份表结构
mysqldump -u root -p -d 数据库名 表1 表2 > 地址; -
备份多个数据库
mysqldump -u root -p -d --databases 数据库1 数据库2 > 地址; # --all-databases 备份所有数据库 mysqldump -u root -p -d - all-databases > E:/allbackupfile.sql # -A 备份所有数据库 mysqldump -u root -p -A > C:\Users\jksps\Desktop\Newfolder\backup-7.sql -
备份数据和结构
mysqldump -u root -p --databases 数据库1 数据库2 > 地址 #不加 -d -
将查询的结果集保存为文件
mysql -u root -p -e "select * from 数据库.表名" > 地址 -
还原数据结构和数据
# 登录选中数据库之后执行,将数据还原到该数据库 source 地址; # 在服务外面使用 mysql 命令还原 mysql -u root -p 新数据库名 < 地址
条件查询
1. 条件过滤
SELECT * FROM 表名 WHERE 字段 = value;
SELECT * FROM 表名 WHERE 字段 BETWEEN value1 AND value2;
SELECT * FROM 表名 WHERE 字段 IN(value1, value2, value3);
SELECT * FROM 表名 WHERE 字段 NOT IN(value1, value2, value3);
示例:
SELECT * FROM dept WHERE dept_no = 3;
SELECT * FROM dept WHERE dept_no BETWEEN 1 AND 3;
SELECT * FROM dept WHERE dept_no IN(1, 2, 3);
SELECT * FROM dept WHERE dept_no NOT IN(2, 3, 5);
2. 算数运算
SELECT 字段1 + 字段2 FROM 表名;
UPDATE 表名 SET 字段 = 字段 + value WHERE 条件;
3. NULL值查询
SELECT * FROM 表名 WHERE 字段 IS NULL;
SELECT * FROM 表名 WHERE 字段 IS NOT NULL;
4. 模糊查询
SELECT * FROM 表名 WHERE 字段 LIKE 'x_';
SELECT * FROM 表名 WHERE 字段 LIKE 'x%';
SELECT * FROM 表名 WHERE 字段 LIKE '%x%';
SELECT * FROM 表名 WHERE 字段 LIKE '_x%';
5. 逻辑运算
SELECT * FROM 表名 WHERE 条件1 AND 条件2;
SELECT * FROM 表名 WHERE 条件1 OR 条件2;
6. 排序
#升序
SELECT * FROM 表名 ORDER BY 字段 ASC;
#降序
SELECT * FROM 表名 ORDER BY 字段 DESC;
7. 分页查询
SELECT * FROM 表名 LIMIT offset, row_count;
8. 单行函数
SELECT LENGTH(字段) FROM 表;
SELECT UPPER(字段), LOWER(字段) FROM 表;
SELECT CONCAT(字段1,字段2) FROM 表;
本文详细介绍了MySQL中的表操作,包括添加、修改和删除列,以及修改表名和删除表。此外,还涵盖了数据管理,如插入、查询、更新和删除数据的语法。同时,文章讨论了数据备份的命令和选项,以及如何进行条件查询和逻辑运算。
2313





