数据库的账号管理
一组导图了解账号管理的重要性
创建账号的语句 这个是给全部权限的账号
GRANT ALL PRIVILEGES ON *.* TO 'xiaoxi'@'%' IDENTIFIED BY '123' WITH GRANT OPTION;
给本地一个账号localhost开通权限
GRANT ALL PRIVILEGES ON *.* TO 'localhost'@'localhost' IDENTIFIED BY '123' WITH GRANT OPTION;
账号密码的修改
update user set authentication_string=password('123456') where user='zhangsan';
只给账号查询修改权限,并且只能操作db_student数据库
GRANT SELECT,UPDATE
ON db_student.*
TO 'gg'@'localhost'
IDENTIFIED BY 'gg123';
四大引擎
数据库引擎是用于存储、处理和保护数据的核心服务。利用数据库引擎可控制访问权限并快速处理事务,从而满足企业内大多数需要处理大量数据的应用程序的要求。 使用数据库引擎创建用于联机事务处理或联机分析处理数据的关系数据库。这包括创建用于存储数据的表和用于查看、管理和保护数据安全的数据库对象(如索引、视图和存储过程)
InnoDB存储引擎
InnoDB是事务型数据库的首选引擎,支持事务安全表(ACID),支持行锁定和外键,上图也看到了,InnoDB是默认的MySQL引擎。
InnoDB是为处理巨大数据量的最大性能设计。它的CPU效率可能是任何其他基于磁盘的关系型数据库引擎锁不能匹敌的
InnoDB支持外键完整性约束,存储表中的数据时,每张表的存储都按主键顺序存放,如果没有显示在表定义时指定主键,InnoDB会为每一行生成一个6字节的ROWID,并以此作为主键
InnoDB被用在众多需要高性能的大型数据库站点上
MyISAM存储引擎
MEMORY存储引擎
Archive存储引擎
1.常用引擎
InnoDB存储引擎和MyISAM存储引擎比较常用。
2.区别
对于一些项目中的配置有些不需要涉及到增删改,就用不到事务,这个时候就可以选择MYISAM引擎它查询速度快。
DDT
DDT又名数据定义语言
创建和管理表的作用
创建:create
修改:alter
删除:drop
#库的创建
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;
常见的约束
六大约束
1、NOT NULL :非空,用于保证该字段的值不能为空。例如学生表的学生姓名及学号等等。
2、DEFAULT:默认值,用于保证该字段有默认值。例如学生表的学生性别
3、PRIMARY KEY:主键,用于保证该字段的值具有唯一性并且非空。例如学生表的学生学号等。
4、UNIQUE:唯一,用于保证该字段的值具有唯一性,可以为空。例如注册用户的手机号,身份证号等。
5、CHECK:检查约束(MySql不支持),检查字段的值是否为指定的值。
6、FOREIGN KEY:外键,用于限制两个表的关系,用于保证该字段的值必须来自于主表的关联列的值,在从表添加外键约束,用于引用主表中某些的值。例如学生表的专业编号
标识列
又称为自增长列
含义:可以不用手动的插入值,系统提供默认的序列值