DDL、DML和DCL的理解(1-1、DDL:数据定义)

概括图

 

 

      1、数据库

              a>、创建数据库

--判断是否存在该数据库,有责删除:

use master

go
if exists(select * from sysdatabases where name = 'teach')
drop database teach

go

注意:sysdatabases表是系统数据库master里的表,该表存放着所有的数据库中信息。exists函数判断是否为真,为真则为真,否则否

--创建数据库

create database teach   --teach为数据库名称
on   --创建数据文件
 (
    name=teach_Data,     --sql server中的逻辑名称,name的名称和filename的名称相同
    filename='D:\teachdata.mdf',     --' 文件所在的具体路径 '
    size=10,       --初始数据文件的大小,不用写单位,单位为MB
    maxsize=50,      --数据文件达到的最大值,可以这样写maxsize=unlimited
    filegrowth=5       --增长类型,可以这样写filegrowth=10%
  )
log on   - -创建日志文件
 (
   name=teach_log,        --sql server 上显示的名称,
   filename='D:\teachdata.ldf',      --操作系统上显示的名称,
   size=5,      --日志文件的初始大小,同上
   maxsize=20,      --日志文件的最大值,同上
   filegrowth=10%,    --增长度,同上
 )
go

注意:单行的为“- -”或为“ ' ”;多行的为“/*   */”

             b>、删除数据库

drop database teach  --teach为数据库名称

             c>、修改数据库

                     (1)、修改数据文件或日志文件

       alter database teach
       modify file
      (
         name=teach_Data,        --必须用name明确的指定文件的名称,来唯一的确定文件(数据文件或日志文件)
         filename='F:\teach_Data.mdf',
         size=50,
         maxsize=90,
         filegrowth=20
      )

         go

      注意:修改后文件大小时,不能使其小于或等于之前的大小。一次只能修改一个文件 

                        (2)、增加数据文件或日志文件

       alter database teach
       add file     --增加数据文件。增加日志文件:add log file
       (
          name='my_db_data2',
          filename='d:\my_db_data2.ndf',     --增加日志文件时,注意后缀名
          size=3,
          maxsize=15,
          filegrowth=2
       )
      go

                       (3)、删除数据文件或日志文件

        alter database teach
        remove file my_db_data2

        注意:文件只有为空才能被删除

       2、创建数据库对象(以基表为例,其它数据库对象会在其它博客中写出)

                a>、创建表

--判断是否存在该表,有则删除:
if exists( select * from sysobjects where id=object_id(N'A') and objectproperty(id,N'IsUserTable'))    --A表示表的名称
drop table A
注意:

sysobjects是系统表,里面有所有的表的信息
object_id函数返回一个对象(数据库对象,视图,表等)的在的id
objectproperty函数的作用是查看某个对象(此时用id表示)是否为用户表或视图等
N可以省略,N的作用的是转换为unicode编码

--创建表
create table 表名   - -字段主键约束
(
   列表名1  数据类型(大小) constraint  约束名称 null/not null,
   列表名2  数据类型(大小) not/not null constraint 约束名称 default 默认值,--可以使用多个约束。
   列表名3  数据类型(大小) constraint  约束名称 primary key,  
   列表名4  数据类型(大小) constraint  约束名称 unique,

   列表名5  数据类型(大小) constraint  约束名称 check(具体的约束条件),
   举例:Score int constraint Score_Che Check(Score>0 and Score<=100), --(age between 1 and 1000)

   列表名6  数据类型(大小) constraint  约束名称 default 字段名=默认值,
   举例:Sex char(5) constraint Sex_Default default '男',

   列表名7  数据类型(大小) constraint  约束名称 foreign key  references 表名(列表名) [on delete/update cascade|no action] , - -cascade时,对付表操作字表也相应的表
   举例:SNO char(5) constraint F_K foreign key references S(SNO),

   constraint 约束名称 primary key (多个字段名称), - -多个字段名称为一个主键
   举例:constraint   P_K   primary key(列表名1,列表名2,……),

   constraint  约束名称 unique(多个字段名称), - -多个字段名称为一个唯一约束,用“,”分隔。

   constraint  约束名称 check(多个字段的约束条件),
   举例:constraint M_Check check(列表名1>100 and 列表名2>100),

 )
注意:constraint为关键字,可以省略“constraint  约束名称”。

b>、修改表

(1)、add方式(添加新列和完整性约束)

             添加新列

alter  table  Table_Name

add

Field_Name1  数据类型(大小),

Field_Name2  数据类型(大小)constraint   约束名称   约束类型[(具体的值)]

     添加约束

alter  table  Table_Name

add

constraint  Score_ChK  check(Score between 0 and 100)

(2)、alter方式

             修改某些列

alter  table Table_Name

alter column Field_Name 数据类型 [null / not null]

注意:不能改列名;不能将含有空值的列的定义修改为not null约束;若列中已有数据,则不能减少宽度和修改数据类型;只能修改null/not null约束,其他约束,必须先删除,再添加,这样修改。

(3)、drop方式

             只能删除完整性约束的定义

alter table Table_Name

drop constraint 约束名

 

 

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值