1.用户管理
创建用户:
create user '用户名'@'IP地址' identified by '密码';(IP地址:%代表所有)
用户登录:
mysql -u 用户名 -p(enter之后输入密码)
刚安装可能出现问题:无论怎么都没法登录新建的账户,提示如下:
ERROR 1045 (28000): Access denied for user '123'@'localhost' (using password: YES)
原因:mysql的认证规则导则,匿名用户影响新用户的认证
解决办法:删除匿名用户'root'@'localhosr'和''@'localhost'
删除用户:
drop user '用户名'@'IP地址';
修改用户名:
update user set user='新用户名' where user='老用户名';
修改密码:
set password for '用户名'@'IP地址' = password('新密码');
可能出现的问题:输入了修改的命令,但是一直提示:
Can't find any matching row in the user table
原因:没有及时更新权限(或用户名)
解决办法:先输入命令:flush privileges;(刷新权限)
2.权限管理
查看权限:
show grants for '用户名'@'IP地址';
授权:
grant 权限 on 数据库.表 to '用户名'@'IP地址';(all privileges除了grant以外的所有权限)
取消权限:
revoke 权限 on 数据库.表 from '用户名'@'IP地址';
刷新权限:
flush privileges;
3.数据库操作
创建数据库:
create database 数据库名字 default charset utf8;
(创建数据库X默认编码utf-8)
删除数据库:
drop database 数据库名字;
(删除数据库X)
修改数据库:
没有这种操作,硬要写就是----先删除原来的,在创建新的数据库
查询数据库:
show databases;
(显示所有数据库)
使用数据库:
use 数据库名字;
4.数据表操作:
创建表:
create table 表名(
列名 类型 是否为空 默认值,
(例:name char(12) not null default libai,)
列名 类型 是否为空 自增列,
(例:ID int not null auto_increment primary key,)(一个表只有一个自增列,主键:约束(不重复,不为空),加速查找)
)engine=innodb default charset=utf8;
(引擎和编码格式)
删除表:
drop table 表名;
清空表:
delete from 表名;(自增列还是接着原来的)
truncate table 表名;(自增列从1开始)
修改表:
修改表名:
alter table 旧表名 rename 新表名;
添加列:
alter table 表名 add 列名 类型;
删除列:
alter table 表名 drop column 列名:
(drop column:下拉列)
修改列名:
alter table 表名 change 原列名 新列名 新类型;
添加主键:
alter table 表名 add primary key(列名);
删除主键:
alter table 表名 drop primary key;
添加外键:
alter table 从表 add constraint foreign key 从表(外键字段) references 主表(主键字段);
删除外键:
alter table 表名 drop foreign key 外键名称;
修改默认值:
alter table 表名 alter column 列名 set default 新默认值;
删除默认值:
alter table 表名 alter column 列名 drop default;
查询所有表名:
show tables;
5.数据表内容操作:
插入数据:
insert into 表名(列名1,列名2...) values(列值1,列值2...);
insert into 表名(列名1,列名2) values(列值1,列值2),(列值1_1,列值2_1);#同时创建多个数据
insert into 表名2(列名1,列名2) select 列名1,列名2 from 表名1; #将表1的数据(列名1,列名2)插入表2
删除数据:
delete from 表名;
delete from 表名 where 条件;
修改数据:
update 表名 set 列名=列值;
update 表名 set 列名=列值 where 条件;
查询数据:
select * from 表名;
select * from 表名 where 条件;
select 列名1,列名2, from 表名 where 条件;