mysql约束条件和用户管理

约束条件和用户管理

约束条件:

主键

主键约束 primary key

用于标识表中的主键列的值,而且这个值是全表当中唯一的,而且值不能为null

*一个表只能有一个主键

外键:用来建立表与表之间关系,确保外键中的值与另一个表的主键值匹配。保证数据引用的完整性。

多表联查,不要超过三张。超过三张,会降低查询效率。

非空约束:保证列中的值不含null值

唯一性约束:确保列中的所有值都是唯一的,类似主键,但是一个表可以有多个唯一约束。

自增约束,在列生成的每一行都会自动生成一个唯一标识符,通常和主键一起使用,每次插入新行时,自增列的 值会自动增加。

扩展语句:

CREATE TABLE IF NOT EXISTS test01 (
#表示在创建表时自动检测表是否已经存在,如果不存在就创建。
id int(5) ZEROFILL PRIMARY KEY auto_increment,
#zerofill,5位,不足五位自动填充0。auto_increment自增长字段,
#每条记录自动递增1,自增长必须是主键,也不可以重复。如果添加失败下一条记录也会自动增加。
name CHAR (10),
score DECIMAL(5,2),
address VARCHAR(128)
);

INSERT INTO test01 VALUES (1,"骆雨昊",100,"南京");
INSERT INTO test01 VALUES (null,"德",200,"秦淮");
SELECT * FROM test01;

主键和外键的总结:
外键就是和主表进行关联的列,不需要设置为从表的主键,但是不能为空,必须和主表的数据类型保持一致。

外键的值和主键的值要相同

先插入主表的数据,再插入从表的数据

删除表的外键不是直接删除外键的列名,而是删除外键的索引,show create table 表名:查看表的详细信息。

删除主键不需要加上主键的列名。如果有extra的额外属性,比如说自增长,要先移除属性,然后才能除主键。 删除主键的方式:alter进行修改

 

复制表:
create table +旧表名 like 新表名 ;

insert into +表名 select * from +表名

create table +表名(select * from +表名)

临时表:
创建完成之后,在库里面是看不到的,但是依然可以增删改查,但是重新连接数据库之后,临时表就会消失。

清空表:
drop 删除表
面试题:如何删除表的内容,还能保留表的结构?
delete from +表名; 清空表 一行一行的清空表数据,速度比较慢,如果有自增长字段,delete清空之后,会继续按照原来的序号,继续递增。
truncate table +表名; 清空表 保留表的结构,但是清空之后原有的记录全部抹去,自增长也将从头开始,速度表较快。
数据库的用户管理:
创建用户

设置用户权限

select * from user;

root都是相同的,Host:可以登录的主机,1ocalhost指的是本地登录 :任意主机(ip地址)。

权限上:localhost > %的权限。

create user '用户名' @'ip地址'

grant all privileges on * . * to '用户名' @'ip地址' ;

all 给所有权限 远程登录,数据库的操作权限(增删改查)

* . * 左边的是库,右边的是库里面的表

root@localhost其他的用户也不设置成localhost,都是设置主机名。安装完mysql之后就有了,不需要额外设置。其他的都需要人工创建。

information schema: 这个库的作用包含了mysq1服务器中所有其他数据库,表,列。索引权限等详细的元数据的信息,可以用来查询数据库的结构和元信息。

performance_schema:

包含mysql的服务性能和资源利用情况。查询语句的执行时间和锁定等信息。

usage:允许该用户连接到数据库

移除权限的命令: revoke all privileges on * . * from '用户名' @'ip地址';

flush privileges 刷新一下权限

grant select on 库名 .* to '用户名' @'ip地址'; 只能查

drop user '用户名' @'ip地址'; 删除用户

create user '用户名' @'ip地址' identified by '密码 '; 创建用户及密码

查看权限的语句:show grant for 用户名@%;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值