文章目录
常用mysql命令总结
连接数据库
mysql -u 用户名 -p
回车输入密码或者直接在-p后面添加密码
例如:用户cc,密码123456进行连接数据库
mysql -u cc -p123456
mysql启动和关闭外键约束的方法
[Err] 1451 -Cannot delete or update a parent row: a foreign key constraint fails…
这个是因为mysql中设置了foreign key关联,造成无法更新或者删除数据。
-
可以设置foreign_key_checks变量来关闭外键约束
set foreign_key_checks = 0; -- 禁用外键约束
set foreign_key_checks = 1; -- 启用外键约束
-
查看当前foreign_key_checks
select @@foreign_key_checks; -- 查看当前外键约束状态
添加、删除、查看约束
添加约束
添加唯一约束
alter table 表名
add constraint uq_字段名
unique(字段);
添加外键约束
alter table 表名
add constraint fk_字段名
foreign key(字段名) references 关联表表名(关联字段名)
添加check约束
alter table 表名
add constraint ck_字段名
check (条件表达式)
添加默认值约束
alter table 表名
add constraint DF_字段名
default ‘默认值’ for 字段名
删除约束
alter table 表名
drop constraint 约束名
查看约束
select *
from information_schema.`table_constrain`
[where table_name = 表名] -- 来指定需要查看约束的表
创建、查看、删除索引
创建索引
创建唯一索引
create unique index 索引名
on 表名(字段名);
查看索引
使用show index from 表名
show index from 表名;
删除索引
直接通过drop
drop index 索引名
on 表名
创建、使用、修改、查看视图
创建视图
视图可以根据基于视图创建,也可以根据基本表进行创建
create view 视图名(列1,列2)
as
select (列1,列2)
from ...
where 条件查询表达式
[with check option]
with check option的作用就是对视图进行delete、insert和update的时候、需要保证delete、update、insert的行(数据)满足视图定义中的谓词条件(即select中的条件查询表达式)
使用视图
与使用基本表一样就行
查看视图(与查看基本表一样)
查看视图结构
desc 视图名
查看视图信息
select *
from 视图名
更新视图
格式均与更新基本表一样
update 视图名
set 列名
[where子句]
删除视图
与删除基本表的语句一样
drop view 视图名 [cascade]
cascade:由该视图导出的所有视图定义都会删除
常见的视图更新限制:
- 若视图是由两个以上基本表导出的,那么这个视图不允许更新
- 若视图的字段来自字段表达式或者常数,则不允许对此视图执行insert 和 update操作,但是允许delete
- 若视图的字段来自聚集函数,那么这个视图不允许更新update
- 如果视图定义中含有 group by 子句,那么这视图不允许更新
- 若视图定义中含有DISTINCT,那么视图不允许更新
- 若视图定义有嵌套查询,并且内层查询的from子句中涉及的表也是导出该视图的基本表,那么此视图不允许更新
- 一个不允许更新的视图上定义的视图也不允许更新
授权与取消授权
给用户授权
grant 权限
on 表名
to 用户;
移除用户权限
revoke 权限
on 表名
from 用户名;
查看用户权限
查看用户本身的权限
show grants;
查看某个用户的权限
show grants for 用户名;
查看所有用户
select user,host
from mysql.user;