关系型数据库和 MySQL
数据库基础
概念
- 数据持久化:将数据保存到可持久存储的介质中
- 关系模型:用二维表(行/列)组织数据,基于集合论和谓词逻辑
- SQL:结构化查询语言,分为 DDL/DML/DCL/TCL
ER 模型
- 实体(矩形):现实世界中可区分的对象
- 属性(椭圆):实体的特征
- 关系(菱形):实体间的联系
- 重数:1:1 / 1:N / M:N
常见数据库产品
| 产品 | 特点 |
|---|---|
| Oracle | 功能最全面,商业数据库老大 |
| MySQL | 开源免费,Web应用最广泛 |
| PostgreSQL | 功能强大,开源BSD许可 |
| SQL Server | Microsoft产品,Windows生态 |
| DB2 | IBM产品,适合企业级 |
MySQL 被 Oracle 收购后,社区分支为 MariaDB
MySQL 安装
Linux(CentOS)
# 下载 rpm 包
wget https://dev.mysql.com/.../mysql-5.7.rpm-bundle.tar
tar -xvf mysql-5.7.rpm-bundle.tar
# 移除冲突的 MariaDB
yum erase -y mariadb-libs
# 按顺序安装
rpm -ivh mysql-community-common-*.rpm
rpm -ivh mysql-community-libs-*.rpm
rpm -ivh mysql-community-client-*.rpm
rpm -ivh mysql-community-server-*.rpm
# 启动服务
systemctl start mysqld
# 查看初始密码
grep password /var/log/mysqld.log
# 登录并修改密码
mysql -u root -p
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
Windows
从官网下载 MySQL Installer 安装包,图形化引导安装即可。
配置文件
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
port=3306
character-set-server=utf8
MySQL 基本操作
连接与状态
mysql -u root -p -- 连接
show databases; -- 查看所有数据库
use 数据库名; -- 切换数据库
show tables; -- 查看所有表
status; -- 服务器状态
exit / quit; -- 退出
帮助命令
? contents -- 帮助目录
? show -- 查看show命令帮助
? data types -- 数据类型帮助
常用命令
connect 数据库名; -- 切换数据库
source /path/to/file.sql -- 执行SQL文件
prompt \u> -- 修改提示符
tee /path/to/log.txt -- 记录输出
delimiter $$ -- 修改语句分隔符
\! clear -- 执行系统命令
总结
- 关系数据库:用二维表表示数据,SQL 是统一操作语言
- MySQL:开源、性能好,是 Web 开发首选
- 安装后配置:启动服务、获取初始密码、修改root密码
- 基本操作:
show/use/source/status