#mysql用户权限管理
GRANT ALL PRIVILEGES ON *.* TO 'ss1'@'%' IDENTIFIED BY '1111' WITH GRANT OPTION;
#查看某个用户的权限
SHOW GRANTS FOR 'root'@'%';
GRANT SELECT,UPDATE
ON tb_ss.*
TO's2'@'localhost'
IDENTIFIED BY '1111';
InnoDB是为处理巨大数据量的最大性能设计。它的CPU效率可能是任何其他基于磁盘的关系型数据库引擎锁不能匹敌的
InnoDB支持外键完整性约束,存储表中的数据时,每张表的存储都按主键顺序存放,如果没有显示在表定义时指定主键,InnoDB会为每一行生成一个6字节的ROWID,并以此作为主键
InnoDB被用在众多需要高性能的大型数据库站点上
查看数据引擎语句
show engines
不同的存储引擎都有各自的特点,以适应不同的需求,如下表所示:
如果要提供提交、回滚、崩溃恢复能力的事物安全(ACID兼容)能力,并要求实现并发控制,InnoDB是一个好的选择
如果数据表主要用来插入和查询记录,则MyISAM引擎能提供较高的处理效率
#库的创建
CREATE DATABASE IF NOT EXISTS books;
#库的删除
DROP DATABASE IF EXISTS books;
#使用数据库
use tb_ss;
#查看该数据库的表
show tables;
create table 表名(
列名 列的类型【(长度)约束】,
列名 列的类型【(长度)约束】,
列名 列的类型【(长度)约束】,
.........
列名 列的类型【(长度)约束】
)
#案例表的创建
CREATE TABLE tb_e(
id INT,
numb INT,
name VARCHAR(20)
)
#查看表结构
DESC tb_e;
#增加数据
INSERT INTO tb_e
select 2,4,'b'
#表的修改
修改表结构
添加列
alter table 表名 add 列名 类型(长度) 约束;
修改列的属性
alter table 表名 modify 列名 类型(长度) 约束;
修改列的名称和属性
alter table 表名 change 列名 列名 类型(长度) 约束;
删除列
alter table 表名 drop 列名;
修改字符集
alter table 表名 character set 字符集;
重命名表
rename table 表名 to 新名字;
# 表的修改案例
#修改列名
alter table tb_e change column publishdate pubDate datetime;
#修改列的类型或约束
alter table tb_e modify column pubdate timestamp;
#添加新列
alter table author add column annual double;
#删除列
alter table namedrop column annual;
#修改表名
alter table tb_e rename to book_author;
desc tb_e;
是一种限制,对某一个东西的限制。例如宪法规定了你违反的事情你是不能做的。这就是一种约束
数据库的约束,是对数据的安全性,完整性的保证
mysql里的约束
1. unique key | 唯一性约束,表示这个不能出现重复的值 |
---|---|
2. not null | 非空约束,表示这个字段的值不能为空例如:账户名、密码等 |
3. default | 默认值,用于给某一个字段设置默认值 |
4. foreign key 外键约束 | 一. 数据出现了大量的重复 ,二. 数据结构环混乱(耦合度高) |
5. primary key 主键约束 | 主键约束,从约束角度来看,主键等同于非空 + 唯一 |
案例:
#添加主键约束
alter table tb_e modify id int primary key;
#添加唯一约束,即不允许出现重复值
alter table tb_e modify name varchar(255) unique;
#建表并添加主键、外键约束
create table tb2
(
id int primary key auto_increment,
fid int,
name varchar(255) default 'anonymity' not null,
info text,
#建立外键约束,约束名为tb2_fk,
constraint tb2_fk foreign key(fid) references tb_e(id)
);
#删除外键约束
alter table tb2 drop foreign key tb2_fk;
#添加外键约束
alter table tb2 add foreign key(fid) references tb1(id);
又称为自增长列
含义:可以不用手动的插入值,系统提供默认的序列值
特点:
1、标识列不一定要与主键搭配,但要求是一个key(也可以是unique)
2、一个表只能有一个标识列
3、标识列的类型只能是数值型
4、标识列可以通过 SET auto_increment_increment=3;设置步长
可以通过 手动插入值,设置起始值
DROP TABLE IF EXISTS tab_identity;
CREATE TABLE tab_identity(
id INT ,
NAME FLOAT UNIQUE AUTO_INCREMENT,
seat INT
);
TRUNCATE TABLE tab_identity;
INSERT INTO tab_identity(id,NAME) VALUES(NULL,'john');
INSERT INTO tab_identity(NAME) VALUES('lucy');
SELECT * FROM tab_identity;
SHOW VARIABLES LIKE '%auto_increment%';
SET auto_increment_increment=3;