zoukankan      html  css  js  c++  java
  • 数据库实现

    一、建库的SQL语句

    T-SQL创建数据库的语法:

    CREATE  DATABASE  数据库名
     
    ON [PRIMARY]
     (
      
    <数据文件参数> [,…n]  [<文件组参数>]
     )
     
    [LOG ON] 
     (
      
    <日志文件参数> [,…n]
     )

    创建数据库示例(一个数据文件和一个日志文件):

    CREATE DATABASE studentDB
       
    ON  PRIMARY  --默认就属于PRIMARY主文件组,可省略
    (
     NAME
    ='studentDB_data',  --主数据文件的逻辑名
     FILENAME='D:\DB\studentDB_data.mdf',  --主数据文件的物理名
     SIZE=5mb,  --主数据文件初始大小
     MAXSIZE=100mb,  --主数据文件增长的最大值
     FILEGROWTH=15%   --主数据文件的增长率
    )
    LOG ON
    (
      NAME
    ='studentDB_log',
      FILENAME
    ='D:\DB\studentDB_data_log.ldf',
      SIZE
    =2mb,
      FILEGROWTH
    =1MB
    )
    GO 

    创建数据库示例(两个数据文件和两个日志文件。多个类似):

    CREATE  DATABASE  employees
      
    ON 
       (
       
    /*-主数据文件的具体描述-*/
       NAME 
    = 'employee1'
       FILENAME 
    = 'D:\DB\employee1_Data.mdf' , 
       SIZE 
    = 10
       FILEGROWTH 
    = 10%
      ), 
      (
       
    /*-次要数据文件的具体描述-*/
       NAME 
    = 'employee2'
       FILENAME 
    = 'D:\DB\employee2_Data.mdf' , 
       SIZE 
    = 20
       MAXSIZE 
    = 100
       FILEGROWTH 
    = 1
      ) 
     
    LOG ON 
      (
       
    /*-日志文件1的具体描述-*/
       NAME 
    = 'employeelog1'
       FILENAME 
    = 'D:\DB\employeelog1_Log.ldf' , 
       SIZE 
    = 10
       FILEGROWTH 
    = 1
       ), 
      (
       
    /*-日志文件2的具体描述-*/
       NAME 
    = 'employeelog2'
       FILENAME 
    = 'D:\DB\employeelog2_Log.ldf' , 
       SIZE 
    = 10
       MAXSIZE 
    = 50
       FILEGROWTH 
    = 1
      )
    GO 

    删除数据库的语法:

    DROP DATABASE 数据库名


    删除数据库示例:

    USE master  --设置当前数据库为master,以便访问sysdatabases表
    GO
    IF  EXISTSSELECT * FROM  sysdatabases WHERE  name ='studentDB' )
       
    DROP DATABASE studentDB          --EXISTS()语句:检测是否存在studentDB数据库,如果存在studentDB数据库,则删除 
    CREATE  DATABASE  studentDB
    ON (
     …
    )
    LOG ON
    (
     …
    )
    GO

    二、建表的SQL语句

    建表的语法:

    CREATE TABLE  表名
     (
        字段1 数据类型 列的特征,
        字段2 数据类型 列的特征,
         ……
    )

     建表示例:

    USE studentDB   --将当前数据库设置为studentDB
    GO
    CREATE  TABLE  stuInfo    /*-创建学员信息表-*/
    (
     stuName  
    VARCHAR(20)  NOT  NULL ,  --姓名,非空(必填)
     stuNo   CHAR(6)  NOT  NULL,   --学号,非空(必填)
     stuAge  INT  NOT  NULL,  --年龄,INT类型默认为4个字节
     stuID  NUMERIC(18,0),     --身份证号
     stuSeat   SMALLINT  IDENTITY (1,1),   --座位号,自动编号
     stuAddress   TEXT   --住址,允许为空,即可选输入

    GO

    删除表的语法:

    DROP TABLE 表名

     删除表示例:

    USE studentDB   --将当前数据库设置为studentDB,以便在studentDB数据库中建表
    GO
    IF EXISTSSELECT * FROM  sysobjects  WHERE  name=’stuInfo’ )
        
    DROP  TABLE  stuInfo
    CREATE  TABLE  stuInfo   /*-创建学员信息表-*/
    (


    GO



    三、加约束的SQL语句

    常用的约束类型:
    主键约束(Primary Key Constraint)、唯一约束(Unique Constraint)、检查约束(Check Constraint)、默认约束(Default Constraint)、外键约束(Foreign Key Constraint)
    约束名的取名规则推荐采用:约束类型_约束字段

    添加约束的语法:

    ALTER TABLE 表名  
         
    ADD CONSTRAINT 约束名  约束类型  具体的约束说明

    添加约束示例:

    ALTER TABLE stuInfo 
         
    ADD CONSTRAINT PK_stuNo PRIMARY KEY (stuNo) --添加主键约束(stuNo作为主键)
    ALTER TABLE stuInfo 
        
    ADD CONSTRAINT UQ_stuID UNIQUE (stuID) --添加唯一约束(因为每人的身份证号全国唯一)
    ALTER TABLE stuInfo 
        
    ADD CONSTRAINT DF_stuAddress 
              
    DEFAULT ('地址不详'FOR stuAddress --添加默认约束(如果地址不填,默认为“地址不详”)
    ALTER TABLE stuInfo 
        
    ADD CONSTRAINT CK_stuAge 
            
    CHECK(stuAge BETWEEN 15 AND 40--添加检查check约束,要求年龄只能在15-40岁之间
    ALTER TABLE stuMarks
       
    ADD CONSTRAINT FK_stuNo  --添加外键约束(主表stuInfo和从表stuMarks建立关系,关联字段为stuNo)
           FOREIGN KEY(stuNo) REFERENCES stuInfo(stuNo)
    GO

    删除约束的语法:

    ALTER TABLE 表名  
          
    DROP CONSTRAINT 约束名 
    ALTER  TABLE  stuInfo  
         
    DROP  CONSTRAINT  DF_stuAddress

     

  • 相关阅读:
    实战体会Java的多线程编程
    java synchronized用法
    java thread代码
    java简单线程池实例代码
    visual studio 配色方案的设置及需注意的问题
    【转】 Response.Redirect(),Server.Transfer(),Server.Execute()的区别
    Button.PerformClick 仅支持winform,可模拟按钮点击
    Codeforces Round #118 (Div. 2) B题(Codeforces上不支持qsort,只支持sort!!!)
    hdu4324(拓扑排序&强连通)
    三分法——求解凸性函数的极值问题
  • 原文地址:https://www.cnblogs.com/tianlangshu/p/2468881.html
Copyright © 2011-2022 走看看