SQL基础 学习小记二

来源:互联网 发布:阿里云域名官网 编辑:程序博客网 时间:2024/05/16 06:56

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连接数据的时候,必须保证对应的列的数据类型是一致的,如果数据类型不一致,则报错。

 

 

 

 

 

 

原创粉丝点击