2023.05.24培训
task1:ER的用法、对应数据库的设计
task2:熟悉数据库基本操作、使用Navicat
目录
一、E-R图是什么
二、E-R图的组成要素
三、E-R图绘制
四、E-R图实例
4.1E-R图转换到关系模式
4.2具体数据表设计
五、Mysql基础操作
5.1操作数据库
5.1.1命令行远程连接数据库
5.1.2查看所有数据库
5.1.3选择需要操作的库
5.1.4退出数据库
5.2操作数据表
5.2.1查看表中的数据
6.1连接数据库
6.2操作数据库
6.2.1选择数据库
6.3操作数据表
6.3.1查看数据表
6.3.2添加数据表
6.3.3添加数据
6.4数据查询
6.4.1查询全部数据
6.4.2条件查询
6.4.3分组查询
6.4.4排序查询
6.4.5修改数据
6.4.6删除数据
代码合集
一、E-R图是什么
E-R图也称为实体-联系图,提供了表示实体类型,属性和联系的方法,用来描述现实世界的概念模型。简单来说,就是将现实中的业务场景的属性和它们之间的联系用图绘制出来。
二、E-R图的组成要素
1)实体(entity),现实世界客观存在,并区别于其他对象的“事件”或“物体”,比如产品。
2)属性(attribute),每个实体的特征,比如产品的名称、分类。
3)主键(key),能唯一区分这个实体的属性,比如产品ID。
4)联系(relationship),实体与实体之间的联系,有一对一,一对多,多对多三种,比如产品和销售员。
三、E-R图绘制
四、E-R图实例
4.1E-R图转换到关系模式
一个订单可能会有一个或多个产品,同时一个产品也可能会有相应的多个订单。
因此,订单和产品两个实体是多对多的联系,即n-m。
订单详情作为中间关系将二者联系起来。
4.2具体数据表设计
根据E-R图可以很容易的得到数据表
抽取订单和产品两个实体分别作一张表,额外加订单详情作一张表
抽取对应属性作为字段,得到如下设计:
订单表(order):订单编码(order_id), 日期(date), 单据状态(document_status)
产品表(product):产品编码(product_id), 产品名(name), 产品分类(type)
订单详情表(order_details):订单编码(order_id), 产品编码(product_id), 数量(number), 金额(price)
五、Mysql基础操作
5.1操作数据库
5.1.1命令行远程连接数据库
mysql -h 127.0.0.1 -uroot --port=3306 -p
5.1.2查看所有数据库
show databases;
5.1.3选择需要操作的库
use summerytempdb; (选择其中名为summerytempdb的数据库)
show tables; (查看该数据库中所有的表)
5.1.4退出数据库
exit; 或者 quit;
5.2操作数据表
5.2.1查看表中的数据
select *from t_lyh_app; (查看表中所有数据)
(建表等操作在Navicat等数据库可视化软件上更方便)
六、使用Navicat操作数据库
6.1连接数据库
左上角点击连接,选择Mysql
输入连接名,对应的IP,用户名和密码,点击确定
连接成功后下方就是数据库
6.2操作数据库
直接点击数据库或是新建查询使用sql语句进行操作
6.2.1选择数据库
use summerytempdb;
6.3操作数据表
6.3.1查看数据表
show tables;
6.3.2添加数据表
根据4.2 添加三个数据表
6.3.3添加数据
在表中添加相应数据
单值添加 (末尾有';')
INSERT INTO t_ykx_order VALUE(2023052501,'2023-05-25 11:10:20','transport');
批量添加(使用values,中间用','隔开)
INSERT INTO t_ykx_order VALUES(2023052502,'2023-05-24 01:19:33','transport'),
(2023052503,'2023-01-25 10:23:40','transport'),(2023052504,'2023-05-11 14:10:20','complete'),
(2023052505,'2023-02-25 04:11:21','complete'),(2023052506,'2023-03-22 17:10:50','transport'),
(2023052507,'2023-03-25 13:08:38','transport'),(2023052508,'2023-02-22 23:19:31','complete');
剩下的表也同样插入数据
INSERT INTO t_ykx_product VALUES(1,'book1','book'),(2,'book2','book'),(3,'book3','book'),
(4,'book4','book'),(5,'pen1','pen'),(6,'pen2','pen'),(7,'pen3','pen'),(8,'cup1','cup'),
(9,'cup2','cup'),(10,'cup3','cup');INSERT INTO t_ykx_order_details VALUES(2023052501,3,10,99),(2023052503,7,4,88),(2023052505,10,1,9.9),
(2023052502,4,3,66),(2023052508,8,7,520),(2023052507,2,22,1024);
6.4数据查询
6.4.1查询全部数据
SELECT *FROM t_ykx_order;
6.4.2条件查询
SELECT *FROM t_ykx_order WHERE order_id>2023052504;
6.4.3分组查询
SELECT TYPE,COUNT(*)FROM t_ykx_product GROUP BY TYPE;
6.4.4排序查询
SELECT * FROM t_ykx_order_details ORDER BY price DESC; (加上DESC表示降序,不加默认是升序)
6.4.5修改数据
UPDATE t_ykx_product SET TYPE = 'BOOK' WHERE TYPE = 'book';
6.4.6删除数据
DELETE FROM t_ykx_order WHERE order_id = 2023052501;
代码合集
USE summerytempdb;
SHOW TABLES;
INSERT INTO t_ykx_order VALUE(2023052501,'2023-05-25 11:10:20','transport');
INSERT INTO t_ykx_order VALUES(2023052502,'2023-05-24 01:19:33','transport'),
(2023052503,'2023-01-25 10:23:40','transport'),(2023052504,'2023-05-11 14:10:20','complete'),
(2023052505,'2023-02-25 04:11:21','complete'),(2023052506,'2023-03-22 17:10:50','transport'),
(2023052507,'2023-03-25 13:08:38','transport'),(2023052508,'2023-02-22 23:19:31','complete');
INSERT INTO t_ykx_product VALUES(1,'book1','book'),(2,'book2','book'),(3,'book3','book'),
(4,'book4','book'),(5,'pen1','pen'),(6,'pen2','pen'),(7,'pen3','pen'),(8,'cup1','cup'),
(9,'cup2','cup'),(10,'cup3','cup');
INSERT INTO t_ykx_order_details VALUES(2023052501,3,10,99),(2023052503,7,4,88),(2023052505,10,1,9.9),
(2023052502,4,3,66),(2023052508,8,7,520),(2023052507,2,22,1024);
SELECT *FROM t_ykx_order;
SELECT *FROM t_ykx_order WHERE order_id>2023052504;
SELECT TYPE,COUNT(*)FROM t_ykx_product GROUP BY TYPE;
SELECT * FROM t_ykx_order_details ORDER BY price DESC;
UPDATE t_ykx_product SET TYPE = 'BOOK' WHERE TYPE = 'book';
DELETE FROM t_ykx_order WHERE order_id = 2023052501;