Mysql数据库(二)

约束条件:

主键 主键约束 primary key
用于标识表中的主键列的值,且是全表中唯一的,且值不能为null
*一个表只能有一个主键
CREATE TABLE stu01 (
id INT(5),
name char(10),
PRIMARY KEY (id)
);
或者
CREATE TABLE stu01 (
id INT(5) PRIMARY KEY,
name char(10),
);

删除主键 如果有自增需要先删掉自增
ALTER TABLE class DROP PRIMARY KEY;

外键:建立表与表之间的联系,确保外键中的值与另一个表的外键值匹配,保证数据引用的完整性。
多表联查,不要超过三张,否则会降低查询效率。

CREATE TABLE IF NOT EXISTS student (
card_id int(5) PRIMARY KEY auto_increment,
);
CREATE TABLE class (
stu_id int(11) ZEROFILL PRIMARY KEY auto_increment,
card_id INT(5) NOT NULL,
FOREIGN KEY (card_id) REFERENCES student (card_id)
);
删除外键 不能删除外键名,要删除对应的外键的索引名称
show CREATE table class;
ALTER TABLE class drop FOREIGN KEY class_ibfk_1;

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

唯一性约束:确保该列中的所有值都是唯一的,类似主键,但一个表可以有多个唯一约束(唯一前提是不为空)

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

CREATE TABLE IF NOT EXISTS test01 (
id int(5) PRIMARY KEY auto_increment,
#自增长必须是主键,不能重复
);

复制表

复制表的结构
create table stu_01 like student;
desc stu_01;
再导入数据
insert into stu_01 select * from student;
或者直接创建表时导入数据
create table stu_02 (select * from student);

临时表
临时表创建完成之后,在库里面看不到的,但依然可以增删改查,但是重新连接数据库,临时表会消失
CREATE TEMPORARY TABLE class01 (
stu_id int(11) PRIMARY KEY auto_increment,
address varchar(128) DEFAULT ‘地址不详’,
card_id INT(5) NOT NULL
);

如何删除表数据但保留表数据?
delete from 表名; 是一行一行的清空表数据,速度比较慢,如果有自增长字段,delete
清空之后,会继续按照原来的序号,继续递增。

truncate table 表名; 清空表,保留表的结构,但是清空之后原有的记录全部抹去,自增长也将
从头开始,速度比较快。

用户管理

SELECT * FROM user;
root 用户名是相同的, HOST:可以登录的主机,localhost指的是本机登录 %表示的是任意主机(ip地址)
权限上 localhost > %的权限

root@localhost安装完数据库之后就有,不需要额外设置,其他都需要人工创建。
其他用户也不设置为localhost,都是设置成主机名
CREATE user ‘xm’@‘192.168.235.10’;
创建完用户再给密码
GRANT ALL PRIVILEGES ON . TO ‘xm’@‘192.168.235.10’ IDENTIFIED by ‘123456’;

#all 给予所有权限 远程登录 数据库操作权限(增删改查)
#* . * *表示库 *表示库里面的表
#IDENTIFIED by ‘123456’ 设置密码

information_schema 这个库包含了mysql服务器中所有其他数据库,表,列,索引权限等详细的元数据详细
可用来查询数据库的结构和元数据信息
performance_schema 包含mysql服务性能和资源利用情况,查询语句的执行时间和锁定等信息

赋权
查看权限
show grants for ‘xm’@‘192.168.235.10’;
取消权限
revoke all privileges on . from ‘xm’@‘192.168.235.10’;
flush privileges;
赋予权限
grant select on xy102.* to ‘xm’@‘192.168.235.10’;
赋予多个权限
grant select,insert,update,alter,delete on xy102.* to ‘xm’@‘192.168.235.10’;
flush privileges;
删除权限
revoke insert,update,alter,delete on xy102.* from ‘xm’@‘192.168.235.10’;

删除用户
drop user ‘xm’@‘192.168.235.10’;

  • 10
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值