• 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;

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

  • 相关阅读:
    自己写的一个校验IP、IP掩码、IP段的方法
    JS 数组方法splice的源码探究
    element ui 的时间选择控件
    浅谈闭包
    tensorFlow-深度学习训练并行模式
    tensorflow-TensorBoard
    tensorflow-RNN和LSTM
    tensorflow-TFRecord报错ValueError: Protocol message Feature has no "feature" field.
    tensorflow-mnist报错[WinError 10060] 由于连接方在一段时间后没有正确答复解决办法
    旋转图片,增加神经网络的准确率
  • 原文地址:https://www.cnblogs.com/Tanqurey/p/12400507.html
Copyright © 2020-2023  润新知