sql03

1、约束

约束详解
    ->约束的目的:保证数据的完整性.  not null
    
    ->默认值约束、可空约束、主键约束、外键约束、唯一键约束、检查约束

1) 用sql语句为表添加新的字段

 

2) 为字段添加默认值

alter table 表名 add constraint 约束名称(DF_表名_字段名) 约束方法 for 子段名;

alter table [dbo].[user] add constraint DF_user_age default(18) for age;

这里生成的约束可在“约束”内删除

 

3)删除某一字段

如果字段存在约束,需要先删除约束

alter table [dbo].[user] drop column birthdate;

 

4) 修改某一字段

alter table [dbo].[user] alter column [name] nvarchar(16);

 

5)主键约束

alter table 表名 add constraint 约束名称(PK_表名_字段名)  primary key(字段名)

 

6)唯一键约束

alter table [user] add constraint UQ_user_name unique (name);

 

7)外键约束

一对一,一对多,多对多

外键表关联主键表的主键

添加外键列:

alter table [user] add ClassId int null;
--添加外键关系
alter table [user] add constraint FK_user_Class foreign key(ClassId) references Class(ClassId);

alter table 表名 add constraint 约束名 foreign key(关联字段)  references 主键表名(主键表主键); 

 

2、select 查询

1)其他用法:

添加自定义常数列:

 

找表中最短的列进行统计

select count(*) from [user];

查找表前5条数据

select top 5 * from [user];

*处可以用各个字段进行代替

 

3、聚合函数

1)平均值:avg

select avg(字段名1),,avg(字段名2)... from 表名;

select avg(age) from [user];

2)计数:count

select count(age) from [user];

3)求和与最值

select max(age) as 最大值,min(age) as 最小值,sum(age)asfrom [user];

 

4、top

一般跟排序order连用

select top 5 * from [user] order by age asc,id desc;

asc升序,desc降序

 

5、去重distinct

select distinct [age] from [user] order by age asc;

distinct 只能跟在select后

如果distinct后跟多个字段,则系统会综合这几个字段进行去重

6、where 过滤

not 用<>进行表示

select * from [user] where age<>21;

 

7、区间过滤

可以用and解决

也可用between

select * from [user] where age between 20 and 50;

 

8、模糊查询

like 关键字

%:匹配任何多个字符(0~多个)

_:仅匹配1个字符

1)例1:查找名字以J开头的数据:

select * from [user] where [name] like 'J%';

2)例2:查找名字中包含a的数据‘’

select * from [user] where [name] like '%a%';

3)例3:查找名字中第4个字符为a的数据‘’

select * from [user] where [name] like '___a%';

4)例4,:查询内容中包含',两个单引号表示1个

select * from [user] where [name] like '%''%';

5) 查找包含数字的1到2

select * from [user] where [age] like '[1-2]%';

6)匹配一个左中括号

select * from [user] where [name] like '[[]%';

或者声明转义

select * from [user] where [name] like '\[%' escape '\';

7)查询空数据

select * from [user] where [age] is null;

可在is后加not表示非空

 

 9、分组group

分组使用时在select后只能跟分组相关信息与聚合函数

select ClassId,count(*),sum(age) from [user] group by ClassId;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

------------恢复内容结束------------

posted on 2020-03-03 09:15  Tanqurey  阅读(178)  评论(0编辑  收藏  举报