MySQL语法-(DDL、DML、DQL)

文章目录

一、表操作-修改 DDL

二、数据管理

  • 插入数据 DML
  • 查询数据 DQL
  • 修改数据
  • 删除数据

 三、数据备份

  • 备份表结构 
  • 备份多个数据库  
  • 备份数据和结构
  • 将查询的结果集保存为文件
  • 还原数据结构和数据

 四、条件查询


一.表操作-修改 DDL  
  • 添加列
alter table 表名 add 字段 类型;
  • 修改列  
alter table 表名 modify [column] 字段名 类型;
  • 修改列名称和类型  
alter table 表名 change [column] 原字段名 新字
段名 新列类型 [comment 注释] [约束];
  • 删除列 
alter table 表名 drop [column] 字段名;
  •  修改表名
1>.rename table 旧名称 to 新名称;

2>.alter table 表名称 rename to 新名称;
  • 删除表 
drop table [if exists] 表名;
  • 截断表 
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 条件;
# 删除满足条件的行

  • 创建表

数据类型

MySQL 中的数据类型有很多,主要分为三类: 数值 类型、字符串类型、日期时间类型
  • 知识点
char varchar 都可以描述字符串, char 是定 长字符串,指定长度多长,就占用多少个字符, 和字段值的长度无关 。而varchar 是变长字符串, 指定的长度为最大占用长度 。

 三、数据备份
mysqldump [ 选项 ] 数据库名 [ 表名 ] > 地址
  • 备份表结构 
mysqldump -u root -p 数据库名 表1 表2 >地址
# -d 只备份表结构
mysqldump -u root -p -d kfm dept >E:/kfm/dept.sql
# 数据+表结构一起备份
mysqldump -u root -p kfm07 >e:/kfm/kfm07.sql

mysqldump -u root -p -d --skip-comments 数据库名 表名 > E:/cart.sql
减少部分代码
  • 备份多个数据库  
mysqldump -u root -p -d - databases 数据库1 数据库2 > 地址
mysqldump -u root -p -d -B kfm07 kfm007 book bank > E:/test.sql
#--all-databases 备份所有数据库
mysqldump -u root -p -d --all-databases / -A > E:/allbackupfile.sql
  • 备份数据和结构
# 备份命令去掉 -d
mysqldump -u root -p - databases 数据库1 数据库2 > 地址
  •  将查询的结果集保存为文件
mysql -u root -p -e "select * from 数据库.表名" > 地址
mysql -u root -p -e "select * from store.goods" > E:/result.txt
mysql -u root -p -e "select * from goods" store > E:/result.csv
  •  还原数据结构和数据
# 登录选中数据库之后执行,将数据还原到该数据库
source 地址; # SQL 语句
# 在服务外面使用 mysql 命令还原
mysql -u root -p 新数据库名 < 地址
mysql -u root -p kfm < E:/cart.sql

 四、条件查询

  •  条件过滤
# WHERE 子句表示查询的条件
# [value1, value2]
SELECT * FROM 表名 WHERE 字段 BETWEEN value1 AND value2;
# 字段在[value1, value2 . ]任意一个就可以
SELECT * FROM 表名 WHERE 字段 IN(value1, value2, value3);
# 字段不在[value1,value2,value3]中
14 SELECT * FROM 表名 WHERE 字段 NOT IN(value1, value2, value3);
条件1 和条件2 都为 true 的结果显示出来
SELECT * FROM 表名 WHERE 条件1 AND 条件2;
满足条件1 和满足条件2的结果都可以显示出来
SELECT * FROM 表名 WHERE 条件1 OR 条件2;
  • 算数运算
# 可以对查询出来的结果进行算数运算
SELECT 字段1+ 字段2 FROM 表名;
select 字段*2 from 表名;
# 修改的时候也可以进行算数运算
UPDATE 表名 SET 字段=字段+value WHERE条件;
  •  NULL值查询
# NULL 值只能无法通过等值操作查询
# NULL值指的是未填值,注意跟空字符串做区分
SELECT * FROM 表名 WHERE 字段 IS NULL;
SELECT * FROM 表名 WHERE 字段 IS NOT NULL;
  • 模糊查询
# LIKE 模糊查询 _ 表示一个任意字符 %表示零个或多个任意字符
# xa xb
SELECT * FROM 表名 WHERE 字段 LIKE'x_';
# xa x xbs
SELECT * FROM 表名 WHERE 字段 LIKE'x%';
# xa ax axb axbc
SELECT * FROM 表名 WHERE 字段 LIKE'%x%';
# ax axb axbc
SELECT * FROM 表名 WHERE 字段 LIKE'_x%';
  •  逻辑运算
SELECT * FROM 表名 WHERE 字段 > value;
# WHERE 条件语句里面可以写 > < = != 等
  •  排序
# ORDER BY 对结果集排序 DESC 降序 ASC 升序(默认)
SELECT * FROM 表名 ORDER BY 字段1 DESC, 字段2 ASC;
先按照dept_no 降序排序,如果dept_no字段相同,按照d_name降序排序
select * from dept ORDER BY dept_no desc, d_name desc;
SELECT * FROM 表名 ORDER BY 字段 ASC;
  •  分页查询
# LIMIT 对结果集分页 参数1:起始行;参数显示条数
# 页码 n 页大小 s LIMIT (n-1) * s, s
SELECT * FROM 表名 LIMIT 0,2; # 从第0行开始显示两条数据
  •  单行函数
# length 计算长度
SELECT length("123");
select length(字段) from 表;
# upper/lower 大、小写转换
SELECT UPPER("a"), LOWER('A');
select upper(字段),lower(字段) from表;
select upper(字段),upper(字段) from表;
# concat 字符串拼接
SELECT CONCAT(upper('smith'),'john');
select concat(字段1, 字段2) from 表;
select concat(字段1, '_',字段2) from 表;#a-b

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值