数据库基础
1.数据库分类
2.配置文件位置
3.修改密码
4.破解数据库密码
5.慢日志:sql语句的执行时间
6.数据类型
7.导入导出数据
8.truncate和delete
9.事务:一组sql要么全部执行.要么全部不执行
10.mysql的架构
11.范式
12.索引:加速查询数据
1.分类
关系型数据库:
1.数据持久化存储
2.结构化存储:字段,表的形式
3.数据与表之间建立关联关系
非关系型数据库:
1.数据灵活存储
2.数据存储内存
2.配置文件
主配置文件
/etc/my.cnf
扩展配置文件
/etc/my.cnf.d/client.cnf:客户端配置文件
/etc/my.cnf.d/mysql-server.cnf:服务端配置文件
[mysqld]
datadir=/var/lib/mysql #存储地址
socket=/var/lib/mysql/mysql.sock #本机通信
log-error=/var/log/mysql/mysqld.log #日志
pid-file=/run/mysqld/mysqld.pid #pid
/etc/my.cnf.d/mysql-default-authentication-plugin.cnf:指定加密规则文件
3.修改密码
1.登录mysql
mysql -hlocalhost -P3306 -uroot -p;
-h:指定地址,-P:端口,-u:用户,默认有个root用户,-p:密码
2.设置和修改库密码
设置:
mysqladmin -uroot -p password 'tarena';
修改:
mysqladmin -uroot -p'tarena' password 'root';
4.破解数据库密码
1.配置文件/etc/my.cnf.d/mysql-server.cnf添加
skip_grant_tables
重启:
systemctl restart mysql
2.更新密码
update mysql.user
set authentication_string=""
where user="root" and host="localhost";
3.删除配置文件的:skip_grant_tables,重启服务
5.慢日志:sql语句的执行时间
show variables like "%slow_query_log":查询变量
slow_query_log:开启慢日志参数
long_query_time:10m, sql执行时间超过几秒被记录到日志
慢日志的配置:/etc/my.cnf.d/mysql-server.cnf
[mysqld]
slow_query_log = 1
slow_query_log_file = /path/to/your/slow_query.log
long_query_time = 2 # 设置慢查询的时间阈值,单位为秒
6.数据类型
(1)char(字符数),varchar(字符数)区别
char:定义多少存多少,空格补齐,最多存255个字符
varchar:定义多少存多少,最多存65532个字符
(2)整型
范围:数字的实际大小
unsigned:从正数开始计数
(3)float,double:分别为4,8个字节
(4)枚举类型分为,ENUM,SET
ENUM:适用单个值字段。:选择其中的一个值存入
SET:适用多个值的字段。:选择多个值存入
7.导入导出数据
1.查询mysql的系统变量
show variables like "secure_file_priv"; 默认目录是:/var/lib/mysql-files/
:secure_file_priv 是一个系统变量:MySQL 服务器将只允许SELECT ... INTO OUTFILE 和 LOAD_FILE() 这些操作中使用该目录下的文件。
2.修改配置文件/etc/my.cnf.d/mysql-server.cnf,更改默认目录路径
secure_file_priv=/myload
3.导入导出语法
导入:导入文件的列数要和表的字段相同
load data infile "/目录/文件" into table 库.表 \
fields terminated by "分隔符" \
lines terminated by "\n";
--fields:原始文件列的分隔符, lines:指定换行符
导出:
select 语句 into outfile "/目录/文件名"
fields terminated by "分隔符"
lines terminated by "\n";
8.truncate和delete
与 DELETE 语句不同,TRUNCATE 不会逐行删除数据,而是直接释放表所占用的空间并重置表。
TRUNCATE 会将表中的自增列重置为其起始值(通常是1)。
9.事务:一组sql要么全部执行.要么全部不执行
(1)默认自己提交commit,修改变量,改为不自动提交
SHOW VARIABLES LIKE 'autocommit';
使用SET autocommit = 0;或SET autocommit = OFF;来关闭自动提交模式。
使用SET autocommit = 1;或SET autocommit = ON;来开启自动提交模式。
(2)取消内存执行的代码,rollback回滚,回滚后数据不写入硬盘
性质: 原子,一致,隔离,持久
10.mysql的架构
客户端
连接池
管理工具
sql接口 解析器 查询优化器 缓存(图片资源)
存储引擎(内存数据写入硬盘)InnoDB,MyISAM,MEMORY
系统文件与日志
(2)查看存储引擎
show engines
(3)查看存储引擎的变量
show variables like "%engine%";
11.范式
(1)范式规范
1NF:字段不可再分
2NF:每个字段都直接依赖主键,否则拆分为多个表格
3NF:某个字段的值如果可以通过其它字段求出或确定,则不单独作为一个字段存储.
12.索引:加速查询数据
分类:
(1)作用效果:针对字段值
普通索引:index
唯一索引:unique
主键:primary key
(2)存储形式
聚簇索引:数据和索引在一起
非聚簇索引:
(3)数据结构
树形索引:btree,b+tree
哈希索引:hash
全文索引:fulltext
空间索引:
(4)作用字段
单列索引:作用单个字段
复合索引:作用多个字段,使用时从左往右匹配
数据库基础
1.数据库分类
2.配置文件位置
3.修改密码
4.破解数据库密码
5.慢日志:sql语句的执行时间
6.数据类型
7.导入导出数据
8.truncate和delete
9.事务:一组sql要么全部执行.要么全部不执行
10.mysql的架构
11.范式
12.索引:加速查询数据
1.分类
关系型数据库:
1.数据持久化存储
2.结构化存储:字段,表的形式
3.数据与表之间建立关联关系
非关系型数据库:
1.数据灵活存储
2.数据存储内存
2.配置文件
主配置文件
/etc/my.cnf
扩展配置文件
/etc/my.cnf.d/client.cnf:客户端配置文件
/etc/my.cnf.d/mysql-server.cnf:服务端配置文件
[mysqld]
datadir=/var/lib/mysql #存储地址
socket=/var/lib/mysql/mysql.sock #本机通信
log-error=/var/log/mysql/mysqld.log #日志
pid-file=/run/mysqld/mysqld.pid #pid
/etc/my.cnf.d/mysql-default-authentication-plugin.cnf:指定加密规则文件
3.修改密码
1.登录mysql
mysql -hlocalhost -P3306 -uroot -p;
-h:指定地址,-P:端口,-u:用户,默认有个root用户,-p:密码
2.设置和修改库密码
设置:
mysqladmin -uroot -p password 'tarena';
修改:
mysqladmin -uroot -p'tarena' password 'root';
4.破解数据库密码
1.配置文件/etc/my.cnf.d/mysql-server.cnf添加
skip_grant_tables
重启:
systemctl restart mysql
2.更新密码
update mysql.user
set authentication_string=""
where user="root" and host="localhost";
3.删除配置文件的:skip_grant_tables,重启服务
5.慢日志:sql语句的执行时间
show variables like "%slow_query_log":查询变量
slow_query_log:开启慢日志参数
long_query_time:10m, sql执行时间超过几秒被记录到日志
慢日志的配置:/etc/my.cnf.d/mysql-server.cnf
[mysqld]
slow_query_log = 1
slow_query_log_file = /path/to/your/slow_query.log
long_query_time = 2 # 设置慢查询的时间阈值,单位为秒
6.数据类型
(1)char(字符数),varchar(字符数)区别
char:定义多少存多少,空格补齐,最多存255个字符
varchar:定义多少存多少,最多存65532个字符
(2)整型
范围:数字的实际大小
unsigned:从正数开始计数
(3)float,double:分别为4,8个字节
(4)枚举类型分为,ENUM,SET
ENUM:适用单个值字段。:选择其中的一个值存入
SET:适用多个值的字段。:选择多个值存入
7.导入导出数据
1.查询mysql的系统变量
show variables like "secure_file_priv"; 默认目录是:/var/lib/mysql-files/
:secure_file_priv 是一个系统变量:MySQL 服务器将只允许SELECT ... INTO OUTFILE 和 LOAD_FILE() 这些操作中使用该目录下的文件。
2.修改配置文件/etc/my.cnf.d/mysql-server.cnf,更改默认目录路径
secure_file_priv=/myload
3.导入导出语法
导入:导入文件的列数要和表的字段相同
load data infile "/目录/文件" into table 库.表 \
fields terminated by "分隔符" \
lines terminated by "\n";
--fields:原始文件列的分隔符, lines:指定换行符
导出:
select 语句 into outfile "/目录/文件名"
fields terminated by "分隔符"
lines terminated by "\n";
8.truncate和delete
与 DELETE 语句不同,TRUNCATE 不会逐行删除数据,而是直接释放表所占用的空间并重置表。
TRUNCATE 会将表中的自增列重置为其起始值(通常是1)。
9.事务:一组sql要么全部执行.要么全部不执行
(1)默认自己提交commit,修改变量,改为不自动提交
SHOW VARIABLES LIKE 'autocommit';
使用SET autocommit = 0;或SET autocommit = OFF;来关闭自动提交模式。
使用SET autocommit = 1;或SET autocommit = ON;来开启自动提交模式。
(2)取消内存执行的代码,rollback回滚,回滚后数据不写入硬盘
性质: 原子,一致,隔离,持久
10.mysql的架构
客户端
连接池
管理工具
sql接口 解析器 查询优化器 缓存(图片资源)
存储引擎(内存数据写入硬盘)InnoDB,MyISAM,MEMORY
系统文件与日志
(2)查看存储引擎
show engines
(3)查看存储引擎的变量
show variables like "%engine%";
11.范式
(1)范式规范
1NF:字段不可再分
2NF:每个字段都直接依赖主键,否则拆分为多个表格
3NF:某个字段的值如果可以通过其它字段求出或确定,则不单独作为一个字段存储.
12.索引:加速查询数据
分类:
(1)作用效果:针对字段值
普通索引:index
唯一索引:unique
主键:primary key
(2)存储形式
聚簇索引:数据和索引在一起
非聚簇索引:
(3)数据结构
树形索引:btree,b+tree
哈希索引:hash
全文索引:fulltext
空间索引:
(4)作用字段
单列索引:作用单个字段
复合索引:作用多个字段,使用时从左往右匹配