-
子查询
select
子查询只能是单列;
子查询中有时会使用到完全限定列名,比如children.name_id
。 -
联结表
关系表的设计就是要把信息分解成多个表,一类数据一个表。各表通过某些共同的值相互关联(所以才叫关系数据库)
可伸缩:能够适应不断增加的工作而不失败。
联结直接在这里举一个例子说明吧
select customer.name,count(order.id)
from customer left join order
on customer.id=order.cust_id
group by customer.name;
上述语句的含义是:计算出所有顾客的订单数量,哪怕是没有订单的顾客,数量也需要返回,记为0。
left join
:即使在右表中没有关联的行,也要返回左表的所有数据。
- 组合查询
union
关键词进行组合查询,union
前后的select
语句,必须包含相同数量的列、表达式或聚集函数(对次序不做要求)。
利用union
,当前后的查询会返回相同的行时,会自动去重。如果不想去重,则可以应用union all
进行组合查询。
关于排序,order by
只能出现在最后一条select
语句中,但是会对所有的检索结果进行排序。
- 更新和删除行
如果想删除某一列的值,可设置它为NULL。
update table set line=NULL where number<2;
如果想删除表中的所有行,可以利用下方语法,因为它速度更快。
truncate table tablename
- 创建表
在创建表时,可以规定每一列是否允许不传值,如果必须传值,则需标识NOT NULL
, 如果可以没有值,则可以不做标识或者标识NULL
。
NULL
代表没有值,不是空字符串''
,也不是0。 - 存储过程
存储过程就是为了以后使用而保存的一条或一组sql语句。
存储过程的执行,EXECUTE
。它接受存储过程名以及需要传递的参数。
自我记录,有错误欢迎指正~
网友评论