Day02 MySQL操作语句

本文详细介绍了MySQL中的表操作,包括添加、修改和删除列,以及修改表名和删除表。此外,还涵盖了数据管理,如插入、查询、更新和删除数据的语法。同时,文章讨论了数据备份的命令和选项,以及如何进行条件查询和逻辑运算。

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 2value 3);

insert into 表名[(字段名称1,字段名称2,字段名称3)] 
values(value1,value 2value 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服务器端口号
-uMySQL用户名
-pMySQL密码
-B指定要备份的数据库
-A备份mysql服务器上的所有数据库
-d不备份数据,默认为备份数据
-i是否有信息备注,默认为打开的,使用–skip-comments关闭

数据备份

mysqldump [选项] 数据库名 [表名] > 地址
#完整写法
mysqldump -u root -p [选项] 数据库名 > 地址(绝对路径)
选项说明:

文件目录不能有空格,文件目录正反斜杠不影响读取

  1. 备份表结构

    mysqldump -u root -p -d 数据库名 表12 > 地址;
    
  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
    
  3. 备份数据和结构

    mysqldump -u root -p --databases 数据库1 数据库2 > 地址
    #不加 -d
    
  4. 将查询的结果集保存为文件

    mysql -u root -p -e "select * from 数据库.表名" > 地址
    
  5. 还原数据结构和数据

    # 登录选中数据库之后执行,将数据还原到该数据库
    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;
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值