mysql 密码:root/12345678
# mysql数据库登入
mysql -uroot -p123456 # 本地登入
格式:mysql -h'服务器IP' -u'用户名' -p'密码'
#查看数据库
show databases;
# 进入数据库
use mysql
# 查看数据库中的表
show tables;
# 查看密码策略
show global variables like 'validate_password%';
# 修改密码校验策略
set global validate_password_policy=0; # 关闭密码复杂性校验(测试环境下)
set global validate_password_length=6; # 设置最小密码长度
# 创建用户--只允许从指定IP(192.168.1.124)登入
create user 'user01'@'192.168.1.124' identified by '123456';
create user 'user02'@'192.168.1.124' identified by '12345678';
# 创建用户--允许从指定网段登入
create user 'user03'@'192.168.1.%' identified by '123456';
# 创建数据库
create database DB1;
# 给用户授权
grant select on DB1.* to 'user01'@'192.168.1.124';
# 刷新权限
flush privileges;
# 查看权限
show grants for user01@'192.168.1.124';
# 查看当前在那个数据库内
select database()
# 创建表
create table tb1(id int,name char(10));
# 插入数据
insert into tb1(id,name) values(1,'zhangsan');
# 删除一条数据
delete from tb1 where id=2;
# 取消授权
revoke delete on DB1.* from 'user01'@'localhost';
SQL语句
1.数据库操作
create database DB2; --创建数据库
show databases; --查看数据库
drop database DB2; --删除数据库
use DB2 --切换到指定表
2.表操作
show tables; --查看所有表
create table tb1(id int,name char(10)); --创建表
# 多行格式
create table tb1(
id int,
name char(10)
)default charset=utf8
insert into tb1(id,name) values(1,'zhangsan'); --插入数据
select * from tb1 --查看表
delete from tb1 --删除表记录(清空表)
truncate table tb1 --清空表
2.1表內容的编码问题
数据库
create database DB3 default charset utf8;
表
create table tb2(id int,name char(10))default charset=utf8;
insert into tb2 values(1,'张三'); --支持中文
2.2mysql存储引擎
innodb -- 支持事务(原子性操作,支持回滚)
myisam -- 读写熟读快
2.3 字段属性--字段不允许为空
create table tb3(
id int not null,
name char(10) not null
)engine=innodb default charset=utf8;
2.3.1 字段属性--字段默认值
create table tb4(
id int not null,
name char(10) not null,
info char(10) not null default 'student'
)engine=innodb default charset=utf8;
2.3.2 字段属性--主键自增
create table tb5(
id int not null auto_increment primary key,
name char(10) not null,
info char(10) not null default 'student'
)engine=innodb default charset=utf8;
# 数据类型
数字
tinyint
有符号(signed):-128~+127
无符号(unsigned):0~255
用法:num int unsigned not null,
smallint
有符号:-32768~32767
无符号:0~65535
int
bigint
float
double
decimal --精确小数decimal(总位数,小数点后位数)
用法:num decimal(10,5),
字符串
char(10) --定长,如果字段长度小于指定长度默认空格填充,查询速度快
varchar(10) --变长,字段长度是多少则存储就是多少,节省空间,最大包含255个字符
text -- 可以存储65535个字符
通常情况,定长字段在前,边长字段在后,能提高速度
时间
date
YYYY-mm-dd(000-01-01~9999-12-31)
time
HH:MM:SS(-838:59:59~838:59:59)
year
YYYY(1901~2155)
datetime
YYYY-mm-dd HH:MM:SS(1000-01-01 00:00:00~9999-12-31 23:59:59)
timestamp
枚举
enum
集合
set
2 外键(某个字段数据与另一字段产生约束,涉及多个表)
constraint 外键名 foreign key ('需要外键约束的字段') references 被依赖的表('被依赖的字段')
create table tb6(
uid int auto_increment primary key,
name varchar(20),
relay_id int,
constraint fk_tb6_tb7 foreign key(relay_id) references tb7(id)
)engine=innodb default charset=utf8;
create table tb7(
id int auto_increment primary key,
title char(15)
)engine=innodb default charset=utf8;
insert into tb7(title) values('斗破苍穹'),('武动乾坤'),('大主宰');
insert into tb6(name,relay_id) values('张小花',1);
insert into tb6(name,relay_id) values('陈啸虎',2);
insert into tb6(name,relay_id) values('王振天',3);
insert into tb6(name,relay_id) values('戴妃',4); 报错
insert into tb6(name,relay_id) values('钱梁',2);