SQL Server 2008(数据库创建)

--检查存在数据库删除重建

IF EXISTS(SELECT * FROM sysdatabases WHERE name='StuInfo')
DROP DATABASE StuInfo

--建立数据库

CREATE DATABASE StuInfo
ON PRIMARY
(
  name='StuInfo_data',
  filename='D:/zhaoxu/DataBase/StuInfo_data.mdf',
  size=10MB,
  maxsize=unlimited,
  filegrowth=10%
)
LOG ON
(
  name='StuInfo_log',
  filename='D:/zhaoxu/DataBase/StuInfo_log.ldf',
  size=3MB,
  maxsize=100MB,
  filegrowth=1MB
)

GO

--建表StuInfo

USE StuInfo

--检查是否存在

IF EXISTS(SELECT * FROM SYSOBJECTS WHERE name='StuInfo')
DROP TABLE StuInfo
--创建数据表
CREATE TABLE StuInfo
(
  StuID INT IDENTITY(1,1) PRIMARY KEY NOT NULL,
  StuName VARCHAR(50) NOT NULL CHECK(LEN(StuName) >= 2),
  StuAge INT NOT NULL CHECK(StuAge >= 18 AND StuAge <= 120),
  StuAddress VARCHAR(50) NULL DEFAULT('地址不详'),
  StuIDCard VARCHAR(18) NOT NULL CHECK(LEN(StuIDCard) = 15 OR LEN(StuIDCard) = 18),
  StuGender CHAR(2) NOT NULL
)

CREATE TABLE StudentInfo
(
  StuID INT IDENTITY(1,1) NOT NULL,
  StuName VARCHAR(50) NOT NULL ,
  StuAge INT NOT NULL ,
  StuAddress VARCHAR(50) NULL ,
  StuIDCard VARCHAR(18) NOT NULL ,
  StuGender CHAR(2) NOT NULL
)
--添加主键约束
ALTER TABLE StudentInfo
ADD CONSTRAINT PK_StudentInfo PRIMARY KEY(StuID),
    CONSTRAINT CK_StuAge CHECK(StuAge >= 18 AND StuAge <= 120),
    CONSTRAINT DF_StuAddress DEFAULT('地址不详') FOR StuAddress,
    CONSTRAINT UQ_StuIDCard UNIQUE(StuIDCard)

--添加检查约束

IF EXISTS(SELECT * FROM SYSOBJECTS WHERE name='ScoreInfo')
DROP TABLE ScoreInfo
CREATE TABLE ScoreInfo
(
 ScoreID INT PRIMARY KEY NOT NULL,
 StuID INT NOT NULL,
 Score FLOAT NOT NULL
)

ALTER TABLE ScoreInfo
ADD CONSTRAINT FK_StudentInfo_ScoreInfo FOREIGN KEY(StuID) REFERENCES StudentInfo(StuID)

--创建登录账户

--添加windows账户
exec sp_grantlogin 'cs231/guoxipeng'
--添加SQLServer身份验证
exec sp_addlogin 'haoxiong','123'

USE StuInfo
exec sp_grantdbaccess 'haoxiong','haoxiongDBUser'

--  grant 权限 [on 表名] to 数据库用户名

grant create table to haoxiongDBUser
grant select,insert,update on StudentInfo to haoxiongDBUser

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值