SQLServer数据库操作总结

数据库学完了,但是脑子里还是没有一个系统的数据库操作 概念。借着考试复习的这个机会,总结一下数据库的常用操作。内容参考上课的课件进行了整理,整篇文章会很长。


  1.数据库创建管理



  CREATE DATABASE DB


  ON PRIMARY


  (


  NAME = DB_data,


  FILENAME = 'F:\DB_data1.mdf',


  SIZE = 10MB,


  MAXSIZE = UNLIMTED


  ),


  (


  NAME = DB_data2,


  FILENAME = 'F:\DB_data2.ndf',


  SIZE = 11MB,


  MAXSIZE = 20MB,


  FILEGROWTH = 2MB


  )


  LOG ON


  (


  NAME = DB_log1,


  FILENAME = 'F:\DB_log1.ldf',


  SIZE = 1MB,


  MAXSIZE = 30MB,


  FILEGROWTH = 10%


  )


  1.2 修改数据库


  1.2.1 增加数据文件


  语法:


  alter database 数据库名称


  add file 数据文件


  [to file group 文件组名称]


  add log file 日志文件


  操作:


 

  ALTER DATABASE DB


  ADD FILE


  (


  NAME = ,


  FILENAME = ,


  SIZE = ,


  FILEGROWTH =


  )


  1.2.2 增加日志文件



  ALTER DATABASE DB


  ADD LOG FILE


  (


  NAME = ,


  FILENAME = ,


  SIZE = ,


  FILEGROWTH = ,


  MAXSIZE =


  )


  1.2.3 修改数据文件


  语法:


  ALTER DATABASE 数据库名


  MODIFY FILE 文件属性


  操作:将数据库db1中的数据文件data2的初始大小改为10MB,最大容量为20MB,增长幅度为10%


  alter database db1


  modify file


  (


  name = data2,


  size = 10,


  maxsize = 20,


  filegrowth = 10%


  )


  ALTER DATABASE DB


  MODIFY FILE


  (


  NAME = ,


  SIZE = ,


  )


  1.2.4 删除数据文件和日志文件


  语法:


  alter database 数据库名称


  remove file 数据文件或日志文件的逻辑文件名


  操作:删除数据库db1中的数据文件data4和日志文件log2


 



  alter database db1


  remove data4


  alter database db1


  remove log2


  1.2.5 增加文件组


  语法:


  alter database 数据库名


  add filegroup 文件组名


  操作:在数据库db1中增加一个g2文件组


  


  alter  database   db1


  add  filegroup   g2


  1.2.6 重命名文件组


  语法:


  alter database 数据库名


  modify filegroup 文件组名


  name=新文件组名


  操作:将数据库db1中的文件组g2更名为g3



  alter  database  db1


  modify  filegroup  g2  name=g3


  1.2.7 删除文件组


  语法:


  alter database 数据库名称


  remove filegroup 文件组名


  操作:删除数据库db1的文件组g3



  alter database db1


  remove filegroup g3


  1.2.8 修改数据库名称


  语法:


  alter database 数据库名


  modify name = 新数据库名


  操作:将数据库db1的名字修改为gl


  
  alter database db1


  modify name = gl


  1.3 删除数据库


  语法: Drop database 数据库名 [,……n]


  操作:删除数据库DB1,DB2,DB3




  DROP DATABASE DB1,DB2,DB3


  2.架构与基本表


  2.1 创建架构



  CREATE SCHEMA  T2 AUTHORIZATION User1


  CREATE TABLE Test(C1 INT PRIMATY KEY, C2 CHAR(4) )


  GRANT SELECT TO User2


  DENY DELETE TO User3;


  2.2 修改架构



  ALTER SCHEMA T1 TRANSFER T2.Test


  2.3 删除架构




  DROP SCHEMA T2


  2.4 创建基本表


  2.4.1 表约束


  类型:


  主键(PRIMARY KEY)约束


  惟一(UNIQUE)约束


  外键(FOREIGN KEY)约束


  检查(CHECK)约束


  说明:非空和默认值也可看成是约束。


  创建表约束的方法:新建表时,在单列后创建约束或者在所有列之后,再创建约束;如果表已存在,只能通过修改表,添加约束。


  语法:


  create table 表名


  (字段名 类型[(长度)] [,……n])


  操作:




  CREATE TABLE Student


  (


  SNO CHAR(7)     PRIMATY KEY,


  SNAME   NCHAR(5)    NOT NULL,


  SID CHAR(18)    UNIQUE,


  SEX NCHAR(1)    DEFAULT 'MAN',


  SAGE    TINYINT     CHECK (SAGE >= 15 AND SAGE <= 40)


  SDEPT   NVARCHAR(20)


  )


  CREATE TABLE Course


  (


  cno         CHAR(6)         PRIMARY KEY,


  cname       NVARCHAR(20)            NOT NULL,


  credit      NUMRIC(3,1)     CHECK (credit > 0),


  senester    TINYINT


  )


  CREATE TABLE SC


  (


  sno         CHAR(7)     NOT NULL,


  cno     CHAR(9)     NOT NULL,


  grade       TINYINT,


  PRIMARY KEY (sno, cno)


  FOREIGN KEY (sno) REFERENCES Student (SNO)


  FOREIGN KEY (cno) REFERENCES Course (cno)


  )


  2.4.1.1 PRIMARY KEY


  主键约束的作用:


  1.不允许输入重复的值


  2.不能取空值 (当主键是由多个属性组成时:某一属性上的数据可以重复,但其组合必须是惟一的;每个属性的值都不能为空。)


  3.一个表上只能有一个主键。


  2.4.1.2 UNIQUE


  惟一性约束的作用:保证列中不会出现重复的数据。


  主键约束与惟一性约束的区别:


  1.一个表中只能定义一个主键约束,但可以定义多个惟一约束。 2.定义了惟一约束的列数据可以为空值,而定义了主键约束的列数据不能为空值。


  2.4.1.3 FOREIGN KEY


  外间约束的作用:用于建立和强制两个表间的关联,限制外键的取值必须是主表的主键值。


  2.4.1.4 CHECK


  检查约束的作用: 1.用来限制列上可以接受的数据值 2.使用逻辑表达式来判断数据合法性


  2.4.1.5 DEFAULT


  默认约束的作用:当列值未确定且该列又不能为空时,可由系统自动为该列添加一个值


  2.4.2 添加主键约束


  操作:在学生情况表student中,添加“sno”的主键约束,主键约束命名为pk_student


  如果表不存在


  create   table   student


  ( sno      char (6),


  sname      char (8),


  ssex       bit ,


  sphone       char(11)


  constraint   pk_student


  primary  key  (sno)


  )


  如果表已存在


  ?


  1


  2


  3


  alter table student


  add constraint pk_student


  primary key (sno)


  2.4.3 创建唯一性约束


  操作:在student表中,创建“sphone”字段惟一性约束,并且将约束命名为uq_sphone



  alter   table   student


  add   constraint   uq_sphone


  unique  (sphone)


  2.4.4 创建外键约束


  create  table  sc


  ( sno     char ( 6 )  not  null   references   student ( sno ),


  cno     char ( 3 ),


  grade   tinyint


  primary  key (sno,cno),


  foreign  key  ( cno )   references  course ( cno )


  )


  2.4.5 创建检查约束


  操作1:在student表中,设置名为ck_student的检查约束,该约束限制“性别”为man或woman



  alter   table  student


  add   constraint   ck_student


  check  (sex=man or sex=woman)


  操作2:在学生与课程表sc中,添加名ck_sc j的检查约束,该约束限制“成绩”在0到100之间




  add  constraint  ck_sc


  check   (grade>=0 and grade<=100)


如果想了解更多相关的资料请关注(深圳网站建设 www.longbasz.com)官网



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值