一.MySQL的介绍
why
数据在内存中容易丢失
数据在文件中,不便于操作
what
使用完整的管理系统统一管理,易于查询
where
凡是需要持久化存储数据的地方
术语:
DB
数据库(database):存储数据的“仓库”。它保存了一系列有组织的数据。
DBMS
数据库管理系统(Database Management System)。数据库是通过DBMS创建和操作的容器
SQL
结构化查询语言(Structure Query Language):专门用来与数据库通信的语言
二. MySQL的安装
安装过程:
三. MySQL的账号管理
mysql中有默认的表(自带的),其中有四个表很重要:
1、user表(用户层权限)
注:Y说明他拥有所有表的查找权限,如果为N就需要到下一级db表中进行权限分配了。其中的%是通配符,代表任意的意思。
2、db表(数据库层权限)
注:来到db表之后会匹配Host,User然后会根据Db字段对应的表进行权限分配
其中Y代表这拥有此项权限,N则代表没有此项权限。
3、tables_priv表(表层权限)
注:通过Host,Db,User,Table来进行定位到表层的一个权限分配。它只有Table_priv和Column_priv两个字段来记录权限。
4,columns_priv
通过Host,Db,User,Table,Column来进行定位到字段层的一个权限分配,只有Column_priv来记录权限。
四.建库
1.新建数据库
按照以下选择后确认:
注:CHARACTER SET utf8mb4
创建数据库时,可以指定数据库的字符集(gbk、utf8……)避免中文乱码的问题。如果不指定,MySQL 会给顶一个默认值字符集(在 mysql.ini 配置文件中)。
连接:
2.创建新用户及设置密码:123456
SELECT * FROM `user`
#关注用户名,密码
select host,user,authentication_string from user;
#创建新用户李四,张三(是没有密码的)
create user ls;
create user zs;
#修改李四的密码
ALTER user zs IDENTIFIED WITH mysql_native_password by '123456'
展示:
权限代码展示:
SELECT * FROM `user`
#关注用户名,密码
select host,user,authentication_string from user;
#创建新用户李四,张三(是没有密码的)
create user ls;
create user zs;
#删除
DROP user zs;
#修改李四的密码
ALTER user zs IDENTIFIED WITH mysql_native_password by '123456'
#语法:grant privileges on databasename,tablename to username@'host';
#将mysql数据库评论表tables_priv 的权限给ls
GRANT PRIVILEGES on aaa.t_mvc_book to ls@'%';
GRANT DELETE on mysql.tables_priv to ls@'%';
GRANT INSERT on mysql.tables_priv to ls@'%';
GRANT SELECT on mysql.tables_priv to ls@'%';
--一次性赋予某一张表的所有权限
GRANT all on mysql.tables_priv to ls@'%';
--一次性赋予某一个库的所有表牵线
GRANT all on mysql.* to ls@'%';
#语法:REVOKE PRIVILEGES on database_name.tablename from Username@'host';
revoke all on mysql.tables_priv from ls@'%';
--刷新权限
FLUSH PRIVILEGES
--查看给你ls用户赋予权限的sql
show GRANTS for 'ls'@'%';
#赋予ls有登录mysql的权限
GRANT USAGE ON *.* TO `ls`@`%`
#赋予ls有访问'mysql'库里面所有的权限
GRANT ALL PRIVILEGES ON `mysql`.* TO `ls`@`%`
#赋予'ls'评论表里面增加删除查询的权限
GRANT ALL PRIVILEGES ON `mysql`.`db` TO `ls`@`%`
#赋予`tables_priv`的权限
GRANT ALL PRIVILEGES ON `mysql`.`tables_priv` TO `ls`@`%`
五、四大引擎(主要两个)
1、InnoDB存储引擎
InnoDB是事务型数据库的首选引擎,支持事务安全表(ACID),支持行锁定和外键,上图也看到了,InnoDB是默认的MySQL引擎。
2、MyISAM存储引擎:
MyISAM基于ISAM存储引擎,并对其进行扩展。它是在Web、数据仓储和其他应用环境下最常使用的存储引擎之一。MyISAM拥有较高的插入、查询速度,但不支持事物。
六.黑窗口连接数据库操作
第一步:win+R打开运行输入cmd进入黑窗口
1.本地连接:
mysql -u root -p 回车
密码:123456
2.远程连接:远程连接,必须经过授权
mysql -h ip -u 账号 -p回车
mysql -h 127.0.0.1 -u root -p
root :超级管理员,权限最高,默认存在
第二步:查看数据库
1.查看所有数据库:show databases;
2.查看创建好的数据库:show create database 数据库名字;
注:(这里\G是为了让结果更好地展示)