1.什么是数据库
DB.DataBase 数据库:
依照某种数据模型进行组织并存放到存储器的数据集合
DBMS.DataBase Management System – 数据库管理系统:
用来操纵和管理数据库的大型服务 软件
DBS.DataBase System – 数据库系统:
即 DB+DBMS ,指带有数据库并整合了数据库管理软件的计算机系统 指带有数据库并整合了数据库管理软件的计算机系统
2.主流数据库服务软件有哪些?开源且跨平台的数据库软件有哪些?
主流数据库服务软件有:
甲骨文公司 Oracle
IBM DB2
微软 SQL Server
美国 Sybase 公司 Sybase
加州大学伯克利分校计算机系开发的 PostgreSQL
开源且跨平台的数据库软件有:
MySQL、PostgreSQL:开源且跨平台
Oracle、DB2:跨平台不开源
SQL Server:不跨平台不开源
Sybase:跨平台不开源
3.MySQL 的特点及应用
主要特点
– 适用于中小规模、关系型数据库系统
– 支持 Linux/Unix 、 Windows 等多种操作系统
– 使用 C 和 C++ 编写,指带有数据库并整合了数据库管理软件的计算机系统 可移植性强
– 通过 API 支持 Python/Java/Perl/PHP 等语言
典型应用环境
– LAMP 平台,指带有数据库并整合了数据库管理软件的计算机系统 与 Apache HTTP Server 组合
– LNMP 平台,指带有数据库并整合了数据库管理软件的计算机系统 与 Nginx 组合
4.mysql 服务相关参数有什么?
文件
说明
/etc/my.cnf
主配置文件
/var/lib/mysql
数据库目录
默认端口号
进程名
传输协议
进程所有者
3306
mysqld
TCP
mysql
进程所属组
mysql
5.mysql 操作指令和注意事项?
操作指令类型
– MySQL 指令:环境切换、看状态、退出等控制
– SQL 指令:数据库定义 / 查询 / 操纵 / 授权语句
基本注意事项
– 操作指令不区分大小写(密码、变量值除外)
– 每条 SQL 指令以 ; 结束或分隔
– 不支持 Tab 键自动补齐
– \c 可废弃当前编写错的操作指令
6.库管理命令都有什么?
// 显示已有的库
// 切换库
– Show databases;
– Use 库名 ;
– Select database(); // 显示当前所在的库
– Create database 库名 ; // 创建新库
– Show tables; // 显示已有的表
– Drop database 库名; // 删除库
7.常见的信息种类
• 数值型:体重、身高、成绩、工资
• 字符型:姓名、工作单位、通信住址
• 枚举型:兴趣爱好、性别
• 日期时间型:出生日期、注册时间
8.(数值型)关于整数型字段
– 使用 UNSIGNED 修饰时,指带有数据库并整合了数据库管理软件的计算机系统 对应的字段只保存正数
– 数值不够指定宽度时,指带有数据库并整合了数据库管理软件的计算机系统 在左边填空格补位
– 宽度仅是显示宽度,指带有数据库并整合了数据库管理软件的计算机系统 存数值的大小由类型决定
– 使用关键字 ZEROFILL 时,指带有数据库并整合了数据库管理软件的计算机系统 填 0 代替空格补位
– 数值超出范围时,指带有数据库并整合了数据库管理软件的计算机系统 报错。
9.(数值型)关于浮点型字段
– 定义格式: float( 总宽度 , 小数位数 )
– 当字段值与类型不匹配时,指带有数据库并整合了数据库管理软件的计算机系统 字段值作为 0 处理
– 数值超出范围时,指带有数据库并整合了数据库管理软件的计算机系统 仅保存最大 / 最小值
10.字符类型
定长:
•
char( 字符数 )
– 最大长度 255 字符
– 不够指定字符数时在右边用空格补齐
– 字符数断超出时,指带有数据库并整合了数据库管理软件的计算机系统 无法写入数据。
•
变长:
varchar( 字符数 )
– 按数据实际大小分配存储空间
– 字符数断超出时,指带有数据库并整合了数据库管理软件的计算机系统 无法写入数据。
大文本类型:
•
– 字符数大于 65535 存储时使用
text/blob
11.日期时间类型
日期时间,指带有数据库并整合了数据库管理软件的计算机系统
•
DATETIME
– 占用 8 个字节
– 范围: 1000-01-01 00:00:00.000000 ~ 9999-12-31 23:59:59.999999
•
日期时间,指带有数据库并整合了数据库管理软件的计算机系统
TIMESTAMP
– 占用 4 个字节
– 范围: 1970-01-01 00:00:00.000000 ~ 2038-01-19 03:14:07.999999
日期,指带有数据库并整合了数据库管理软件的计算机系统
•
DATE
– 占用 4 个字节
– 范围: 0001-01-01 ~ 9999-12-31
•
年份,指带有数据库并整合了数据库管理软件的计算机系统
YEAR
– 占用 1 个字节
– 范围: 1901~2155
•
时间,指带有数据库并整合了数据库管理软件的计算机系统
TIME
– 占用 3 个字节
– 格式: HH:MM:SS
12.时间函数
类型
now()
year()
sleep(N)
curdate()
curtime()
month()
date()
time()
用途
获取系统当前日期和时间
执行时动态获得系统日期时间
休眠 N 秒
获取当前的系统日期
获取当前的系统时刻
获取指定时间中的月份
获取指定时间中的日期
获取指定时间中的时刻
13.枚举类型
从给定值集合中选择单个值,指带有数据库并整合了数据库管理软件的计算机系统
•
ENUM
– 定义格式: enum( 值 1, 值 2, 值 N)
从给定值集合中选择一个或多个值,指带有数据库并整合了数据库管理软件的计算机系统
•
– 定义格式: set( 值 1, 值 2, 值 N)
SET
14 约束条件
• Null 允许为空,指带有数据库并整合了数据库管理软件的计算机系统 默认设置
• NOT NULL 不允许为空 • Key 索引类型
• Default 设置默认值,指带有数据库并整合了数据库管理软件的计算机系统 缺省为 NULL
15 修改表结构的基本用法
– ALTER TABLE 表名 执行动作 ;
Add 添加字段
Modify 修改字段类型
Change 修改字段名
Drop 删除字段
Rename 修改表名
16.索引是什么?
– 索引是对记录集的多个字段进行排序的方法。
– 类似于书的目录
– 索引类型包括 :Btree 、 B+tree 、 hash
17.索引优缺点?
索引优点
•
– 通过创建唯一性索引,指带有数据库并整合了数据库管理软件的计算机系统 可以保证数据库表中每一行数 据的唯一性
– 可以加快数据的检索速度
•
索引缺点
– 当对表中的数据进行增加、删除和修改的时候,指带有数据库并整合了数据库管理软件的计算机系统 索引 也要动态的维护,指带有数据库并整合了数据库管理软件的计算机系统 降低
了数据的维护速度
– 索引需要占物理空间
18.键值类型有几种,指带有数据库并整合了数据库管理软件的计算机系统 分别是什么?
• INDEX :普通索引
• UNIQUE :唯一索引
• FULLTEXT :全文索引
• PRIMARY KEY :主键
• FOREIGN KEY :外键
19.INDEX 普通索引说明?
– 一个表中可以有多个 INDEX 字段
– 字段的值允许有重复,指带有数据库并整合了数据库管理软件的计算机系统 切可以赋 NULL 值
– 经常把做查询条件的字段设置为 INDEX 字段
– INDEX 字段的 KEY 标志是 MUL
20.primary key 主键注意事项
– 一个表中只能有一个 primary key 字段
– 对应的字段值不允许有重复,指带有数据库并整合了数据库管理软件的计算机系统 且不允许赋 NULL 值
– 如果有多个字段都作为 PRIMARY KEY ,指带有数据库并整合了数据库管理软件的计算机系统 称为复合主 键,指带有数据库并整合了数据库管理软件的计算机系统 必须一起创建。
– 主键字段的 KEY 标志是 PRI
– 通常与 AUTO_INCREMENT 连用
– 经常把表中能够唯一标识记录的字段设置为主键字段
21.foreign key 外键 什么是外键?
– 让当前表字段的值在另一个表中字段值的范围内选择 。
•
使用外键的条件
– 表的存储引擎必须是 innodb
– 字段类型要一致
– 被参照字段必须要是索引类型的一种 (primary key)
22.简述 MySQL 体系结构的组成,指带有数据库并整合了数据库管理软件的计算机系统 并描述每个组成部分的作用。
主要包括 8 个部分:
连接池:进程数限制、内存检查、缓存检查等。
SQL 接口:用户通过 sql 客户端发过来的命令,由 sql 接口接收,sql 操作(DML 数
据操作语言:查询、修改、升级数据等;DDL 数据定义语言:创建一个新的数据库、新
的索引、删除一个用户等;存储过程、视图触发器。
分析器: 分析查询语句 事务处理 对象访问权限。
优化器: 优化访问路径 、 生成执行树。
缓存和缓冲:保存 sql 查询结果。
存储引擎:用于管理存储的文件系统,将逻辑结构转换为物理结构的程序;不同
的存储引擎有不同的功能和存储方式。
管理工具:备份,恢复,安全,移植,集群等,这些工具一般和文件系统打交
道,不需要和 mysql-server 打交道,它们对应的都是命令。
物理存储设备(文件系统)。
23.MySQL 存储引擎
作为可插拔式的组件提供
•
– MySQL 服务软件自带的功能程序,指带有数据库并整合了数据库管理软件的计算机系统 处理表的处理器
– 不同的存储引擎有不同的功能和数据存储方式
•
默认的存储引擎
– MySQL 5.0/5.1 ---> MyISAM
– MySQL 5.5/5.6 ---> InnoDB
24.Myisam 存储引擎的主要特点
– 支持表级锁
– 不支持事务、事务回滚、外键
•
相关的表文件
– 表名 .frm 、 – 表名 .MYI – 表名 .MYD
25.InnoDB 存储引擎主要特点
– 支持行级锁定
– 支持事务、事务回滚、支持外键
•
相关的表文件
– xxx.frm 、 xxx.ibd
– ibdata1
– ib_logfile0 – ib_logfile1
26.MySQL 锁机制
锁粒度
•
– 表级锁:一次直接对整张表进行加锁。
– 行级锁:只锁定某一行。
– 页级锁:对整个页面( MySQL 管理数据的基本存储单 位)进行加锁。
•
锁类型
– 读锁(共享锁):支持并发读。
– 写锁(互斥锁、排它锁):是独占锁,指带有数据库并整合了数据库管理软件的计算机系统 上锁期间其他 线程不能读表或写表。
27.数据库事务的事务特性 (ACID)
• Atomic :原子性
– 事务的整个操作是一个整体,指带有数据库并整合了数据库管理软件的计算机系统 不可分割,指带有数据库并整合了数据库管理软件的计算机系统 要么全部成 功,指带有数据库并整合了数据库管理软件的计算机系统 要么全部失败。
• Consistency : 一致性
– 事务操作的前后,指带有数据库并整合了数据库管理软件的计算机系统 表中的记录没有变化。
• Isolation :隔离性
– 事务操作是相互隔离不受影响的。
• Durability :持久性
– 数据一旦提交,指带有数据库并整合了数据库管理软件的计算机系统 不可改变,指带有数据库并整合了数据库管理软件的计算机系统 永久改变表数据
28.数据导入基本用法和注意事项
基本用法
•
– LOAD DATA INFILE “ 目录名 / 文件名” INTO TABLE 表名 FIELDS
TERMINATED BY “ 分隔符” LINES TERMINATED BY “\n”;
注意事项
•
– 字段分隔符要与文件内的一致
– 指定导入文件的绝对路径
– 导入数据的表字段类型要与文件字段匹配
– 禁用 SElinux
29.数据导出基本用法和注意事项
– SELECT 查询 .. .. INTO OUTFILE “ 目录名 / 文件名” FIELDS TERMINATED BY
“ 分隔符” LINES TERMINATED BY “\n”;
注意事项
•
– 导出的内容由 SQL 查询语句决定
– 禁用 SElinux
30.增加表记录的格式
格式 1 :
给所有字段赋值
– INSERT INTO 表名 VALUES
( 字段 1 值,指带有数据库并整合了数据库管理软件的计算机系统 .. .. ,指带有数据库并整合了数据库管理软件的计算机系统 字段 N 值 ) ,指带有数据库并整合了数据库管理软件的计算机系统
( 字段 1 值,指带有数据库并整合了数据库管理软件的计算机系统 .. .. ,指带有数据库并整合了数据库管理软件的计算机系统 字段 N 值 ) ,指带有数据库并整合了数据库管理软件的计算机系统
( 字段 1 值,指带有数据库并整合了数据库管理软件的计算机系统 .. .. ,指带有数据库并整合了数据库管理软件的计算机系统 字段 N 值 ) ,指带有数据库并整合了数据库管理软件的计算机系统 … … ;
格式 2
给指定字段赋值
– INSERT INTO 表名 ( 字段 1,.. .., 字段 N) VALUES
( 字段 1 值,指带有数据库并整合了数据库管理软件的计算机系统 字段 2 值,指带有数据库并整合了数据库管理软件的计算机系统 字段 N 值 ) ,指带有数据库并整合了数据库管理软件的计算机系统
( 字段 1 值,指带有数据库并整合了数据库管理软件的计算机系统 字段 2 值,指带有数据库并整合了数据库管理软件的计算机系统 字段 N 值 ) ,指带有数据库并整合了数据库管理软件的计算机系统
( 字段 1 值,指带有数据库并整合了数据库管理软件的计算机系统 字段 2 值,指带有数据库并整合了数据库管理软件的计算机系统 字段 N 值 ) ,指带有数据库并整合了数据库管理软件的计算机系统
.. .. ;
注意事项
字段值要与字段类型相匹配
对于字符类型的字段,指带有数据库并整合了数据库管理软件的计算机系统 要用双或单引号括起来
依次给所有字段赋值时,指带有数据库并整合了数据库管理软件的计算机系统 字段名可以省略
只给一部分字段赋值时,指带有数据库并整合了数据库管理软件的计算机系统 必须明确写出对应的字段名称
31.查询表记录
语法格式
格式
•
1
ELECT 字段 1, .. .., 字段 N FROM 表名 ;
•
格式
2
SELECT 字段 1, .. .., 字段 N FROM 表名 WHERE 条件表达式 ;
•
注意事项
使用 * 可匹配所有字段
指定表名时,指带有数据库并整合了数据库管理软件的计算机系统 可采用 库名 . 表名 的形式
32.更新表记录
语法格式
格式
•
更新表内的所有记录
– UPDATE 表名
SET 字段 1= 字段 1 值 , 字段 2= 字段 2 值 , 字段 N= 字段 N 值 ;
1 ,指带有数据库并整合了数据库管理软件的计算机系统
格式 2 ,指带有数据库并整合了数据库管理软件的计算机系统
只更新符合条件的部分记录
– UPDATE 表名 SET 字段 1= 字段 1 值 , 字段 2= 字段 2 值 , 字段 N= 字段 N 值
; WHERE 条件表达式 ;
•
注意事项
字段值要与字段类型相匹配
对于字符类型的字段,指带有数据库并整合了数据库管理软件的计算机系统 要用双或单引号括起来
若不使用 WHERE 限定条件,指带有数据库并整合了数据库管理软件的计算机系统 会更新所有记录
限定条件时,指带有数据库并整合了数据库管理软件的计算机系统 只更新匹配条件的记录
34.删除表记录
格式
•
仅删除符合条件的记录
– DELETE FROM 表名 WHERE 条件表达式 ;
1 ,指带有数据库并整合了数据库管理软件的计算机系统
格式
•
– DELETE FROM 表名 ;
2, 删除所有的表记录
35.基本查询条件
数值比较
= 等于 > 、 >= 大于、大于或等于 < 、 <= 小于、小于或等于 != 不等于
字符比较
= 相等
!= 不相等
IS NULL 匹配空
IS NOT NULL 非空
逻辑比较
多个判断条件时使用
•
OR 逻辑或
AND 逻辑与
! 逻辑非
( ) 提高优先级
范围内匹配 / 去重显示
匹配范围内的任意一个值即可
•
In ( 值列表 ) 在…里…
Not in ( 值列表 ) 不在…里…
Between 数字 1 and 数字 2 在…之间…
DISTINCT 字段名 去重显示
36.聚集函数都有哪些?
• MySQL 内置数据统计函数
– avg( 字段名 ) : 求平均值
– sum( 字段名 ) :求和
– min( 字段名 ) : 统计最小值
– max( 字段名 ) :统计最大值
– count( 字段名 ) :统计个数
37.常见的 MySQL 管理工具有哪些?
mysql 命令行 跨平台 MySQL 官方 bundle 包自 带
MySQL-Workbench 图形 跨平台 MySQL 官方提供
MySQL-Front 图形 Windows 开源,指带有数据库并整合了数据库管理软件的计算机系统 轻量级客户端软件
phpMyAdmin 浏览器 跨平台 开源,指带有数据库并整合了数据库管理软件的计算机系统 需 LAMP 平台
Navicat 图形 Windows 专业、功能强大,指带有数据库并整合了数据库管理软件的计算机系统 商业版
38.安装 PhpMyAdmin 基本思路是什么?
1. 安装 httpd 、 mysql 、 php-mysql 及相关包
2. 启动 httpd 服务程序