2021年1月9日总结:子查询,联合查询,数据库设计
子查询就是将一个查询的结果,作为另一个查询的条件。

union是将两个结果硬拼在一起,字段以第一个表为准.

第一个查询的结果数量和第二个要相等,
否则会报错:
The used SELECT statements have a different number of columns。
===========
多对多关系上可以加属性,比如成绩表是学生和课程多对多关系上的属性。
===============
数据库设计的三大范式:
第一范式:确保每列保持原子性
第二范式:确保表中的每列都和主键相关
第三范式:确保每列都和主键列直接相关,而不是间接相关
==============
规范化写sql是提升查询性能的最好方法
===========================
ER图可以根据需求分析展示数据库各实体的关系,是设计数据库不可或缺的步骤,
在ER图中,实体用矩形表示,菱形表示关系,椭圆表示属性
以下是根据需求画ER图实例演示:

所以需求分析一定要看仔细,每句话都影响到表的设计

select now() from dual;
dual用于凑语法结构,是个虚拟表
mysql中select可以不加from,oracle中必须有from
limit 后面两个参数不能是表达式
========================
count()里可以加个distinct,是统计不重复的值个数
SELECT COUNT(DISTINCT depart) FROM teacher;
=======================
mysql不区分字符和字符串,用单引号和双引号都可以
===========================
%和_通配符,只适用于like
======================
order by 一般放在查询语句最后面,limit比order by还要靠后
=============
Can't create table‘..’ (errno:150) 检查sc表的外键字段的类型以及大小是否和s表c表完全一致,一般是unsigned
mysql errno121错误原因 外键约束的名称不能重复

浙公网安备 33010602011771号