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错误原因 外键约束的名称不能重复

posted @ 2021-01-09 18:45  lucascube  阅读(119)  评论(0)    收藏  举报