MySQL 数据库知识点

什么是数据库
依照某种数据模型进行组织并存放到存储器的数据集合

MySQL的特点及应用
主要特点
– 适用于中小规模、关系型数据库系统
– 支持 Linux/Unix 、 Windows 等多种操作系统
– 使用 C 和 C++ 编写,可移植性强
– 通过 API 支持 Python/Java/Perl/PHP 等语言

mysql 服务的相关参数有什么?
文件 说明
/etc/my.cnf 主配置文件
/var/lib/mysql 数据库目录
默认端口号 3306
进程名 mysqld
传输协议 TCP
进程所有者 mysql
进程所属组 mysql

mysql操作指令和注意事项?
操作指令类型
– MySQL 指令:环境切换、看状态、退出等控制
– SQL 指令:数据库定义 / 查询 / 操纵 / 授权语句
基本注意事项
– 操作指令不区分大小写(密码、变量值除外)
– 每条 SQL 指令以 ; 结束或分隔
– 不支持 Tab 键自动补齐
– \c 可废弃当前编写错的操作指令

库管理命令都有什么?
– Show databases; // 显示已有的库
– Use 库名 ; // 切换库
– Select database(); // 显示当前所在的库
– Create database 库名 ; // 创建新库
– Show tables; // 显示已有的表
– Drop database 库名; // 删除库

数值类型
tinyint 微小整数
smallint 小整数
mediumint 中整数
int 大整数
bigint 极大整数
float 单精度浮点数(M,D)
double 双精度浮点数(M,D)

时间函数
类型 用途
now() 获取系统当前日期和时间
year() 执行时动态获得系统日期时间
sleep(N) 休眠 N 秒
curdate 获取当前的日期时间
curtime() 获取当前的系统时刻
month() 获取指定时间中的月份
date() 获取指定时间中的日期
time() 获取指定时间中的时刻

枚举类型
• 从给定值集合中选择单个值, ENUM
– 定义格式: enum( 值 1, 值 2, 值 N)
• 从给定值集合中选择一个或多个值, SET
– 定义格式: set( 值 1, 值 2, 值 N)

约束条件
• Null 允许为空,默认设置
• NOT NULL 不允许为空 • Key 索引类型
• Default 设置默认值,缺省为 NULL

修改表结构的基本用法
– ALTER TABLE 表名 执行动作 ;
Add 添加字段
Modify 修改字段类型
Change 修改字段名
Drop 删除字段
Rename 修改表名

索引优缺点?
• 索引优点
– 通过创建唯一性索引,可以保证数据库表中每一行数 据的唯一性
– 可以加快数据的检索速度
• 索引缺点
– 当对表中的数据进行增加、删除和修改的时候,索引 也要动态的维护,降低了数据的维护
速度
– 索引需要占物理空间

键值类型有几种,分别是什么?
• INDEX :普通索引
• UNIQUE :唯一索引
• FULLTEXT :全文索引
• PRIMARY KEY :主键
• FOREIGN KEY :外键

