zoukankan      html  css  js  c++  java
  • 数据库的实现(创建库、表、约束;删除表、约束)

      SQLServer数据库的基础知识的回顾

      1)主数据文件:*.mdf

          2)次要数据文件:*.ndf

      3)日志文件:*.ldf

      每个数据库至少要包含两个文件:一个数据文件和一个日志文件

          如何查看SQL Server的帮助==================快捷键F1

    一、创建数据库

    1.语法

    1 create database 数据库名
    2    on  primary
    3  (
    4     <数据文件参数>[,......n] [<文件组参数>]
    5   )
    6  log on
    7   (
    8   {<日志文件参数> [,......n]}
    9   )

    数据文件参数如下

    1 (
    2   [name=逻辑文件名,]
    3    filename=物理文件名
    4   [,size=大小]
    5    [,maxsize={最大容量|unlimited}]
    6    [,filegrowth=增长量]
    7   )

    文件组的参数

    1、语法

     1 filegrowth 文件组名 <文件参数> [,......n] 

    2.例子(前8行进行判断的,如果存在数据库就删除数据库不存在数据库就出现'2131231')

     1 --判断如果有这个库进行删除
     2 if exists(select * from sysdatabases where name='MySchool')
     3 begin
     4 drop database MySchool
     5 end
     6 begin
     7 print '2131231'
     8 end
     9 --创建数据库
    10 create database MySchool
    11 on primary
    12 (
    13     --数据文件的具体描述
    14     name='MySchool_data',        --主数据文件的逻辑名称+++++++必须写
    15     filename='E:MySchool_data.mdf', --主数据文件的物理名称+++++++必须写
    16     size=5mb,                        --主数据文件的初始大小
    17     maxsize=100mb,                    --主数据文件增长的最大值
    18     filegrowth=15%                    --主数据文件的增长率
    19 )
    20 log on
    21 (
    22 --日志文件的具体描述,各参数含义同上
    23 name='MySchool_log',
    24 filename='E:MySchool_log.ldf',
    25 size=2mb,
    26 filegrowth=1mb
    27 )
    28 go

    二、创建表

    1、语法

    1 create table 表名
    2 3   列1 数据类型 列的特征
    4   ......
    5

    2、例子(5和6行判断是否存在Student这张表)

     1 --创建表
     2 use MySchool --将当前数据库设置为MySchool,以便在MySchool里创建表
     3 go
     4 --判断
     5 if exists (select * from sysobjects where name='Student') 
     6 drop table Student
     7 
     8 create table Student   ---创建Student表
     9 (
    10  StudentNo int identity primary key not null,  --学号 自增 主键,非空
    11  loginpwd nvarchar(20) not null,
    12  StudentName nvarchar(20) not null,
    13  Sex bit default'' not null,      --性别,取值0,1
    14  GradeId int not null,
    15  Phone nvarchar(50) null,
    16  Address nvarchar(100) null,
    17  BornDate datetime not null,
    18  Email nvarchar(20) null,
    19  IdentityCard varchar(18) not null
    20  )
    21 go

    三、删除表

    1、语法

     1 drop table 表名 

    2、例子

     1 drop table Student 

    3、重点

    当创建表的时候已经创建主键和自增列的时候,我们如何能够删除已经存在的主键?

     

    1 --查看主键,之前没有主键的名字
    2 select * from sysobjects where xtype='PK'
    3 --删除主键
    4 alter table [Student] drop 查找出约束(主键)的名字

    四、添加约束(例子)

    语法:

     1 alter table 表名

    2 add constraint 约束名 约束类型 具体的约束说明 

    例子:

    1、添加默认约束(默认'地址不详')

    1 alter table Student
    2 add constraint df_address default('地址不详') for address

    2、添加检查约束(要求出生在1996年10月26日)

    1 alter table Student 
    2 add constraint ck_BornDate check (BornDate >='1996-10-26')

    3、添加唯一约束(身份证全世界只有一个)

     1 alter table Student

    2 add constraint uq_IdentityCard unique (IdentityCard) 

    4、添加主键约束

     1 alter table Student

    2 add constraint pk_StudentNo primary key(StudentNo) 

    5、添加外键约束(主表 Student 和从表 REsult建立关系,关联列StudentNo)

    1 alter table Result 
    2 add constraint fk_StudentNo
    3     foreign key(StudentNo) references Student (StudentNo) 

    五、回顾T-SQL的语句的语法

    1、添加数据

     1 Insert into 表名(列名,......)Values(值1,......) 

    2、修改数据

     1 update 表名 set 列1=值1,列2=值2,......where(条件) 

    3、删除数据

     1 delete from 表名 where(条件) 

    4、查询语句

     1 select 列1,列2,.....from 表名 where(条件) order by 列名 

    理解的小例子

    1 select StudentName,StudentNo from Student where BornDate>='1996-10-26' order by StudentNo 

     六、创建文件夹

    1 exec sp_configure 'show advanced options',1
    2 go
    3 reconfigure
    4 go
    5 exec sp_configure 'xp_cmdshell',1
    6 go
    7 reconfigure
    8 go
    9 exec xp_cmdshell 'mkdir E:新建文件'
  • 相关阅读:
    Git windows换行问题
    java之aop使用及自定义注解
    Shiro授权及注解式开发
    Git Gui、Ssh key的使用和ideaui配置使用Git解决冲突(下)
    Git和Github的介绍、简单操作、冲突(上)
    Shiro身份认证、盐加密
    Shiro简介、入门案例、web容器的集成
    SpringMVC入门
    Mybatis之关联关系(一对多、多对多)
    Mybatis整合(Redis、Ehcache)实现二级缓存
  • 原文地址:https://www.cnblogs.com/yejiaojiao/p/5109546.html
Copyright © 2011-2022 走看看