选择主键的原则:
1.最少性:尽量选择单个键作为主键;
2.稳定性:尽量选择数值更新少的列作为主键
T--SQL的组成
DML(数据操作语言)
——查询,插入,删除和修改数据库中的数据;
——select insert update delete
DCL(数据控制语言)
——用来控制存取许可,存取权限等
——grant revoke等
DDL(数据定义语言)
——用来建立数据库,数据库对象,定义列
——create table drop table等
插入数据行:
insert [INTO] <表名> [列名] values<值列表>
事项:
1.每次插入一行数据,不可能只插入半行或几列数据,因此插入的数据是否有效将按照行的完整性的要求来检验;
2.每个数据值的数据类型,精度和小数位数必须与相应的列匹配;
3.不能为标识列指定值,因为它的数字是自动增长的;
4.如果在设计表的时候就指定了某列不允许为空,则必须插入数据;
5.插入的数据项要求符合检查约束的要求;
6.具有缺省值的列,可以使用default(缺省)关键字来代替插入的数值。
插入多行数据:
1.insert into <表名> (列名)
select <列名>
from <源表名>
2.select (列名)
into <表名>
from <源表名>
3.select identity(数据类型、标识种子、标识增长量)
AS 列名
into 新表
from 原始表
4.insert into <表名> (列名)
select <列名> union
select <列名> union
...........
5.更新数据行:
update <表名> set <列名=更新值>
[where <更新条件>]
6.删除表
delete from <表名> [where <删除条件>]
7.删除数据行
truncate table<表名>
查询:select *from sales
查询产生一个虚拟表,看到的表形式显示的结果,但结果并不真正存储,每次执行查询只是从数据表中提取数据,并按照表的形式显示出来。
select <列名>
from <表名>
[where <查询条件表达式> [ASC或DESC] ]
分组查询:group by ; having; where对比:
1.where子句从数据源中去掉不符合其搜索条件的数据;
2.group by子句搜集数据行到各个组中,统计函数为各个组计算统计值;
3.having子句去掉不符合其组搜索条件的各组数据行。
多表联结查询:
1.内联结(inner,join); 2.外联结:左外联结(left,join) 右 外联结(right,join) 完整外联结(full join); 3.交叉联结(cross join)
聚合函数
常用的聚合函数:SUM MIN MAX AVG COUNT。
列表操作符:IN , NOT IN
范围操作符:between,not between
查找空值操作符:IS NULL,IS NOT NULL