使用T-SQL语句创建数据库 创建表

1. 使用T-SQL语句创建数据库:
数据库名称为:CITYOA, 其他参数使用默认即可
2. 使用T-SQL语句创建如下表:
表名 字段名 类型 默认值 约束
2.1系统功能表
OA_FUNCTION FUNNO Int PK
FUNNAME Varchar(50) 非空
UPFUNNO Int FK->PK(本表PK)
2.2部门表
OA_DEPARTMENT DEPTNO Int PK
DEPTCODE Varchar(10) 非空 唯一
DEPTNAME Varchar(50) 非空 唯一
LOCATION Varchar(200)
POSTCODE CHAR(6)
2.3员工表
OA_EMPLOYEE EMPNO Int PK
EMPID Varchar(20) 非空 唯一
PASSWORD Varchar(20) 非空
NAME Varchar(50) 非空
SEX Char(2) ‘男’ 只能是’男’或’女’
AGE Int 20 在18到60之间
WORKAGE int Age>workage+18
HIREDATE Datetime 要在’2000-10-10’之后
LeaveDate Datetime 要在Hiredate之后
Salary decimal(10,2) 在1000到9000之间
BONUS Decimal(10,2) Salary>bonus
Mail Varchar(100)
Photo Image
JobDesc Text
DEPTNO int FK- OA_Department的主键
2.4技能表
OA_SKILL SKILLNO Int PK
SKILLNAME Varchar(50) 非空 唯一
2.5员工技能关联表
OA_EMPSKILL EMPNO Int PK1, FK->EMP.EMPNO
SKILLNO Int PK2 FK->SKILL.SKILLNO
2.6 员工功能关联表
OA_EMPFUNCTION EMPNO Int PK1, FK->EMP.EMPNO
FUNNO Int PK2,FK-> OA_FUNCTION.FUNNO
写出创建表和约束的SQL语句,将创建好的表进行截屏。
将SQL语句和截屏写入到试验报告中。

3. 使用T-SQL语句完成如下修改表的任务
(3.1) 为员工表OA_EMPLOYEE增加列:MobilePhone,类型为varchar(50), 且为唯一
(3.2) 将员工表OA_EMPLOYEE的Mail列修改为Varchar(200)
(3.3) 将员工表OA_EMPLOYEE的JobDesc列删除
(3.4) 删除技能表OA_SKILL字段SKILLNAME上的唯一约束
(3.5) 为员工表OA_EMPLOYEE的字段Mail增加唯一约束
注:修改任务不用截屏,直接写出T-SQL语句即可。

4. 使用T-SQL语句完成删除表的任务
(4.1) 删除员工表
(4.2) 删除员工功能关联表

1.
CREATE DATABASE CITYOA
ON
(NAME=数据库逻辑名
FILENAME='数据库文件路径与物理名.mdf')
LOG ON
(NAME=日志文件逻辑名
FILENAME='日志文件路径与物理名.ldf')
2.1
CREATE TABLE OA_FUNCTION
(FUNNO Int PRIMARY KEY,
FUNNAME Varchar(50) NOT NULL,
UPFUNNO Int ,
FOREIGN KEY (UPFUNNO) REFERENCES OA_FUNCTION (FUNNO)
)
2.2
CREATE TABLE OA_DEPARTMENT
(DEPTNO Int PRIMARYKEY,
DEPTCODE Varchar(10) NOT NULL UNIQUE,
DEPTNAME Varchar(50) NOT NULL UNIQUE,
LOCATION Varchar(200) ,
POSTCODE CHAR(6)
)

