MySQL_练习Day02

一.其它常用函数
练习表格与Day01相同。
在这里插入图片描述
1.year(date),返回date中的年份。与month(date),day(date),hour(date),minute(date),second(date)等函数原理相同。想获取某种时间就讲谁写在开头。
例如,查询emp表中所有1993年到1995年出生的员工,显示姓名和生日。
<1>直接使用字符串形式判断。
在这里插入图片描述
<2>采用year(date)函数判断。
在这里插入图片描述
2.sysdate()/now(),获取当前日期(年月日时分秒)。
例如,查询emp表中本月过生日的所有员工。
在这里插入图片描述
例如,查询emp表中下个月过生日的所有员工。
在这里插入图片描述
3.concat(s1,s2),将s1,s2等多个字符串合并为一个字符串。concat_ws(x,s1,s2)同concat函数,但是每个字符穿之间要加上x,x是分隔符。
在这里插入图片描述
在这里插入图片描述
二.MySQL的字段约束
1.主键约束:如果为一个列添加了主键约束,那么这个列就是主键,**主键的特点是—唯一且不能为空。**作为一个唯一标识,唯一的表示一条表记录,作用类似于人的身份证号,可以唯一的表示一个人一样。例如将id设置为主键。
在这里插入图片描述
如果主键是数值类型,为了方便插入主键,可以设置一个主键自增策略。设置了主键自增策略的主键,可以在插入记录时,不给id赋值,只需要设置一个null值,数据库自动为id分配一个值,这样既可以保障id时唯一的,也省去了设置id的麻烦。
在这里插入图片描述
2.非空约束:如果为一个列添加了非空约束,那么这个列的值就 不能为空,但是可以重复
在这里插入图片描述
3.唯一约束:如果为一个列添加了唯一约束,那么这个列的值就必须是唯一的,不能重复,但是可以为空
在这里插入图片描述
4.外键约束:用于通知数据库两张表数据之间对应关系的这样一个列。这样数据库就会帮我们维护两张表中数据之间的关系。
在这里插入图片描述
在这里插入图片描述
如果是要表示两张表的数据之间存在对应关系,只需要在其中的一张表中添加一个列,保存领一张表的主键,就可以保存两张数据表之间的关系。但是添加的这个列(dept_id)对于数据库来说是一个普通列,数据库不会知道两张表存在任何关系,因此数据库也不会帮我们维护这层关系。如果将dept_id设置为外键,那么就等于同志数据库,部门表和员工表之间存在着对应关系,dept_id列中的数据要参考部门的主键,数据库一旦知道部门和员工表之间存在关系,就会帮我们维护这层关系。

三.表关系
1.一对多/多对一关系。
对于一对多或者多对一的关系,可以在多的一方添加一列用于保存另一方的主键作为外键,从而保存两张表数据之间的对应关系。
在这里插入图片描述
2.一对一关系。
对于一对一的关系,可以在任意一方添加列保存另一方的主键作为外键,来保存两张表数据之间的对应关系。
在这里插入图片描述
3.多对多关系。
对于多对多关系,不能再任何一方添加列来保存关系。只能够添加一个第三方的表,在第三方表中分别保存两张表的主键,以此来保存两张表中数据之间的对应关系。
在这里插入图片描述
四.多表查询
引入一个新数据库db30。
在这里插入图片描述
1.查询部门和部门对应的员工信息。
在这里插入图片描述
上面的查询还可以被以下写法替换,即","变为inner join,where变为on。
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_41858806/article/details/113927661
今日推荐