MySQL常用DOS命令
如何进入MySQL
mysql -u root -p
回车收到Enter password提示后,输入自己的密码后,命令行窗口会进入MySQL命令方式。
显示所有的数据库
进入MySQL命令方式成功后,在命令行窗口输入:show databases;
该命令可以显示MySQL已创建的所有数据库。
新增数据库
在命令行窗口输入:create database <创建的数据库的名称>;
创建完之后,可以使用show databases;
检查是否成功创建。
删除数据库
在命令行窗口输入:drop database <删除的数据库名称>;
删除完之后,可以使用show databases;
检查是否成功删除。
进入数据库
在命令行窗口输入:use <数据库名称>;
当命令行窗口输出:Database changed,说明打开成功。
显示当前数据库包含的数据表
在使用use <数据库名称>;
进入数据库之后。
在命令行窗口输入:show tables;
当命令行窗口显示Tables_in_<数据库名称>,说明显示完毕。
显示其他数据库包含数据表
在命令行窗口输入:show tables from <数据库名称>;
当命令行窗口显示Tables_in_<数据库名称>,说明显示完毕。
显示当前使用数据库名称
在命令行窗口输入:select database();
当命令行窗口显示database(),则他下一行的就是当前使用数据库的名称。
查看MySQL的状态
在命令行窗口输入:status;
注:MySQL默认端口号:3306。
MySQL目录结构
目录 | 功能 |
---|---|
bin | 存放可执行文件 |
docs | 存放文档和日志 |
include | 存放头文件 |
lib | 存放一系列库文件 |
share | 存放字符集,语言信息 |
COPYING | 版本许可协议 |
mydefault.ini | 数据库使用的配置文件 |
Data | 存放数据库里存的信息,数据库迁移时,拷贝这里面的文件夹 |
数据表结构
数据表
数据表是数据库最重要的组成部分之一,包括行和列。一个关系型数据库包括多个数据表。
如下图:
学号 | 姓名 | 性别 | 班级 |
---|---|---|---|
196******1 | 王明 | 男 | 2 |
196******7 | 李红 | 女 | 2 |
196******6 | 李明 | 男 | 1 |
196******4 | 王红 | 女 | 1 |
列
一列(数据元素)包含了相同意义和相同类型的一组数据。又称为属性或者字段。字段包括字段名和字段值两部分,字段名是在创建表格结构时定义的,字段值是在表格定义完成之后添加的。如上图,学号,姓名,性别,班级都是字段名,而下面对应的数据则是字段值。
冗余字段
某一字段属于一个数据表,但是同时出现在别的数据表。
坏处:影响数值一致性,会加大内存影响空间。
好处:使用空间换取时间,提高响应速度。
主键
主键是一个字段或者多个字段且不能为空,其值能唯一地标识表中的每一行,通过它可强制表的实体完整性。 RDBMS还规定一个数据表中只能包含一个主键。
外键
外键用于关联两个数据表,在同一数据库当中,有的表是有关联的,所以为了降低数据冗余,经常用一种数据单独存在一个表中,查询的时候向多个表获得数据。
表关系外键
1对1
比如员工的工资,一个雇员只有一个工资,而一个工资只能属于一个雇员。则雇员和工资之间具有一对一关系。
1对n
学生与班级,一个班级有多名学生,但是一名学生只有一个班级,则学生与班级是1对n关系。
学号 | 姓名 | 性别 | 班级 |
---|---|---|---|
196******1 | 王明 | 男 | 2 |
196******7 | 李红 | 女 | 2 |
196******6 | 李明 | 男 | 1 |
196******4 | 王红 | 女 | 1 |
班级 | 班主任 |
---|---|
1 | 王老师 |
2 | 李老师 |
n对m
学生与课程,一名学生可以选择多门课程,一门课程也有多名学生,而遇到这种情况需要把n对m关系转化成连个1对n关系。
学生表
学号 | 姓名 | 性别 |
---|---|---|
196******1 | 王明 | 男 |
196******7 | 李红 | 女 |
196******6 | 李明 | 男 |
196******4 | 王红 | 女 |
学生课程成绩表
学号 | 课程编号 | 成绩 |
---|---|---|
196******1 | 101 | 80 |
196******7 | 102 | 87 |
196******6 | 101 | 83 |
196******4 | 102 | 85 |
课程表
课程编号 | 课程名称 |
---|---|
101 | 计算机基础 |
102 | 程序设计 |
如增加学生课程成绩表,则学生表和学生课程成绩表之间是一对多关系,课程表和学生课程成绩表之间也是一对多的关系。
数据库表的设计 E-R图
什么是E-R图?
E-R图也称实体-联系图,提供了表示实体类型、属性和联系的方法,用来描述现实世界的概念模型。
为什么要使用E-R图?
利用E-R模型,更好的模拟现实。
实体
用矩形表示,矩形框内写明实体名。
实体是现实世界中各种事物的抽象,是数据的载体。关键在于一个实体能与另一个实体相区别,具有相同属性的实体具有相同的特征和性质。
属性
用椭圆形表示,并用无向边将其与相应的实体连接起来。
实体所具有的某一特性,一个实体可由若干个属性来刻画。属性不能脱离实体,属性是相对实体而言的。
关系
用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体连接起来,同时在无向边旁标上关系的类型(1:1,1 : n 或 m : n)。
比如老师给学生授课存在授课关系,学生选课存在选课关系。
设计原则
- 一张表描述一个实体或实体之间的关系。
- 避免表之间存在重复字段。
- 表中的字段是最原始的基本数据元素。
实例
实体包括:
- 货仓表:货仓号,面积,电话号码。
- 职工表:职工号、姓名、年龄、职称。
- 学生表:学号,姓名,年龄。
三范式
1.原子性
数据库表每一列都是不可再分的数据单元,则满足第一范式(1NF)。
2.非主属性依赖
如果一个关系满足1NF,并且除了主键以外的其他列完全依赖主键,则他满足第二范式(2NF)(第二范式要求每个表只描述一种事情)
3.传递性依赖
必须先满足2NF,并且要求表中的每一列只与主键直接相关而不是间接相关,(表中的每一列只能依赖于主键),则它满足第三范式(3NF)。