--*******************************1.创建一个名称为S2224的数据库*****************************
--创建一个名称为S2224的数据库 数据名称 路径(D:\)
--先将数据库切换到master
use master
if exists (select * from sysdatabases where name='S2222')
drop database S2222
Create database S2222
on primary --主文件的标志
(
name='S2222_data',--逻辑名称
filename='D:\\S2222_data.mdf',--物理名称
size=2mb,
maxsize=50mb,
filegrowth=15%
)
log on
(
name='S2222_log',--逻辑名称
filename='D:\\S2222_log.ldf',--物理名称
size=2mb,
maxsize=50mb,
filegrowth=1
)
--**************************************************************************************************
--*******************************2.创建一个学生表Student**************************************
--Student(Sid,Sname,Sage,Sremark,Cid)
use S2222
CREATE TABLE Student --表名
(
Sid int NOT NULL,
Sname varchar(10) NOT NULL,
Sage int NOT NULL,
Sremark varchar(50) NULL,
Cid int NOT NULL
)
--*********************************3.创建一个年级表Grade(Cid,cname)************************
use S2222
go
CREATE TABLE Grade
(
GradeID int identity(1,1),
GRadename varchar(20)
)
--**************4.代码方式给Student,Grade表中添加3条数据**************************************************************
INSERT INTO Student (Sid,Sname,Sage,Sremark,Cid) VALUES (1,'王1',20,'xxxxx',1)--向学生表中添加单行数据
INSERT INTO Student (Sid,Sname,Sage,Sremark,Cid) VALUES (2,'王2',20,'xxxxx',1)
INSERT INTO Student (Sid,Sname,Sage,Sremark,Cid) VALUES (3,'王3',20,'xxxxx',1)
INSERT INTO Grade (GRadename) SELECT ('S1') UNION
SELECT ('S2') UNION
SELECT ('Y2')
--方案三
INSERT INTO Grade (GRadename)
values('S11'),('S22'),('S333')
--主键 和自增列是不是一回事儿? 主键未必是自增列,自增列也不一定是主键
--他们两者之间是没有联系
--他们两者没有必然关系
--主键用途:为了唯一标识表中的一条记录
--自增:程序员不用手动给该列赋值。
--********************************************************************************************************
--****************************************5.添加主键约束****************************************************************
-- 添加主键约束 (GradeID)
ALTER TABLE Student
ADD CONSTRAINT PK_Sid primary key (Sid)
ALTER TABLE Grade
ADD CONSTRAINT PK_GradeID primary key (GradeID)
--********************************************************************************************************
--******************************** 6.添加外键约束***************************************************
/*常见的约束:
1:主键约束
2:唯一约束
3:检查约束
4:外键约束
5:默认约束
6:非空约束
*/
--添加外键约束
ALTER TABLE Student
ADD CONSTRAINT FK_Grade_Student_Cid FOREIGN key (Cid)
REFERENCES Grade (GradeID)
--*******************7.添加唯一约束,保证学生姓名唯一****************************
--添加唯一约束
alter table Student
add constraint UQ_IdentityCard unique (IdentityCard)
--********************8.添加默认约束(备注默认值为:无备注)*******************
--添加默认约束
alter table Student
add constraint DF_Address default ('地址不详') for Address
--**********************9.添加检查约束学生年龄>=18岁****************************
--10.删除数据库,删除表,删除约束
drop table student --从表或者叫子表
--删除约束
--delete 表中的记录
--drop 结构
--问题:请说出delete truncate 和drop 区别?站在不同维度
-- 1.delete 和 truncate删除 表中的记录,表结构还在 , drop删除的是表结构
--2.delete 可以删除部分数据,可以跟where ,但是Truncate只能删除该表中所有记录,,不能和where连用
--3.Truncate 删除速度快,delete 快
--4.都可以删除数据
--5.delete占用资源大,Truncate占用资源小
--6 delete 删除后,编号在下一次insert时候继续+1 Truncate 从1开始
--7.delete删除的时候,需要记录日志,所以速度慢!Truncate不需要记录日志!!
优化 数据库的设计功能
最新推荐文章于 2023-03-16 18:13:02 发布