首页 > 数据库技术 > 详细

sql03

时间:2020-03-03 09:43:15      阅读:58      评论:0      收藏:0      [点我收藏+]

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;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

sql03

原文:https://www.cnblogs.com/Tanqurey/p/12400507.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!