数据库相关知识总结

concat可以拼接字段:

比如select concat(name,':',salary) from  .....

当然拼接的字段我们也可以起个别名:

select concat(name,':',salary)  as NameSalary from  .....

string的空格处理:

链接:https://www.cnblogs.com/redb52/p/3245507.html

返回不带 前导空格 ( LTrim)、后续空格 ( RTrim) 或前导与后续空格 ( Trim) 的 字符串副本。
LTrim(string)
RTrim(string)
Trim(string)
string 参数是任意有效的字符串表达式。如果  string 参数中包含  Null,则返回  Null
说明
下面的示例利用  LTrimRTrim, 和  Trim 函数分别用来除去 字符串开始的空格、尾部空格、 开始和尾部空格:
MyVar = LTrim(" vbscript "),MyVar 包含 "vbscript "              ---返回不带前空格
MyVar = RTrim(" vbscript "),MyVar 包含 " vbscript"              ---返回不带后空格
MyVar = Trim(" vbscript "),MyVar 包含 "vbscript"                 ---返回前后不带空格
 

三种连接:

 
注意join操作不是先求笛卡尔积再筛选!!
 
三种方法:Nested Loops,Hash Join 和 Sort Merge Join

链接:https://www.cnblogs.com/xqzt/p/4469673.html

1. 自然连接(natural join)

自然连接是一种特殊的等值连接,他要求两个关系表中进行连接的必须是相同的属性列(名字相同),无须添加连接条件,并且在结果中消除重复的属性列。

 Select * from table1 natural join table2 

结果:
在这里插入图片描述

2. 内连接(inner join)

内连接基本与自然连接相同,不同之处在于自然连接的是同名属性列的连接,而内连接则不要求两属性列同名,可以用using或on来指定某两列字段相同的连接条件。

 Select * from table1 inner join table2 on table1.A=table2.E 

结果:
在这里插入图片描述
自然连接时某些属性值不同则会导致这些元组会被舍弃,那如何保存这些会被丢失的信息呢,外连接就解决了相应的问题。外连接分为左外连接、右外连接、全外连接。外连接必须用using或on指定连接条件。

3.1左外连接(left outer join,outer可以省略)

左外连接是在两表进行自然连接,只把左表要舍弃的保留在结果集中,右表对应的列上填null。

  Select * from table1 left outer join table2 on table1.C=table2.C 

结果:

在这里插入图片描述

3.2右外连接(rignt outer join,outer可以省略)

右外连接是在两表进行自然连接,只把右表要舍弃的保留在结果集中,左表对应的列上填null。

 Select * from table1 right outer join table2 on table1.C=table2.C 

结果:
在这里插入图片描述

多个select语句结果进行union操作时,会自动去掉重复行。如果想保留重复行可以用union all。

数据库三范式:

第一范式:属性不能分割,比如你不能定义一个个人信息的属性,因为显然应该至少分成名字、住址、学校等等。

第二范式:首先满足第一范式的前提下,整个表要有主键,别的属性依赖于主键。

第三范式:首先满足第二范式的前提下,表的非主属性互相之间不能有传递依赖。举个栗子:主键是学生学号,另外有两个属性,该学生的班主任名字和班号。显然班主任名字依赖于班号,那么班主任和班号就应该存在另一张表里。

猜你喜欢

转载自www.cnblogs.com/FdWzy/p/12535934.html
今日推荐