2.3员工表
CREATE TABLE OA_EMPLOYEE
( EMPNO Int PRIMARY KEY,
EMPID Varchar(20) NOT NULL UNIQUE,
PASSWORD Varchar(20) NOT NULL,
NAME Varchar(50) NOT NULL,
SEX Char(2) CHECK(SEX IN ('男','女')) default '男',
AGE Int CHECK(AGE BETWEEN 18 AND 60) DEFAULT 20,
WORKAGE int CHECK(Age>workage+18),
HIREDATE Datetime CHECK(HIREDATE>'2000-10-10'),
LeaveDate Datetime CHECK(LeaveDate>HIREDATE), Salary decimal(10,2) CHECK(BETWEEN 1000 AND 9000),
BONUS Decimal(10,2) CHECK(Salary>bonus),
Mail Varchar(100) ,
Photo Image ,
JobDesc Text ,
DEPTNO int ,
FOREIGN KEY (DEPTNO) REFERENCES OA_Department(DEPTNO)
)
2.4技能表
CREATE TABLE OA_SKILL
SKILLNO Int PRIMARY KEY,
SKILLNAME Varchar(50) NOT NULL UNIQUE
)
2.5员工技能关联表
CREATE TABLE OA_EMPSKILL
( EMPNO Int ,
SKILLNO Int ,
PRIMARY KEY (EMPNO,SKILLNO),
FOREIGN KEY (EMPNO) REFERNCES EMP (EMPNO),
FOREIGN KEY (SKILLNO) REFERNCES SKILL (SKILLNO)
)
2.6 员工功能关联表
CREATE TABLE OA_EMPFUNCTION
(
EMPNO Int ,
FUNNO Int ,
PRIMARY KEY (EMPNO,FUNNO),
FOREIGN KEY (EMPNO) REFERENCES EMP (EMPNO),
FOREIGN KEY (FUNNO) REFERENCES OA_FUNCTION (FUNNO)
)

2.1的FK->PK(本表PK)不大清楚是不是这样有空问下你们老师。

3. 使用T-SQL语句完成如下修改表的任务
(3.1) 为员工表OA_EMPLOYEE增加列:MobilePhone,类型为varchar(50), 且为唯一
ALTER TABLE OA_EMPLOYEE
ADD COLUMN MobilePhone varchar(50) UNIQUE
(3.2) 将员工表OA_EMPLOYEE的Mail列修改为Varchar(200)
ALTER TABLE OA_EMPLOYEE ALTER COLUMN Mail Varchar(200)

(3.3) 将员工表OA_EMPLOYEE的JobDesc列删除
ALTER TABLE OA_EMPLOYEE DROP COLUMN JobDesc
(3.4) 删除技能表OA_SKILL字段SKILLNAME上的唯一约束
ALTER TABLE OA_SKILL DROP constraint 约束名(约束名我也不知道是什么。。。)
(3.5) 为员工表OA_EMPLOYEE的字段Mail增加唯一约束
ALTER TABLE OA_EMPLOYEE ADD Mail UNIQUE
注:修改任务不用截屏,直接写出T-SQL语句即可。

4. 使用T-SQL语句完成删除表的任务
(4.1) 删除员工表
(4.2) 删除员工功能关联表
温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-04-13
最简单的,CREATE DATABASE mytest 这样就可以创建数据了,数据文件什么的都存放在默认的目录下了。

指定一些参数的语句:
CREATE DATABASE Sales
ON
( NAME = Sales_dat,
FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\DATA\saledat.mdf',
SIZE = 10,
MAXSIZE = 50,
FILEGROWTH = 5 )
LOG ON
( NAME = Sales_log,
FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\DATA\salelog.ldf',
SIZE = 5MB,
MAXSIZE = 25MB,
FILEGROWTH = 5MB )
第2个回答  2011-10-19
让你写T-SQL语句其实是让你更好的理解sql的一个过程。比如创建一个表。那就creat table 表{
.......}至于里边放什么字段,约束是什么,外键主键之类的。都是按照要求写就可以。建议如果不懂,还是多查查资料。对你理解SQL有很好帮助。
第3个回答  2021-01-02

MySQL云数据库创建、配置与使用教程,五秒钟创建属于自己的mysql云数据库,申请地址:xmjar.cn

第4个回答  2020-03-08
相似回答