初始数据库及SQL语句
数据库的表可以理解为一本书,数据库管理系统就是一个书架。
MySQL工作流程
从上往下数第一、二个虚线框使SERVER层,第三个虚线框是存储引擎,第四个是物理层:文件中(存储设备)。
- 接收客户请求,授权认证等
- 尝试请求转发给分析器
a)查询缓存判断是否有请求所需要的数据
b)一系列处理之后交给优化器 - 优化器:存储过程、触发器等等
- 最终交给存储引擎去存储或查询数据,不同存储引擎存储和提取数据的方式不同。
安装数据库: mariadb
安装软件包
[root@test ~]# yum install mariadb-server
启动服务:
[root@test ~]# systemctl start mariadb
初始化操作:
mysql_secure_installation
连接数据库服务:mysql命令
mysql常用参数:
-h: hostnameIP
-P: Port 默认是3306端口
-u:登录用户
-p:登录用户密码
-e:登陆之后所要执行的命令
-D:指定登录到哪个数据库
[root@test ~]# mysql -uroot -h127.0.0.1 -p
基本SQL语句:
select user(); #当前用户以什么形式登录
set passwd=passwd(‘xxxx’); #设置当前用户登陆密码
show databases; #查看有哪些数据库
use mysql; #使用mysql数据库
show tables; #查看数据库有哪些表
create user #创建用户
MariaDB [mysql]> help create user;
Name: 'CREATE USER'
Description:
Syntax:
CREATE USER user_specification
[, user_specification] ...
user_specification:
user
[
IDENTIFIED BY [PASSWORD] 'password'
| IDENTIFIED WITH auth_plugin [AS 'auth_string']
]
create user zhangsan identified by 'zhangsan';
授权:grant privileges; 可以通过:
MariaDB [mysql]> show privileges;
查看有哪些权限。
示例:
CREATE USER ‘jeffrey’@‘localhost’ IDENTIFIED BY ‘mypass’;
GRANT ALL ON db1.* TO ‘jeffrey’@‘localhost’; # ALL代表所有权限;
GRANT SELECT ON db2.invoice TO ‘jeffrey’@'localhost # jeffrey本地登录之后拥有对db2数据库下的invoice有查询权限
grant <权限> on 库.表 to ‘user’@‘host’;
查询指定用户的权限:
show grants for zhangsan;
++ ‘jeffrey’@‘localhost’ ‘jeffrey’@’[具体地址|域名|网段|%]’
192.168.10.10 --> node1
192.168.10.% -->
刷新当前权限表:flush privileges;
创建用户和授权结合成一条语句操作:
grant [权限] on dbname.table to ‘user’@‘networok|host…’ identified by “passwd”;
MariaDB [mysql]> grant all privileges on *.* to 'lisi'@'localhost' identified by '000000';
SQL语言主要用于存取数据、查询数据、更新数据和管理关系数据库系统,SQL语言由IBM开发。SQL语言分为3种类型:
DDL语句 数据库定义语言: 数据库、表、视图、索引、存储过程,例如CREATE DROP ALTER
DML语句 数据库操纵语言: 插入数据INSERT、删除数据DELETE、更新数据UPDATE、查询数据SELECT
DCL语句 数据库控制语言: 例如控制用户的访问权限GRANT、REVOKE