MySQL相关

蚂蚁生气了

Posted by youyue on December 10, 2017

连接MySQL服务,在终端输入:
mysql -u root -p

一、数据库操作

1.1 显示
	show databases
1.2 创建
	create database 库名 character set = 'utf8'
1.3 使用
	use 库名
1.4 删除
	drop database 库名

二、数据库内表的操作

2.1 创建表(增)
create table t0(id int auto_increment primary key,name char(10))engine=innodb default charset=utf8;  ***** #推荐使用
          
create table t1(
    列名 类型 null,
    列名 类型 not null,
    列名 类型 not null auto_increment primary key,
    id int,
    name char(10)
)engine=innodb default charset=utf8;
 
# innodb 支持事务,原子性操作。即操作中断后不会丢失数据,会返回中断前数据。
# myisam    mysql默认myisam,数据会丢失。所以一般设置模式为innodb

2.2 删除表和清空表(删)
删除:drop table 表名
清空:
delete from t1;    #当创建表时设置auto_increment primary key自增时,表清空后自增从之前删掉的序号后开始自增
truncate table t1; #当创建表时设置auto_increment primary key自增时,表清空后自增从1开始

2.3 修改表结构(改)
alter table t1 add sex enum('male','female');   添加字段
alter table t1 modify sex char(6);		修改字段	
alter table t1 change sex SEX char(6);		命名字段
alter table t1 drop sex;			删除字段
alter table t1 rename t2;			改名字段

2.4 查看表(查)
desc 表名;
show tables

三、数据库内表的字段的操作

3.1 增加:
insert into 表名 (键1,键2,键3) VALUES('值1','值2','值3') 	
insert into 表名 (键1,键2,键3) VALUES('值1','值2','值3'),('值1_1','值2_2','值3_3')	
insert into 表1  (键1,键2,键3) SELECT (键1,键2,键3) from 表2 # 将表2中选中列添加到表1

3.2 删除:
delete from 表名 where 条件

3.3 修改:
update 表名 set 键='新值' where 键='旧值'

3.4 查询:
select * from 表名  
select * from 表名 where 条件  #查看表中符合条件的全部内容

3.5 查询补充:
and/or: 条件运算符
=,<,>,!=: 逻辑运行符
like 'a%' 'a_':模糊查询 # %表示多个字符,_表示一个字符
between...and...: 区间查询
order by asc/desc: 正/反序查询
in /not in:  集合查询
max(字段): 返回最大值
min(字段): 返回最小值
avg(字段): 返回平均值
sum(字段): 返回总和值
count(主键): 返回次数
group by...having: 分组
distinct: 去重 # 要求查询的所有字段必须一样,才认为是重复数据
limit 参数1,参数2:limit 分页	参数1:索引值 参数2:查询数量
is null/ =' ': 查询null字段/查询空字段
表1.字段 = 表2.字段:  多表联合查询,不加条件则会出现(笛卡尔乘积)
表1 left join 表2 on: 左连接查询 特点:左表数据全要,右表的数据与左表数据相匹配则显示,不匹配则以NULL填充
表1 ight join 表2 on: 右链接查询 表2所有显示,若表1中无对应关系,则值为null
表1 inner join 表2 on: 在表中存在至少一个匹配时,INNER JOIN 关键字返回行。

用户操作

set password for ‘root’@’localhost’ = password(‘新密码’)   # 更新root 用户的密码
create user ‘用户名’@’192.168.1.1’ identified by ‘密码’  # 创建一个新用户,mysql授权用户以指定IP登录
create user ‘用户名’@’192.168.1.%’ identified by ‘密码’   # ps:前面三位IP符合条件即可以访问
create user ‘用户名’@’%’ identified by ‘密码’     #  ps:没有IP限制,%表示通配所有IP
drop user '用户名'@'IP'   #  删除用户
rename user '老用户名'@'IP' to '新用户名'@'IP'      # 修改用户

用户授权

grant select,insert,update on 数据库.表名 to '用户名'@'%';    # 为用户授 指定权限 
grant all privileges on db1.t1 on 数据库.表名 to '用户名'@'%';   # 为用户授 所有权限,除了root权限
FLUSH PRIVILEGES  #刷新授权
revoke select on db_name.* from '用户名'@'IP';  # 去除权限;

SQL数据类型