• TSQL入门(二)——创建表


    上一篇中,提到了创建数据库,这一篇当然就是创建数据库中的表。
     
    创建数据表的常规语法为:
     
    CREATE TABLE 表名称
    (
    列名称1 数据类型,是否为空,约束,
    列名称2 数据类型,是否为空,约束,
    列名称3 数据类型,是否为空,约束,
    ....
    )
     
    其中数据类型可以参看MSDN中的说明,很详细,传送门
     
    下面就在上次创建的stuDB中建立一个student表:
     
    USE stuDB  --转到stuDB数据库
    GO

    IF EXISTS(SELECT * FROM sysobjects WHERE name='student')  --如果有同名的,删除
        DROP TABLE test1
    GO

    CREATE TABLE student
    (
    tid int IDENTITY(1,1) NOT NULL,  --tid,以种子1,增量1自增长,不可为空
    tname varchar(20) NOT NULL,      --姓名,20varchar类型长度,不可为空
    tage int NOT NULL DEFAULT 18 CHECK(tage > 0),  --年龄,int型,不可为空,默认18,大于0约束
    tInterTime datetime not null DEFAULT getDate() --加入时间,datetime类型,不为空,默认为插入时系统世界
    )

    ALTER TABLE student ADD CONSTRAINT RK_UID  --创建主键,tid
        PRIMARY KEY(tid)

    INSERT INTO student (tname,tage) VALUES('ceshi1',25)  --插入一条数据,没有插入的字段,按默认处理
     
    最终形成的表:
     
    创建了简单的数据表后,还可以对表进行增删或者进行约束和索引。
     
    我们希望在student表中增加两个字段,班级id和民族。
     
    ALTER TABLE student ADD cid int NULL

    ALTER TABLE student ADD nation varchar(10) NULL
     
    :在已有的数据表中增加字段时需要注意的是不能指定当前字段不为空。
     
    现在student表示下面的样子:
     
    但我现在没有班级表,不想要cid,可以删除之:
     
    ALTER TABLE student    DROP COLUMN cid

     

     
    如果现在我想把原先的年龄的默认值从18改为16,改怎么做?默认值是不可以直接更改的,所以我们只能删了原来的默认值,然后再重新添加,但又有个问题,如何得到默认值的名字呢?这里需要一些变量的知识了,但暂且先不说,只要可以满足当前的功能即可。
     
    DECLARE @dname varchar(100)  --声明变量

    select @dname=name from sysobjects where xtype = 'D' and parent_obj = object_id('student') and name like '%tage%'  --查询默认值的名称

    --ALTER TABLE student DROP CONSTRAINT @dname  --删除语句不支持变量,所以要用下面的拼接函数

    EXEC('ALTER TABLE student DROP CONSTRAINT ' + @dname)

    ALTER TABLE student ADD CONSTRAINT tageDefault Default '16' for tage
     
    一个简要的总结:
    删除数据库/表/索引 
        drop database 数据库名 
        drop table 表名 
        drop index 表名.索引名 
        drop procedure 存储方法名 
        drop view 视图名 
     
    .创建约束 
        alter table 表名 add constraint 约束名 约束类型 
        主键约束:primary key(列名) 
        外键约束:foregin key(列名) references 主表名(主键名) 
        唯一约束:unique(列名) 
        默认约束:default(默认值) for 列名 
        check约束:check(条件) 
        //标识列可以在创建列的时候,使用identity(1,1) 
     
    简要总结的来源在这里

    本文发布与Catcoder,转载请注明链接。

  • 相关阅读:
    ARC下的内存泄露
    iPhone 被同步到 Mac上后 如果不希望更新到Mac上在哪里删除?
    图像处理之基础---2个YUV视频 拼接技术
    多媒体开发之---H264 RTSP交互过程
    6410开发之---uboot
    数学和算法之---重温傅立叶
    多媒体开发之---h264 rtp打包
    多线程开发之---线程等待
    多媒体开发之---开源库ffmeg的log之子解析
    直升机的革命---鱼鹰运输机
  • 原文地址:https://www.cnblogs.com/mnight/p/2888903.html
Copyright © 2020-2023  润新知