concat可以拼接字段:
比如select concat(name,':',salary) from .....
当然拼接的字段我们也可以起个别名:
select concat(name,':',salary) as NameSalary from .....
string的空格处理:
链接:https://www.cnblogs.com/redb52/p/3245507.html
MyVar = RTrim(" vbscript "),MyVar 包含 " vbscript" ---返回不带后空格
三种连接:
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。
数据库三范式:
第一范式:属性不能分割,比如你不能定义一个个人信息的属性,因为显然应该至少分成名字、住址、学校等等。
第二范式:首先满足第一范式的前提下,整个表要有主键,别的属性依赖于主键。
第三范式:首先满足第二范式的前提下,表的非主属性互相之间不能有传递依赖。举个栗子:主键是学生学号,另外有两个属性,该学生的班主任名字和班号。显然班主任名字依赖于班号,那么班主任和班号就应该存在另一张表里。