MySQL(二)
创建表
常见的数据类型
数值类型:
int:4bytes,普通大小的整数,-2147483648到2147483647,0到4294967295
字符串类型:
CHAR(M) :固定长度字符串,当保存时在右侧填充空格以达到指定长度。M表示列长度。M的范围是0到255个字符
VARCHAR(M):变长字符串。M表示最大列长度。M的范围是0到65535.(VARCHAR的最大实际长度由最长的行的大小和使用的字符集确定。最大有效长度是65535字节)
日期时间类型:
DATE:日期,支持的范围为‘1000-01-01’到‘9999-12-31’,MySQL以'YYYY-MM-DD'格式显示DATE值,但允许使用字符('20230721' /'2023-07-21' )或数字(20230721)为DATE列分配值
datetime:日期和时间的组合。支持的范围是‘上面加上00:00:00’到‘上面第二个加上23:59:59’.MySQL以YYYY-MM-DD HH:MM:SS“格式显示DATETIME值,但允许使用字符串或数字为DATETIME列分配值
表操作 DDL语句
添加列
alter table 表名 add [column] 字段名 类型
修改列
alter table 表名 modify [column] 字段名 类型
修改列名称和类型
alter table 表名 change [column] 原字段名 新字段名 新列类型;
删除列
alter table 表名 drop [column] 字段名;
修改表名
rename table 旧名称 to 新名称;
-- 或者
alter table 表名称 rename to 新名称;
删除表
drop table 表名;
截断表
truncate table 表名;
-- 删除表之后会创建一个空表
创建和某表一样的表
create table 表名 like 要复制的表;
--当要复制的表不在当前数据库时
create table 表名 like 数据库名.要复制的表;
数据管理
插入数据 DML语言
insert into 表名(字段名1,字段名2,字段名3)value(value1,value 2,value 3);
insert into 表名 values(value1,value 2,value 3);
--插入多条数据
insert into 表名 values (), (), ();
查询数据 DQL语言
--无条件查询
select *(字段1,字段2,字段3 . ) from 表名;
--等值查询
select * from 表名 where 字段名 = value;
--设置列别名
select 字段名 '别名' from 表名 where 条件;
--剔除重复行
select distinct * from 表名;
修改数据
update 表名 set 字段 = value where 条件;
删除数据
delete from 表名 where 条件;
数据备份
在cmd中操作:
mysqldump [选项] 数据库名 [表名] > 地址
备份表结构
mysqldump -u root -p 数据库名 [表1 表2] > 地址
--d 只备份表的结构,不复制数据
mysqldump -u root -p -d 数据库名 [表1 表2] >地址
备份多个数据库
mysqldump -u root -p -d --databases 数据库1 数据库2 > 地址
备份数据和结构
mysqldump -u root -p - databases 数据库1 数据库2 > 地址
将查询的结果集保存为文件
mysql -u root -p -e "select * from 数据库.表名" > 地址
还原数据结构和数据
mysql -u root -p 新数据库名 < 地址
条件查询
条件过滤
select * from dept;
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);
select * from dept where 字段 =value;
select * from 表名 where 条件1 and 条件2;
select * from 表名 where 条件1 or 条件2;
算数运算
select 字段1 + 字段2 from 表名;
update 表名 set 字段=字段+value where sele条件;
NULL值查询
select * from 表名 where 字段 is null;
select * from 表名 where 字段 is not null;
模糊查询
--LIKE 模糊查询 _ 表示一个任意字符 %表示零个或多个任意字符
select * from 表名 where 字段 like 'x_/x%/%x%/_x%'
逻辑运算
select * from 表名 where 字段 > value;
排序
--ORDER BY 对结果集排序 DESC 降序 ASC 升序(默认)
select * from 表名 order by 字段 desc;
分页查询
select * from 表名 limit 0,2;
--(n-1)*s,s
单行函数
select length(字段) from 表;
select upper(字段),lower(字段) from 表;
--upper/lower 大小写转换
elect concat(字段1, 字段2) from 表;
--concat 字符串拼接