简述 MySQL 体系结构的组成,并描述每个组成部分的作用
主要包括 8 个部分:
连接池:进程数限制、内存检查、缓存检查等。
SQL 接口:用户通过 sql 客户端发过来的命令,由 sql 接口接收,sql 操作(DML 数据操作语
言:查询、修改、升级数据等;DDL 数据定义语言:创建一个新的数据库、新的索引、删除一
个用户等;存储过程、视图触发器。
分析器: 分析查询语句 事务处理 对象访问权限。
优化器: 优化访问路径 、 生成执行树。
缓存和缓冲:保存 sql 查询结果。
存储引擎:用于管理存储的文件系统,将逻辑结构转换为物理结构的程序;不同的存储引擎有
不同的功能和存储方式。
管理工具:备份,恢复,安全,移植,集群等,这些工具一般和文件系统打交道,不需要和
mysql-server 打交道,它们对应的都是命令。
物理存储设备(文件系统)。

MySQL 存储引擎
• 作为可插拔式的组件提供
– MySQL 服务软件自带的功能程序,处理表的处理器
– 不同的存储引擎有不同的功能和数据存储方式
• 默认的存储引擎
– MySQL 5.0/5.1 —> MyISAM
– MySQL 5.5/5.6 —> InnoDB

Myusam存储引擎的主要特点
– 支持表级锁
– 不支持事务、事务回滚、外键
• 相关的表文件
– 表名 .frm 、 – 表名 .MYI – 表名 .MYD

InnoDB 存储引擎主要特点
– 支持行级锁定
– 支持事务、事务回滚、支持外键• 相关的表文件
– xxx.frm 、 xxx.ibd
– ibdata1
– ib_logfile0 – ib_logfile1

MySQL 锁机制
• 锁粒度
– 表级锁:一次直接对整张表进行加锁。
– 行级锁:只锁定某一行。
– 页级锁:对整个页面( MySQL 管理数据的基本存储单 位)进行加锁。
• 锁类型
– 读锁(共享锁):支持并发读。
– 写锁(互斥锁、排它锁):是独占锁,上锁期间其他 线程不能读表或写表

数据导入基本用法和注意事项
• 基本用法
– LOAD DATA INFILE “ 目录名 / 文件名” INTO TABLE 表名 FIELDS TERMINATED BY “ 分
隔符” LINES TERMINATED BY “\n”;
• 注意事项
– 字段分隔符要与文件内的一致
– 指定导入文件的绝对路径
– 导入数据的表字段类型要与文件字段匹配
– 禁用 SElinux

数据导出基本用法和注意事项
– SELECT 查询 … … INTO OUTFILE “ 目录名 / 文件名” FIELDS TERMINATED BY “ 分隔
符” LINES TERMINATED BY “\n”;
•注意事项
– 导出的内容由 SQL 查询语句决定
– 禁用 SElinux

增加表记录的格式
格式 1 :
给所有字段赋值– INSERT INTO 表名
( 字段 1 值, … …
( 字段 1 值, … …
( 字段 1 值, … …
VALUES
,字段 N 值 ) ,
,字段 N 值 ) ,
,字段 N 值 ) , … … ;
格式 2
给指定字段赋值
– INSERT INTO 表名 ( 字段 1,… …, 字段 N) VALUES
( 字段 1 值,字段 2 值,字段 N 值 ) ,
( 字段 1 值,字段 2 值,字段 N 值 ) ,
( 字段 1 值,字段 2 值,字段 N 值 ) ,
… … ;
注意事项
字段值要与字段类型相匹配
对于字符类型的字段,要用双或单引号括起来
依次给所有字段赋值时,字段名可以省略
只给一部分字段赋值时,必须明确写出对应的字段名称

查询表记录
语法格式
• 格式 1
ELECT 字段 1, … …, 字段 N FROM 表名 ;
• 格式 2
SELECT 字段 1, … …, 字段 N FROM 表名 WHERE 条件表达式 ;
• 注意事项
使用 * 可匹配所有字段
指定表名时,可采用 库名 . 表名 的形式

更新表记录
语法格式
• 格式 1 ,
更新表内的所有记录
– UPDATE 表名
SET 字段 1= 字段 1 值 , 字段 2= 字段 2 值 , 字段 N= 字段 N 值 ;
格式 2 ,
只更新符合条件的部分记录
– UPDATE 表名 SET 字段 1= 字段 1 值 , 字段 2= 字段 2 值 , 字段 N= 字段 N 值 ;
WHERE 条件表达式 ;

注意事项
字段值要与字段类型相匹配
对于字符类型的字段,要用双或单引号括起来若不使用 WHERE 限定条件,会更新所有记录
限定条件时,只更新匹配条件的记录

删除表记录
• 格式 1 ,
仅删除符合条件的记录
– DELETE FROM 表名 WHERE 条件表达式 ;
• 格式 2, 删除所有的表记录
– DELETE FROM 表名 ;

基本查询条件
数值比较
= 等于 > 、 >= 大于、大于或等于 < 、 <= 小于、小于或等于 != 不等于
字符比较
= 相等
!= 不相等
IS NULL 匹配空
IS NOT NULL 非空
逻辑比较
• 多个判断条件时使用
OR 逻辑或
AND 逻辑与
! 逻辑非
( ) 提高优先级
范围内匹配 / 去重显示
• 匹配范围内的任意一个值即可
In ( 值列表 ) 在…里…
Not in ( 值列表 ) 不在…里…
Between 数字 1 and 数字 2 在…之间…
DISTINCT 字段名 去重显示

聚集函数都有哪些?
• MySQL 内置数据统计函数
– avg( 字段名 ) : 求平均值
– sum( 字段名 ) :求和
– min( 字段名 ) : 统计最小值
– max( 字段名 ) :统计最大值
– count( 字段名 ) :统计个数

常见的 MySQL 管理工具有哪些?
mysql 命令行 跨平台 MySQL 官方 bundle 包自 带
MySQL-Workbench 图形 跨平台 MySQL 官方提供
MySQL-Front 图形 Windows 开源,轻量级客户端软件
phpMyAdmin 浏览器 跨平台 开源,需 LAMP 平台
Navicat 图形 Windows 专业、功能强大,商业版

数据库密码忘记了怎么办?
停止 MySQL 服务程序
跳过授权表启动 MySQL 服务程序 skip-grant-tables
重新设置 root 密码 (更新 user 表记录)
以正常方式重启 MySQL 服务程序

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值