学习笔记:MySQL基本命令

一、数据库面试的核心:SQL、索引、事务处理和优化、存储引擎。
二、数据库(分关系型数据库和非关系型数据库)
在这里插入图片描述
三.数据库相比较文件,存储数据有哪些优势??
在这里插入图片描述
四、MySQL学习
1.MySQL:RDBMS 关系型数据库管理系统,管理不同的关系型数据库,在数据库里面管理的是二维表。
2.相关命令
(1)列出数据库、创建数据库、删除数据库以及使用数据库
在这里插入图片描述
(2)列出表、表的结构以及查看表创建的具体SQL语句
在这里插入图片描述
(3)创建表
在这里插入图片描述
(4)完整性约束条件
在这里插入图片描述
(5)增操作
在这里插入图片描述
(6)查操作
在这里插入图片描述
(7)删除操作
delete from user where sex=‘man’;
(8)更新操作
在这里插入图片描述
3.表------》实体 ------实体之间的关系有以下三种
(1)一对一的关系,如:用户和通讯地址
在这里插入图片描述
(2)一对多的关系,如:班级和学生
在这里插入图片描述
(3)多对多的关系,一定要产生一个中间表,来存储它们之间的关系。如:把购买过商品的用户信息打印出来。

在这里插入图片描述
在这里插入图片描述
思考:多表查询怎么才能避免使用中间表??见下~~
4.多表的联合查询有以下方式(以把购买过商品的用户信息打印出来):
(1)带 in 的子查询
在这里插入图片描述
问题:为什么多表的联合查询不建议使用带 in 的子查询?
答:带 in 的子查询,内部sql查询完成后,需要产生一张临时表,把结果进行存储,然后供外部的sql进行再次的查询操作,整个sql语句结束,这张临时表还要进行释放。
在这里插入图片描述
(2)内连接查询
select a.*from user a inner join user_order b on a.id = b.userid where b.state=‘已付款’;
在这里插入图片描述
这里的inner、on是条件。

(3)外连接查询(分左连接查询和右连接查询)
在这里插入图片描述
<1>左连接查询–》
输出所有未产生过订单的用户信息命令:
select a.* ,b.ordereid from user a left join user_order b on a.id=b.userid where b.orderid is NULL;
输出所有产生过订单的用户信息命令:
select a.* ,b.ordereid from user a left join user_order b on a.id=b.userid where b.orderid is not NULL;
<2>右连接查询
输出未被用户下单的订单信息命令:
select a.* ,b.ordereid from user a right join user_order b on a.id=b.userid where b.orderid is NULL;

发布了8 篇原创文章 · 获赞 13 · 访问量 287

猜你喜欢

转载自blog.csdn.net/weixin_44737923/article/details/100887068