登录mysql
grep password /var/log/mysql.log 查到初始密码
set global validate_password_policy=0; 0为只验证密码长度
set global validate_password_length=6; 长度为6 默认为8
vim /etc/my.cnf
validate_password_policy=0
validate_password_length=6
alter user root@localhost identified by "123456" 修改密码
select databases(); 查看当前库名
建表语句
create table 库名.表名(
字段名 类型(宽度) 约束条件,
字段名 类型(宽度) 约束条件);
create table t1(id int(3) unsigned zerofill,name char(2))default character set utf8; 不带符号,宽度不够在左边用零补齐,字段的值可以输入中文
插入记录
insert into t1 values(1,"aa");
insert into t1 values(1,"aa"),(2,"bb");
insert into t1(id,name) values(2,"bb");
不区分大小写 aa和AA一样
desc t1; 查看表结构
delete from t1; delete from t1 where name="aa"; 删除表记录
drop table t1; 删除表
数据类型
字符型
char 定长 长度为255 不写宽度默认为1 不够指定字符时在右边补空格 处理速度快
varchar 变长 长度为65532 必须写宽度 根据数值实际大小分配存储空间 节省空间
blob/text 大文本 (图片,音频,视频) 不用写宽度
数值类型
整型
tinyint 1字节 -128-127 0-255 微小整数
smallint 2字节 -32768-32767 0-65535 小整数
mediumint 3字节 -223-223-1 0-2^24-1 中整数
int 4字节 -231~231-1 0~2^32-1 大整数
bigint 8字节 -263~263-1 0~2^64-1 极大整数
int不写宽度默认为11 unsigned 无符号 zerofill 用0代替空格
浮点型
float(n,m) 4字节 单精度浮点型
double(n,m) 8字节 双精度浮点型
n为总位数,m为小数点位数 赋值时不写小数自动补0
float(5.3)
xx.xxx
日期时间类型
年 year YYYY 2017 范围 1901~2155 01-69 20开头 70-99 19开头
日期 date YYYYMMDD 20170713 0001-01-01~9999.12-31 必须写全
时间 time hhmmss 155548 不写会补0 例:0322 00:03:22
日期时间
datetime yyyymmddhhmmss 20170713155548 范围:1000-01-01 00:00:00.000000~9999-12-31 23:59:59.999999 不写时间会补0 例如:19910101 1901-01-01 00:00:00 不赋值为NULL
timestamp yyyymmddhhmmss 20170713155548 范围:1970-01-01 00:00:00.000000~2038-01-19 03:14:07.999999 不写时间会补0 例如:19910101 1901-01-01 00:00:00 不赋值为当前系统时间
时间函数
year() date() month() day() time() now()
年 日期 月 几号 时间 当前日期时间
select year(20190823); 获取当前日期中的年
select now(); 获取当前系统时间
select year( now() ); 获取当前日期中的年
select month( now() ); 获取当前日期中的月
insert into t1 values("lucy","shanghai",21,18880,now(),now(),now(),now()); 会自动识别和当前类型相同的数值 比如year那列就显示2021
枚举类型
enum(值1,值2,值n) 单选 1代表第一个值 2代表第二个值 插入数据时写数字也可以 但是不建议写 值会不准
set(值1,值2,值n) 多选
字段约束条件
Null 是否允许为null 默认null not null 只有null NULL代表空 “null”和“”都不表示空
Key 索引
Default 默认值 default 值
Extra 额外设置
修改表结构
add 增加字段 modify 修改字段 drop 删除字段 change 修改字段名字
alter table 表名 动作;
alter table t1 add id int(2) first; 插入到第一行
alter table t1 add name char(3) after id; 插入到id后面
alter table t1 modify id int(1) auto_increment; 修改哪个字段就写哪个字段 不写的字段不会做修改
alter table t1 drop id,drop name;
alter table t1 change id id_1 int(1); 可以改名字 也可以改字段类型及约束条件
alter table t1 rename t2; 修改表名