1、为表添加约束(constraint)
a、添加主键约束
alter table TableA add constraint PK_TableA_Id primary key(Id)
b、添加唯一约束
alter table TableA add constraint UQ_TableA_Name unique(Name)
c、添加检查约束(为了指定值的范围)
alter table TableA add constraint CK_TableA_Sex check(Sex='男' or Sex='女')
d、添加默认值(默认约束)
alter table TableA add constraint DF_TableA_Sex default(Sex='男') for Sex
e、一次添加多个约束
alter table TableA add constraint PK_TableA_Id primary key(Id),
constraint UQ_TableA_Name unique(Name),
constraint CK_TableA_Sex check(Sex='男' or Sex='女')
f、删除约束
alter table TableA drop constraint PK_TableA_Id primary
2、列操作
a、增加列
alter table TableA add Email nvarchar(100)
b、删除列
alter table TableA drop column Email
c、修改列
alter table TableA alter column Email nvarchar(500)
3、查询时为表 起别名(可以去掉as ,也可以用“ = ”)
select Id as 编号, Age as 年龄, Sex 性别, 地址=[Address] from TableA
4、去除重复的列
select distinct(Name) from TableA
5、带条件查询
%表示任意多个任意字符
_表示任意的单个字符
[]表示里边的任意一个字符
当用[]把通配符括起来的时候就不认为原来的字符是通配符了。
isnull(name,'张三') 把姓名为空的改为 张三
6、order by
按照多列排序、需要在order by 后面用 逗号 将多列隔开
select *from score order by english desc, math desc
7、having是在分组以后进行筛选时使用的关键字。where是在分组之前对数据进行筛选 时使用的关键字。
select 班级编号=ClassId, 该班级人数=count(*) from student group by ClassId having count(*)>3
where条件中不能用聚合函数来判断。
在select语句的选择里面,只能包涵group by 语句中出现的列,或者是聚合函数。
当在一个查询的列中使用了聚合函数,则该查询的其他列中,不能再出现除了group by 子句中包涵的列。
聚合函数和分组联系紧密,select studentname,sum(age) from student 这样写是错误的。
小列子1:select 年龄=avg(sage), 班级编号=calssid,calssEmail from student group by calssid,calssEmail
小列子2: select 名字=brandname,数字=price from t1 union all select userName,userage from t2
8、联合
union是将多个结果集合并成一个结果集,union会自动去除重复的信息,union all则不会去除重复的信息。
在使用union连接数据的时候,必须保证对应的列的数据类型是一致的,如果数据类型不一致,则报错。