一般一台服务器上运行一个 MySQL 实例,一个 MySQL 实例可以同时管理多个数据库,数据库里面可以有多个数据表,基本单位就是表。
主键是用于唯一标识表中每一条记录的字段。通常是一个自增的整数(例如id)。外键用来在两张表之间建立关系。它确保外键字段的值必须是另一张表的主键值,维护数据的参照完整性。
假设我们有以下三张表:
- 学生表(student),包含学生的基本信息
- 课程表(course),包含课程信息
- 成绩表(score),包含学生的考试成绩
我们可以这样设计这三张表:
- 学生表(student):
id | name | age | gender |
---|---|---|---|
1 | 张三 | 20 | 男 |
2 | 李四 | 21 | 女 |
3 | 王五 | 19 | 男 |
- id:主键,唯一标识每个学生
- name:学生姓名
- age:学生年龄
- gender:学生性别
- 课程表(course):
id | name | credit |
---|---|---|
1 | 数学 | 4 |
2 | 英语 | 3 |
3 | 物理 | 4 |
- id:主键,唯一标识每门课程
- name:课程名称
- credit:课程学分
- 成绩表(score):
id | student_id | course_id | score |
---|---|---|---|
1 | 1 | 1 | 85 |
2 | 1 | 2 | 90 |
3 | 2 | 1 | 78 |
4 | 3 | 2 | 88 |
- id:主键,唯一标识每条成绩记录
- student_id:外键,引用学生表的id字段
- course_id:外键,引用课程表的id字段
- score:考试成绩
通过在成绩表中设置student_id和course_id两个外键,我们可以确保每条成绩记录都关联到一个有效的学生和一个有效的课程。这样就形成了学生、课程和成绩三张表之间的关系。
MySQL 是一种 关系型数据库管理系统(RDBMS)
关系模型本质上就是若干个存储数据的二维表,可以把它们看作很多Excel表。
表的每一行称为记录(Record),记录是一个逻辑意义上的数据。
表的每一列称为字段(Column),同一个表的每一行记录都拥有相同的若干字段。
在关系数据库中,一张表中的每一行数据被称为一条记录。一条记录就是由多个字段组成的。
MySQL 是一种关系型数据库管理系统(RDBMS),其核心概念是基于关系模型。关系模型本质上由若干个**二维表(表格)**组成,每一个表都是行(记录)和列(字段)的组合。
1. 二维表(Table)
- 在关系数据库中,数据以表格形式存储,每个表由若干行和列组成。可以把一个表看作类似于 Excel 表格中的一页。
- 每个表都有一个表名,用于唯一标识它。
2. 记录(Record/Row)
- 记录也叫元组(Tuple),是表中的一行数据。每一行都是一条完整的记录,记录中的数据代表一个具体的对象或实体。
- 例如,在用户信息表中,一行记录可以是某个用户的姓名、年龄、邮箱等具体信息的组合。
3. 字段(Column)
- 表的每一列被称为字段,也称为属性(Attribute)。每个字段对应表中记录的一个特定属性或数据项。
- 同一张表中的所有记录都拥有相同的字段,这确保表的结构一致性。例如,一个“用户信息表”可能包含“姓名”、“年龄”、“邮箱”等字段。
4. 关系模型中的表关联
- 在关系数据库中,表与表之间可以通过某些字段关联起来,这些字段通常称为外键(Foreign Key)。外键用于在两张表之间建立逻辑联系,形成所谓的“关系”。
例子:
假设有一个叫做 students
的表,包含以下字段:
id
:学生的唯一标识name
:学生的姓名age
:学生的年龄email
:学生的邮箱
每一行都是一条记录,比如:
id | name | age | |
---|---|---|---|
1 | Alice | 20 | [email protected] |
2 | Bob | 22 | [email protected] |
3 | Charlie | 19 | [email protected] |
每一列代表一个字段,比如 name
列包含了学生的名字,每一行是一个学生的记录。
连接MySQL服务器:
mysql -u your_username -p
查询 MySQL 数据库中有多少个用户:
SELECT COUNT(*) FROM mysql.user;
查看所有用户的列表:
SELECT User, Host FROM mysql.user;
在Windows系统上,可以使用以下命令来清屏:
\! cls
查看当前登录到 MySQL 的用户:
SELECT USER();
修改用户的密码并立即生效:
ALTER USER 'your_username'@'your_host' IDENTIFIED BY 'your_new_password';
FLUSH PRIVILEGES;
列出 MySQL 实例中的所有数据库:
SHOW DATABASES;
创建数据库:
CREATE DATABASE your_database_name;
进入特定的数据库:
USE database_name;
查看你当前所在的数据库:
SELECT DATABASE();
处理命令不完整导致的情况:
一个是直接取消,
\c
一个是补全命令:
MySQL 提示符显示
->
,这是表示它在等待你输入完成。
查询当前数据库有哪些数据表:
SHOW TABLES;
创建一个表格:
CREATE TABLE table_name (
column1_name column1_type column1_constraints,
column2_name column2_type column2_constraints,
...
table_constraints
);
删除表格:
DROP TABLE table_name;
使用DBeaver创建数据库:
以下是使用 DBeaver 创建 MySQL 数据库的步骤:
步骤
-
安装 DBeaver:
如果你还没有安装 DBeaver,可以从 DBeaver 官方网站 下载并安装适合你操作系统的版本。 -
连接到 MySQL 服务器:
- 打开 DBeaver。
- 点击“数据库”菜单,选择“新建连接”。
- 在弹出的窗口中选择“MySQL”,然后点击“下一步”。
- 在连接设置页面,填写 MySQL 服务器的相关信息,包括主机名、端口、数据库名称、用户名和密码。
- 点击“测试连接”按钮,确保连接设置正确。
- 点击“完成”按钮,完成连接。
-
创建数据库:
- 在 DBeaver 的左侧导航栏中,展开你刚刚创建的 MySQL 连接。
- 右键点击“数据库”节点,选择“创建新数据库”。
- 在弹出的窗口中,输入数据库的名称,例如
mydatabase
。 - 可以选择设置字符集和排序规则,例如选择
utf8
和utf8_general_ci
。 - 点击“确定”按钮,完成数据库的创建。
示例
假设你要创建一个名为 mydatabase
的数据库,可以使用以下步骤:
-
打开 DBeaver:
- 启动 DBeaver 应用程序。
-
连接到 MySQL 服务器:
- 点击“数据库”菜单,选择“新建连接”。
- 选择“MySQL”,点击“下一步”。
- 填写连接信息:
- 主机名:
localhost
- 端口:
3306
- 数据库名称:留空
- 用户名:
your_username
- 密码:
your_password
- 主机名:
- 点击“测试连接”按钮,确保连接成功。
- 点击“完成”按钮,完成连接。
-
创建数据库:
- 在左侧导航栏中,展开你刚刚创建的 MySQL 连接。
- 右键点击“数据库”节点,选择“创建新数据库”。
- 输入数据库名称:
company
。 - 选择默认的字符集:
utf8mb4
。 - 选择默认的排序规则:
utf8mb4_0900_ai_ci
。 - 点击“确定”按钮,完成数据库的创建。
验证
创建数据库后,你可以在 DBeaver 的左侧导航栏中看到新创建的数据库 。你也可以通过执行以下 SQL 语句来验证数据库是否创建成功:
SHOW DATABASES;
创建列:
在数据单元格右键某行选择编辑,可以手动添加行或者删除行