数据库工具使用以及数据库的创建与管理
一、实验目的
1.掌握数据库定义和删除。
2.掌握基本表的定义、修改、删除。
3.掌握添加、删除约束。
二、实验内容
操作系统:Windows 10
数据库管理系统:SQL Server 2017
SQL Server数据库创建
参考的是教材P82页的“实验3-1数据库、数据表的定义”的内容
- 实验过程
- 课堂实操部分
- 数据库连接
数据库有客户端和服务器
连接数据库的方式:
1)localhost
2)localhost\sqlexpress
3) .
4)用本机的IP地址 (查询IP:ipconfig)
5)通过网址访问
6)带实例名
身份验证方式:
windows身份验证:只适用于本地连接,是window是系统的操作的账户,主要用于本地数据库管理
SQL Server身份验证:不受限制,是数据库的账户
登录名:
sa:supper administrator 超级用户
2.新建查询,在工作区可输入SQL语句
3.数据库右键单击-属性(该数据库的信息)-文件(行数据文件:mdf 日志文件:ldf)
数据库的物理结构,内模式(文件保存的位置、大小、增长方式等)
4.备份和还原:
备份:
1)停止数据库的服务再拷贝
2)分离数据库再拷贝
3)右键单击数据库-任务-备份
4)右键单击数据库-任务-导出数据(或者右键-编写数据库脚本)
还原:1)附加数据库( 版本不兼容)2)数据库右键-还原数据库
5.创建数据库:
1)用可视化方式
2)用命令的方式 教材P42
6.系统数据库的作用:
master:记录了sql server系统所有的系统信息包括登录信息、系统设置信息等;
Tempbd:临时数据库
model:用作在SQL Server实例上创建的所有数据库的模板
msdb:用于代理程序调度报警和作业等
7.ssms:SQL Server Management Studio
8.三类存储文件:主文件、次文件、日志文件
b.SQL语句实验部分
1.用SQL语句创建数据库 students,(文件初始大小为6MB,增量1MB,最大100MB;日志文件初始化大小3MB,增量10%,最大8MB,存放E盘)。
实验步骤:打开 sql sever数据库,工具栏中选新建查询;输入sql语句后(如下),执行。
CREATE DATABASE [students]
CONTAINMENT = NONE
ON PRIMARY
( NAME = 'students', FILENAME = 'E:\students\students.mdf' , SIZE = 6MB , MAXSIZE = 100MB, FILEGROWTH = 1MB )
LOG ON
( NAME = 'students_log', FILENAME = 'E:\students\students_log.ldf' , SIZE = 3MB , MAXSIZE = 80MB , FILEGROWTH = 10% )
2.用SQL语句按书本的表结构创建表Student、Course、Sc:
USE [students]
GO
CREATE TABLE Student(
Sno CHAR(7) primary key,
Sname NCHAR(5) NOT NULL,
Sex NCHAR(1),
Sage TINYINT,
Sdept NVARCHAR(20)
)
CREATE TABLE Course(
Cno CHAR(6) primary key,
Cname NVARCHAR(20) NOT NULL,
Ccreedit TINYINT,
Semester TINYINT
)
CREATE TABLE Sc(
Sno CHAR(7),
Cno CHAR(6) Primary Key (Sno, Cno),
Grade TINYINT
)
- 在表Student中新建地址列:
ALTER TABLE Student
ADD Address NVARCHAR(50) /*新建列Address*/
- 把Address列修改类型为NVARCHAR(30),然后删除这一列:
ALTER TABLE Student
ALTER COLUMN Address NVARCHAR(30) /*修改列Address*/
ALTER TABLE Student
DROP COLUMN Address /*删除列Address*/
- 用外码约束:
/* 给sc中的SnoheCno添加外码约束*/
ALTER TABLE Sc
ADD CONSTRAINT FK_Sc_Student
FOREIGN KEY(Sno) REFERENCES Student(Sno)
ALTER TABLE Sc
ADD CONSTRAINT FK_Sc_Course
FOREIGN KEY(Cno) REFERENCES Course(Cno)
- 用唯一约束:
ALTER TABLE Student
ADD CONSTRAINT PK_Sname UNIQUE(Sname)/*给Sname添加唯一约束*/
- 用CHECK约束:
ALTER TABLE Sc
ADD CONSTRAINT CK_Grade CHECK(Grade>=0 and Grade<=100)/*给Grade设置为0到100*/
- 用DEFAULT约束:
ALTER TABLE Student
ADD CONSTRAINT DF_Sagr DEFAULT 19 FOR Sage/*给Sage设置默认值19*/
- 删除上个DEFAULT约束:
ALTER TABLE Student DROP CONSTRAINT DF_Sagr /*给Sage删除默认值设置*/
- 实验结果
1:
2:
3:
4-9:
- 实验出错问题和解决
在第九步删除约束中,我原先使用的语句是:ALTER TABLE Student ALTER COLUMN Sage DROP DEFAULT,报错:
,然后改成ALTER TABLE Student ALTER COLUMN Sage DROP CONSTRAINT DF_Sagr,依然报附近有语法错误,最后改成ALTER TABLE Student DROP CONSTRAINT DF_Sagr才成功。
- 实验心得