回顾
1.什么是数据库管理系统
DBMS<br />1) 管理数据<br />2)存储数据
2.数据库管理系统的类型
RDBMS 关系型数据库
mysql Oracle mariadb mssql
Nosql (非关系型数据库)
redis mongdb memcache elasticsearch
3.关系型数据库非关系型数据库功能性能对比
rdbms:强大的查询功能,二级索引,数据的强一致性
nosql 灵活性,可扩展,性能,支持分布式
4.特点对比
nosql 不适用sql语句 想做老大 先做好老二 并不想取代关系型数据库 是关系型数据库的补充
rdbms 二维表 支持sql语句 安全
5.mysql 版本选型规则
MySQL 5.6 GA 6-12 个月 小版本是偶数版本
mysql 5.7 GA 6-12个月 小版本是偶数版本 5.7.17版本以上(MGR:自带的高可用功能)
6. MySQL安装方式
yum rpm
编译安装(源码安装)
7.MySQL服务器模型
cs结构
客户端工具MySQL MySQLadmin mysqldump
8.连接方式
tcp/ip
MySQL -uroot -p123 -h 127.0.0.1
socket
mysql -uroot -p (默认socket 速度快不需要建立三次握手
nysql -uroot -p123 -s
mysql -uroot -p123 -hlocalhost
9什么是mysql实例
一个进程+多个线程+预分配的内存结构
10 mysqld的程序结构
连接层
- 验证用户的合法性
- 提供两种连接方式
- 提供一个与sql层交互的专用线程
sql层:
- 接收连接层传来的消息
- 检查语法
- 检查语义
- 解释器
- 优化器
- 执行器
- 缓存
- 记录日志binlog
存储引擎层:
- 接收sql层传来的sql语句
- 与磁盘交互查找数据文件,结构化成表形式返回给sql层
- 提供一个与sql层交互的线程,
11.MySQL的逻辑结构
库+表<br />表: 元数据+真实数据行<br />元数据: 列+其他属性<br />列:列名+约束
12. MySQL的物理结构
最底层的数据文件
13.段 区 页
段: 一个表就是一个段,有多个 区构成
区: 由多个页构成
页:最小单位 16k
分区表 一个区构成一个段 就是一个分区表
14 MySQL中 用户是如和定义的
用户名@主机域
主机域:
192.168.50.113
192.168.50.%
192.168.%.%
192.168.0.0/255.255.255.0
%
db01
localhost
127.0.0.1
15 mysql 修改密码
update
set
mysqladmin
grant
16脱敏 单例级别授权
grant select(user) on mysql.user to dev@’% identified by ‘123’;
17.配置文件读取顺序
/etc/my.cnf
/etc/mysql/my.cnf
$basedir/my.cnf
defults-extra-file
~/.my.cnf
优先级: 5 4 3 2 1
18 优先级结论
命令行
default-file
配置文件
~/.my.cnf
defults-extra-file
$basedir/my.cnf
/etc/mysql/my.cnf。
/etc/my.cnf
cmak编译参数
19配置文件的作用
1.影响服务端的启动
2.影响客户端的连接
20多实例
多个进程+多个线程+多个 预分配内存结构
1.多个的端口
2.多个数据目录
3.多个socket文件
4.多个 日志文件
5多个server_id
第四章 MySQL客户端工具及SQL语句
1.客户端命令介绍
\h or help or ? 查看帮助文档\G 格式化查询数据\T or tee 记录日志基于session记录只记录当前会话窗口 用法:mysql> tee /var/log/myslq.log;\c 结束命令\s 查看状态\. or source 导入sql数据\u or use 使用数据库\q or exit or quit 退出mysql> system ifconfig MySQL中执行linux命令
2mysqladmin
help命令的使用mysql> helpmysql> help contentsmysql> help selectmysql> help createmysql> help create usermysql> help statusmysql> help showsource命令的使用#在MySQL中处理输入文件:#如果这些文件包含SQL语句则称为:#1.脚本文件#2.批处理文件mysql> SOURCE /data/mysql/world.sql#或者使用非交互式mysql</data/mysql/world.sqlmysqladmin 的使用#查看MySQL存活状态[root@db01 ~]# mysqladmin -uroot -p123 ping#查看MySQL状态信息[root@db01 ~]# mysqladmin -uroot -p123 status#关闭MySQL进程[root@db01 ~]# mysqladmin -uroot -p123 shutdown#查看MySQL参数[root@db01 ~]# mysqladmin -uroot -p123 variables#删除数据库[root@db01 ~]# mysqladmin -uroot -p123 drop DATABASE#创建数据库[root@db01 ~]# mysqladmin -uroot -p123 create DATABASE#重载授权表[root@db01 ~]# mysqladmin -uroot -p123 reload#刷新日志[root@db01 ~]# mysqladmin -uroot -p123 flush-log#刷新缓存主机[root@db01 ~]# mysqladmin -uroot -p123 reload#修改口令[root@db01 ~]# mysqladmin -uroot -p123 password
3接收用户的sql语句
1什么是sql
结构化的查询语句 5.7以后符合sql92严格模式
2.sql的种类
DDL:数据定义语言
库对象:库名字、库属性
开发规范:库名小写
创建库:create database/schema
sql 分类
ddl 数据定义语言
dcl 数据控制语言
dml 数据操作语言
dql 数据库查询语言
**
3.种类
数据类型
字符串类型
时间类型
#创建oldboy数据库mysql> create database demo;#查看库的创建语句mysql> show create database blog;修改blog属性字符集mysql> alter database blog charset gbk;#查看创建数据库语句帮助mysql> help create databaseutf-8 一个中文占用3个unicode 一个中文字符占4个char(3) 定长 输入a占用3个字符varcher(3) 变成 a占用一个字符tinyint -128-128 255mysql> create table student3(id int not null primary key auto_increment,name varchar(10) not null,age tinyint unsigned,sex enum('f','m','bgx') not null default 'bgx',date datetime not null default NOW());not null: 非空primary key: 主键 唯一+非空unique key: 唯一键 唯一auto_increment:自增unsigned: 非负default: 默认值
4.DDL 数据控制语言
ddl对数据库级别的操作
创建库create database test;查看库的创建语句show create database test;删除库drop database test;修改库属性alter database test charset gbk;
ddl对表操作
创建表create table test(id int);create table student34(id int,name varchar(10),age tinyint,enum('男','女','不男不女'));//id int 数字类型//tinyint -128~-128=255//enum 只能选择括号定义的//char(3) 定长的 给多少全都占完//varchar(10) 边长 给多少占多少 10个字符,一个英文占一个字符,一个中文在unicode里边占4个字符,在utf8里边占3个字符。
