-
count(*)
与count(column)
的区别count(*)
返回的是该表的总行数,而count(column)
返回的是column这一列中值不为NULL的行数。 -
where
子句和having
子句的异同where子句和having子句均用于过滤结果。二者所用的操作符共用。
where子句过滤的是行,属于分组前过滤,而having过滤的是分组,属于分组后过滤,与group by子句配合使用。
where和having可以同时使用。 -
使用
union
进行组合查询union
关键词将两个查询结果进行纵向拼接,相同的结果会只保留其中一条。若重复内容需要均保留,则使用union all
即可。
使用union
后若需要排序,只能在末尾通过order by子句,不能在中间写。 -
insert select
和select into
的异同二者均用于用select的结果插入到数据表中。insert select属于插入数据,而select into 属于导出数据(不存在的表)。
SQL子句顺序:select → \rightarrow → from → \rightarrow → where → \rightarrow → group by → \rightarrow → having → \rightarrow → order by
表级约束:
primary key
foreign key references 表名(字段)
on delete cascade
check(字段 in (集合))
创建视图:
create view viewname(字段) as
select 语句
创建触发器:
create trigger triname
after insert or delete on tablename
referencing new row as nrow, old row as orow for each row
begin
if inserting then
sql句
end if
if deleting then
sql句
end if
end
创建存储过程: