Mysql基础操作命令
Cmd控制台
mysql -uroot -p -- 连接数据库
flush privileges; -- 刷新权限
show databates; -- 查看所有的数据库
use 数据库名; -- 切换数据库
show tables; -- 查看数据库中所有的表
describe; 表名 -- 查看表中所有信息
create database; 数据库名 -- 创建一个数据库
DDL 定义
DML 操作
DQL 查询
DCL 控制
数据库的基本类型
数值
tinyint 十分小的数据 1个字节
smallint 较小的数据 2个字
mediumint 中等大小的数据 3个字节
int 标准是的整数 4个字节
bigint 较大的整数 8个字节
float 浮点数 4个字节
double 浮点数 8个字节
decimal 字符串形式的浮点数 (金融计算)
字符串
char 字符串固定大小 0~255
varchar 可变字符串 0~65535 相当于string
tinytext 微型文本 2^8-1
text 文本串 2^16-1
时间日期
date YYYY-MM-DD,日期
time HH:mm:ss 时间
datetime YYYY-MM-DD HH:mm:ss
timestamp 时间戳 1970.1.1到现在的毫秒数
year 年份表示
null 空值或者未知Unsigned
无符号的整数zerofill
用0填充注意数据库整数类型和字符串类型限制长度,整数类型限制长度为占位长度,不够的用0来填充,而字符串类型这是限定了字符串最大长度
数据库基本命令
创建数据库
create database 数据库名
删除数据库
drop database 数据库名
使用数据库
use 数据库名
查看数据库
show database
创建一张表
create table `表名`(
`属性` 类型 ....,
`属性` 类型 ....,
`属性` 类型 ....,
primary key(`属性`)设置主键
)engine=innodb default charset=utf8
查看表结构
desc `表名`
对表属性的操作
--修改表名
alter table 旧表名 rename as 新表名
--增加属性
alter table 表名 add 属性 类型
--修改属性
alter table 表名 modify 属性 属性/类型 --修改属性名字或者类型
alter table 表名 change 属性 属性 类型 --属性重命名
--删除属性
alter table 表名 drop 属性
删除表
drop table 表名
插入数据
insert into 表名 (属性,属性,属性...) values(值,值,值...),(...)
replace insert语句 --通过主键来判断,如果该数据已经存在则删除原来数据再插入
insert ignore into语句 --如果存在该数据,那么就忽略插入
insert into 表名 (属性,...) select 语句 --将查询的值插入到表中
修改数据
update 表名 set 属性=值,属性=值 where 判断语句
删除数据
delete from 表名 where判断语句 --删除特定数据
truncate 表名 --情空表数据不会删除表结构,不能加where限定
查询数据
--可查询函数,表达式和变量
select 属性或者通配符*,.. from 表名 where条件限制
select 属性或者通配符* as 别名,.. from 表名 where条件限制 --给该属性设置一个别名,即两个key
select distinct 属性或者通配符*,.. from 表名 where条件限制 --去重查询,重复的数据只会查询一次
--联表查询
select 属性或者通配符*,.. from 表名
inner/left/right join 表1
inner/left/right join 表2
inner/left/right join 表3
.....
on 限定条件
--注意如果联的表中存在相同属性,需要区分该属性是属于哪张表的
--inner join --只能查询两张表同时有的交叉属性的数据
--left join --能查询左侧表有但右侧表无的属性,但不能查询右表有但左表无的数据
-- right join --同上面相反
--子查询
select 属性或者通配符*,.. from 表名 where(查询语句)--返回所查询的结果
--查询语句可以多层嵌套,子语句用()括起来
where语句
`属性` like '%%' --模糊查询,%可匹配任意个字符,_只能匹配一个字符
`属性` in () --查询是否在集合里面
between 'value' and 'value' --区间查询
排序
order by 排序条件 --通过哪个字段排序
asc --升序
desc --降序
函数
abs() --绝对值
ceiling() --向上取整
floor() --向下取整
rand() --随机数
sign() --判断符号
current_date()/curdate() --获取当前日期
now() --获取当前时间
localtime() --当地时间
sysdate() --系统时间
count() --计数,统计()里参数的数量
sum() --求和
avg() --平均值
max() --最大值
min() --最小值
分组
group by 分组条件
自增设置
alter table 表名 auto_increment=初始值
/*
1.如果原表有数据则自增初始值设定不生效
2.如果原表无数据,或者delete、truncate了则alter设定依旧生效,步长某人为1
*/
set session auto_increment_increment=步长
set global auto_increment_increment=步长; --设置全局步长 (关闭会话,再进行数据库操作不恢复到默认值)