zoukankan      html  css  js  c++  java
  • sql server 如何使用sql语句创建表

    --使用master
    use master
    go

    --判断数据库HR是否存在
    if exists(select 1 from sysdatabases where name='HR')
    begin
    --如果存在则删除数据库HR
    drop database HR
    end
    go

    --创建数据库HR
    create database HR
    go

    --使用数据库HR
    use HR
    go

    -------------------------------------------
    -------------------------------------------
    --在数据库HR中创建JOBS表 存储公司中职位的信息
    --判断JOBS表是否存在
    if exists(select 1 from sysobjects where name='JOBS')
    begin
    --如果表存在则删除JOBS表
    drop table JOBS
    end
    go

    --创建JOBS表
    create table JOBS
    (
    JOB_ID varchar(10) not null primary key,--职位编号
    JOB_TITLE nvarchar(20) not null, --职位名称
    MIN_SALARY money not null, --职位最低薪资,不小于1000元
    MAX_SALARY money not null --职位最高薪资,不小于最低薪资
    )
    go

    ---------添加JOBS表中的约束条件-----------
    --检查MIN_SALARY不小于1000元
    alter table JOBS
    add constraint CH_MIN_SALARY check(MIN_SALARY>=1000)
    --检查MAX_SALARY不小于不小于最低薪资
    alter table JOBS
    add constraint CH_MAX_SALARY check(MAX_SALARY>=MIN_SALARY)
    go

    --向表JOBS中添加测试数据
    insert into JOBS values(1001,'经理',1200,1300)
    --insert into JOBS values(1002,'经理1', 200,1300)错误,职位最低薪资小于1000元
    go

    --显示JOBS中的所有的信息
    select * from JOBS
    go
    -------------------------------------------
    -------------------------------------------


    -------------------------------------------
    -------------------------------------------
    --在数据库HR中创建DEPARTMENTS表 存储公司中部门的信息
    --判断表DEPARTMENTS是否存在
    if exists(select 1 from sysobjects where name='DEPARTMENTS')
    begin
    --如果存在则删除
    drop table DEPARTMENTS
    end
    go

    --创建表DEPARTMENTS
    create table DEPARTMENTS
    (
    DEPARTMENT_ID int identity(1001,1) primary key not null,--部门编号,主键,自增
    DEPARTMENT_NAME nvarchar(30) not null, --部门名称
    MANAGER_ID int --部门主管编号,外键,引用EMPLOYEES表的EMPLOYEE_ID
    )
    go

    --向表中添加测试数据
    insert into DEPARTMENTS values('管理部门',null)
    go

    --显示表DEPARTMENTS中的所有的信息
    select * from DEPARTMENTS
    go
    -------------------------------------------
    -------------------------------------------

    -------------------------------------------
    -------------------------------------------
    --在数据库HR中创建EMPLOYEES表 存储公司中职员的信息
    --判断表EMPLOYEES是否存在
    if exists(select 1 from sysobjects where name='EMPLOYEES')
    begin
    --如果EMPLOYEES表中存在则删除表
    drop table EMPLOYEES
    end
    go

    --创建表EMPLOYEES
    create table EMPLOYEES
    (
    EMPLOYEE_ID int primary key identity(100,1) not null, --职员编号,主键,自增(起始值为100,每次增1)
    FIRST_NAME nvarchar(4) not null, --职员名称
    LAST_NAME nvarchar(4) not null,--职员姓氏
    EMAIL varchar(25) not null,--职员邮件
    PHONE_NUMBER varchar(20) not null,--职员电话
    HIRE_DATE datetime default(getdate()),--职员入职时间
    JOB_ID varchar(10) not null,--职员职位编号,外键,引用JOBS表的JOB_ID
    SALARY money ,--职员薪资,大于0
    MANAGER_ID int ,--职员主管编号,外键,引用EMPLOYEES表的EMPLOYEE_ID
    DEPARTMENT_ID int ,--职员部门编号,外键,引用DEPARTMENTS表的DEPARTMENT_ID
    )
    go

    ----------向表中添加约束条件---------------
    -- 职员职位编号,外键,引用JOBS表的JOB_ID
    alter table EMPLOYEES
    add constraint FK_JOB_ID foreign key(JOB_ID) references JOBS(JOB_ID)
    --职员薪资,大于0
    alter table EMPLOYEES
    add constraint CH_SALARY check(SALARY>0)
    --职员主管编号,外键,引用EMPLOYEES表的EMPLOYEE_ID
    alter table EMPLOYEES
    add constraint FK_EMPLOYEE_ID foreign key(EMPLOYEE_ID) references EMPLOYEES(EMPLOYEE_ID)
    -- 职员部门编号,外键,引用DEPARTMENTS表的DEPARTMENT_ID
    alter table EMPLOYEES
    add constraint FK_DEPARTMENT_ID foreign key(DEPARTMENT_ID) references DEPARTMENTS(DEPARTMENT_ID)
    go


    --向表EMPLOYEES中添加测试数据
    insert into EMPLOYEES values('李四','李','821670983@qq.com','180123266',default,'1001',2000,100,1001)
    go

    --显示表EMPLOYEES中的所有的信息
    select * from EMPLOYEES
    go
    -------------------------------------------
    -------------------------------------------

    -------------扩展练习---------------------
    -------------------------------------------
    -------------------------------------------
    --在数据库HR中,创建任职历史记录表distory
    --判断HR中的表distory是否存在
    if exists (select 1 from sysobjects where name='distory')
    begin
    --如果表存在则删除该表
    drop table distory
    end
    go


    --创建表distory
    create table distory
    (
    EMPLOYEE_ID int not null,--职员编号,主键
    START_DATE datetime not null,--开始时间,主键
    END_DATE datetime not null,--结束时间 默认为getdate()
    JOB_ID varchar(10) not null,--职员职位编号,外键,引用JOBS表的JOB_ID
    DEPARTMENT_ID int --职员部门编号,外键,引用DEPARTMENTS表的DEPARTMENT_ID

    )
    go

    ----------向表中添加约束条件---------------
    --职员编号,主键
    alter table distory
    add constraint PK_EMPLOYEE_ID primary key(EMPLOYEE_ID)
    --开始时间,主键
    alter table distory
    add constraint PK_START_DATE unique(START_DATE)
    --结束时间 默认为getdate()
    alter table distory
    add constraint DF_END_DATE default(getdate()) for END_DATE
    --职员职位编号,外键,引用JOBS表的JOB_ID
    alter table distory
    add constraint FK_JOB_ID1 foreign key(JOB_ID) references JOBS(JOB_ID)
    --职员部门编号,外键,引用DEPARTMENTS表的DEPARTMENT_ID
    alter table distory
    add constraint FK_DEPARTMENT_ID1 foreign key(DEPARTMENT_ID) references DEPARTMENTS(DEPARTMENT_ID)
    go

    --向表distory中添加测试数据
    insert into distory values(100001,'2012.12.12',default,'1001',1001)
    insert into distory values(100002,'2015. 2. 2',default,'1001',1001)
    go

    --查询表distory中的所有的信息
    select * from distory
    go
    -------------------------------------------
    -------------------------------------------

  • 相关阅读:
    Linux系统常见的压缩与打包
    java 语言规范 java language specifications
    java 枚举
    github邮箱验证技巧
    关于 python
    博客园 编程基础 精华
    fiddler
    一个牛人写的博客
    使用xmarks同步 chrome ie firefox safari书签
    linux 中的 tar 解压
  • 原文地址:https://www.cnblogs.com/wanglu1991/p/4663643.html
Copyright © 2011-2022 走看看