1.创建一个数据库,代码如下
create database test1 //通过这个语句我们知道了要创建一个名字为test1的数据库
on primary //通过这个我们对主文件组进行添加
(name='test1',filename='c:\DATA\test1',size=5mb,maxsize=10mb,filegrowth=10mb), //这里要有逗号
filegroup fgroup1 //通过这个语句我们可以创建一个次文件组,并往里面添加文件
(name='data1',filename='c:\DATA\data1',size=4mb,maxsize=10mb,filegrowth=20%),
(name='data2',filename='c:\DATA\data2',size=4mb,maxsize=10mb,filegrowth=10%) //这里不能有对号
log on //通过这个语句我们对事物日志进行设置
(name='test1_log',filename='c:\DATA\data3',size=3mb,maxsize=10mb,filegrowth=30%)
说明:1.一个文件只能在一个文件组里,一个文件组只能被一个数据库使用
2.一个数据库至少有一个数据文件和一个事物日志文件
3.我们必须在c盘新建一个DATA文件夹来存放这些文件
2修改数据库
2.1添加新的数据文件
use test1 //表示我们对哪个数据库进行操作
alter database test1 add file //表示对数据库test1进行增加文件的操作,这个时候我们仅仅增加了文件,并没有将文件放在哪个文件组里
(name='data4',filename='c:\DATA\data4.ndf',size=2mb,maxsize=6mb,filegrowth=1mb)
2.2添加新的数据文件到指定文件组
alter database test1 add file
(name='data5',filename='c:\DATA\data5.ndf',size=2mb,maxsize=10mb,filegrowth=10%)
to filegroup fgroup1 //这个语句指明将文件放到fgroup1里面
2.3修改数据文件的文件增长速度
alter database test1 modify file //表示我们对于数据库的文件要进行修改
(name='data5',size=8mb,maxsize=10mb,filegrowth=20%)
3.删除数据库
drop database test1
二:对表进行操作(表是包含数据库中所有数据的数据库对象)
2.1 创建表
create table test1.dbo.kecheng
//create table表明我们要创建表,后面跟着的是表的位置和名字(我们要在数据库名和表名中间加个dbo)
(课程号 char(4) not null primary key, //我们在这里对表的一些属性进行设置,必须有的是列名和数据类型,能否有空值我们可以不设置,默认可以有
学时 varchar(30),
学分 tinyint)
2.2 修改表
ALTER TABLE 学生管理.dbo.课程 //将“课程”表中的课程名宽度修改为 32个字符。 ALTER COLUMN 课程名 varchar(32)
ALTER TABLE 学生管理.dbo.课程 //将“学号”列增加非空约束。
ALTER COLUMN 学号 varchar(20) NOT NULL
ALTER TABLE 学生管理.dbo.选修
ADD 学分 tinyint
ALTER TABLE 学生管理.dbo.选修
DROP COLUMN 学分
//删除“学生”表
DROP TABLE 学生
2.3 约束
通过限制列中的数据,行中的数据和表之间的数据来保证数据的完整性。
2.3.1 主键约束:该约束强 制实体完整性。一个表中最多只能有一个主键, 主键列不允许取空值。
主键经常定义在一个列上,但是也可以定义在多个列的组合上。当主键定义在多个列上时,虽然某一个列中的数据可能重复,但是这些列的组和值不能重复。
CREATE TABLE 成绩1 //这里我们说明对哪个表进行操作
( 学号 char(6) , 课程号 char(4),
成绩 int CONSTRAINT PK_st PRIMARY KEY (学号,课程号) ) //这里我们指定了增加主键的列的组合,并指定了主键的名字
ALTER TABLE 学生1
ADD CONSTRAINT pk_st PRIMARY KEY (学号)
ALTER TABLE 学生1
DROP CONSTRAINT pk_st
2.3.2 uniqe约束(唯一性约束)
指定表中某一个列或多个 列不能有相同的两行或两行以上的数据存在。一个表里可以有多个unique约束。
//新建表的时候加上这个约束
CREATE TABLE 学生1
( 学号 char(6) PRIMARY KEY, 姓名 char(8) NOT NULL,
身份证号 char(20) CONSTRAINT uk _st1 UNIQUE, //在这里我们用constraint表明我们要设置约束,约束的名字我们设置为uk—st1,约束的类型为unique
性别 bit NOT NULL )
设置“学生”表“身份证号”字段值唯一。
alter table 学生
ADD constraint uk_st UNIQUE (身份证号)
ALTER TABLE 学生1
DROP constraint uk_st1
2.3.3 foreigen key约束(外键约束)
表和表之间的引用关系可以通过FOREIGN KEY (外键)约束来实现。创建外键约束既可以由 FOREIGN KEY子句完成,也可以在表设计器中完 成。
foreign key约束要求列中的每个值在被引用表的对应列中都存在,并且被引用的列必须添加primary key约束或者unique约束。
在数据库“STUDENT1”中创建一个“成绩”表,包括:学号、课程号、成绩,并为成绩表创建外键约束,该约束把“成绩”表中的“学号”字段 和“学生”表中的“学号”字段关联起来。
USE STUDENT1 //指明数据库
CREATE TABLE 成绩
( 学号 char(6) constraint st_xh FOREIGN KEY references学生(学号), //references学生(学号)表明我们对学号这个列设置外键约束,并跟学生表 的学号列进行关联
课程号 char(4),
成绩 int )
将“教学库”数据库中学生表、课程表和选课 表进行关联,学生表和课程表为主表,其中的学号和课程号 字段为主键,选课表为从表,将选课表的学号和课程号字段 定义为外键。 USE 教学库 GO
ALTER TABLE 选课表
ADD CONSTRAINT st_foreign FOREIGN KEY (学号) REFERENCES 学生(学号)
ALTER TABLE 选课表
ADD CONSTRAINT kc_foreign FOREIGN KEY (课程号) REFERENCES 课程(课 程号 )
USE STUDENT1
GO
ALTER TABLE 成绩
DROP CONSTRAINT st_xh
2.3.4 check约束
CHECK约束用来限制用户输入某一个列的数据, 即在该列中只能输入指定范围的数据。
//创建表时定义check约束 在STUDENT1数据库中创建表books,其中包含CHECK约束定义。
USE STUDENT1
GO
CREATE TABLE books (书号 smallint PRIMARY KEY,
书名 varchar(50) NOT NULL,
最高价 tinyint CHECK (最高价 <= 250) /我们指定最高价这个列的值的范围
*书允许的最高价CHECK约束*/ )
通过修改STUDENT1数据库的“成绩”表,增加成绩字段的 CHECK约束。
USE STUDENT1
GO
ALTER TABLE 成绩
ADD CONSTRAINT cj_constraint CHECK (成绩>=0 and 成绩 <=100) //这个时候我们没有指明对哪个列加上这个约束,因为在后面的条件中我们可以判断出是成绩这个列
删除例5-23*创建的CHECK约束。
USE STUDENT1
GO
ALTER TABLE 成绩
DROP CONSTRAINT cj_constraint
2.3.5 default约束
当使用INSERT语句插入数据时,如果没有为某一个列指定数据,那么DEFAULT约束 就在该列中输入一个默认值。
在创建表时定义默认值约束
先在“STUDENT1”数据库中创建表ST,定义一个 “入学日期”字段的默认值为系统当前日期。
USE STUDENT1
GO
CREATE TABLE ST
(学号 char(6) NOT NULL,
姓名 char(8) NOT NULL, 专业名 char(10) NULL, 性别 bit NULL, 出生时间 smalldatetime NULL,
总学分 tinyint NULL, 备注 text NULL,
入学日期 datetime DEFAULT getdate() //我们在这里使用了默认值约束,入学时期这个列用getdate()的值作为默认值
alter table 学生 add constraint df_学生_性别 default '男' for 性别 //
df_学生_性别为约束的名字,
default表明约束的类型 ,‘男’是约束的值,for 性别表明我们是对性别这个列进行添加了默认值约束
alter table 学生
drop constraint df_学生_性别
3.对表中数据进行操作
3.1 插入数据
在“教学库”数据库的“学生表”中插入一行数据 (学号、姓名、性别、年级)为(‘0100215’、‘刘玲玲’、 ‘女’、‘10级’)。
USE 教学库
GO
INSERT into 学生表(学号,姓名,性别,年级) VALUES('0100215','刘玲玲','女','10级') //我们先用insert表明我们要进行插入操作,into学生表表明我们要插到学生表这个表里,后面是学生表的设计模式, values后面是具体的插入数据
3.2 update(修改)数据
在“学生”表中,将学号为 “120101”的学生姓名改为“王武” USE STUDENT1
GO
UPDATE 学生 SET 姓名='王武' WHERE 学号='120101' //我们通过where语句得知是对学生表里的哪个学生进行操作 将STUDENT1数据库的“学生”表中的 “性别”字段的值设为“男”。
USE STUDENT1
GO
UPDATE 学生 SET 性别='男‘ //我们这时没用where语句,所有就将学生表里的所有的性别都进行修改
3.3 删除数据
删除“学生”表中“120101”号学生的记 录。 USE STUDENT1
DELETE 学生 WHERE 学号 = '120101'
3.4 清空表中所有数据
truncate TABLE 学生
3.5 数据库文件的复制