数据库系统概论|第三章:关系数据库标准语言SQL—课程笔记2

前言

经过前文的简单介绍,初步了解了SQL语言的特点以及基本概念,本文将进行具体代码编写的介绍 ,通过相关实例对于代码进行深度学习与分析。本小节主要介绍关于数据库的建立、表的建立、主码与外码的设置、数据的插入进行展开。

一、数据库的创建与删除

R 复制代码
CREATE DATABASE S_T
DROP DATABASE S_T

上面两行是创建/删除数据库的基本语句,CREATE表示创建,DROP表示删除,而"S-T"位置表示该数据库的名字,用户可以自行设置。

R 复制代码
CREATE DATABASE [S_T_201215]  
ON (
    NAME = N'S_T_201215_dat', 
    FILENAME = N'D:\S_T_201215_dat.mdf' , 
    SIZE = 5, 
    MAXSIZE = 10, 
    FILEGROWTH = 5
) 
LOG ON (
    NAME = N'S_T_201215_log', 
    FILENAME = N'D:\S_T_20151215_log.ldf' , 
    SIZE = 5, 
    MAXSIZE = 20, 
    FILEGROWTH = 2
)
GO

上述代码介绍了数据库比较高级的创建方法,可以在创建过程中对于数据文件(上半部分)以及事务日志文件(下班部分)的存储位置、存储名称、初始大小、最大大小以及每次扩展大小进行详细描述。

上面一段代码的具体含义为:

  • 创建一个名为 S_T_201215 的新数据库。
  • 在 D: 盘下创建一个主数据文件(****.mdf ,初始大小为 5 MB ,最大大小为 10 MB ,每次扩展增长 5 MB
  • 在 D: 盘下创建一个事务日志文件(****.ldf ,初始大小为 5 MB ,最大大小为 20 MB ,每次扩展增长 2 MB

二、基本表的创建与删除

R 复制代码
CREATE TABLE Student
(
  Sno varchar(12),
  Sname varchar(50),
  Sage tinyint,
  Ssex char(2),
)

关于基本表的创建,使用仍然为CREATE 这一语句,"Student"处可以进行自行命名,而括号中的部分便体现了该表中的各个属性,比如属性"Sno" ,它所对应的数据类型为"varchar(12)",不同属性之间用逗号隔开,这样便创建好了一个基本表。

R 复制代码
DROP TABLE Student

关于基本表的删除,仍然采用DROP这一语句,与数据库的建立相同,便不再赘述。

三、基本表的修改

基本表的修改,需要运用ALTER 这一语句,关于基本表的修改,有以下三种情况:增加属性、修改已有属性、删除属性,下面进行逐一分析。

1.增加属性

R 复制代码
ALTER TABLE Student
ADD Sdept char(20),Sid varchar(18)

增加属性使用ADD 这一语句,在使用过程中,直接在ADD后面输入需要增加的属性名称与其所对应的数据类型 。如上所示,便是++添加数据类型为"char(20)"的Sdept属性以及数据类型为"varchar(18)"的Sid属性。++

2.修改已有属性

R 复制代码
ALTER TABLE Student
ALTER COLUMN Sno varchar(16) not null

修改已有属性时,要注意运用ALTER COLUMN 这一语句,然后在其后面输入待修改的属性名称以及修改后的定义即可。如上所示,便是将原来++添加数据类型为"varchar(12)"的Sno属性修改为数据类型为"varchar(16)",并要求非空。++

3.删除属性

R 复制代码
ALTER TABLE Student
DROP COLUMN Sid

删除属性操作较为简单,直接运用DROP COLUMN 语句,将待删除属性名称输入即可。如上所示,便是将原来++Sid属性删除。++

四、主码/外码的设置

关于主码/外码的设置,其实是对于基本表参照完整性的设置,其本质还是在对基本表进行修改,所以还是要使用ALTER语句。

1.主码的设置

R 复制代码
ALTER TABLE Student
ADD CONSTRAINT PK__Student PRIMARY KEY (Sno)

设置主码,相当于进行增加限制,因此采用ADD CONSTRAINT 语句,然后PK__Student PRIMARY KEY 表示为该基本表设置主码**。** 如上所示,便是将++Sno属性设置为Student基本表的主码/主键。++

2.外码的设置

设置外码之前,我们首先创建另一个基本表SC

R 复制代码
CREATE TABLE SC
(
  Sno varchar(12) not null,
  Cno varchar(10) not null,
  Grade int,
)
go

ALTER TABLE SC
ADD CONSTRAINT PK__SC PRIMARY KEY (Sno,Cno)
go

上述代码创建了一个包含属性Sno、Cno、Grade 三个属性的基本表SC ,同时设置Sno、Cno共同作为主码

R 复制代码
ALTER TABLE SC
ADD CONSTRAINT FK__SC__Sno FOREIGN KEY (Sno) REFERENCES Student (Sno)

外码的设置代码较为复杂,同样还是ADD CONSTRAINT 语句,FK__SC__Sno FOREIGN KEY 表示设置外码,而后面的REFERENCES 表述外码的数据源来自于哪个基本表。如上所示,便是将++Sno属性设置为SC基本表的外码,被参照表是Student。即,SC中的Sno属性的数据源来自于Student中的Sno属性。++

五、数据的插入

关于数据的插入,使用INSERT语句,下面介绍三种插入方法。

R 复制代码
INSERT Student(Sno,Sname,Sage,Ssex,Sdept)
VALUES('201212121','李勇',20,'男','CS')

INSERT Student
VALUES('201215122','刘晨',19,'女','MA')

INSERT Student(Sno,Sname)
VALUES('201212123','王敏')

基本表中数据的插入操作较为简单,直接在INSERT 语句后添加待插入基本表的名字,同时按照设置的属性顺序逐一放入数据,注意数据类型的对应性 ,此外,若只是插入部分属性 ,则应该表明插入的属性的名称,达到部分插入的效果。

相关推荐
Oo_Amy_oO6 分钟前
数据库架构
数据库·数据库架构
气π10 分钟前
【Vue-组件】学习笔记
vue.js·笔记·学习
-天凉好秋-32 分钟前
Springboot 同时支持不同的数据库,Oracle,Postgresql
数据库·spring boot·oracle
桜吹雪1 小时前
milvus部署踩坑笔记
数据库
李迟1 小时前
TiDB 数据库8.1版本编译及部署
数据库·tidb
苏卫苏卫苏卫1 小时前
【Vue】选项卡案例——NBA新闻
开发语言·前端·javascript·css·vue.js·笔记
Sherlock Ma1 小时前
HTML零基础入门笔记:狂神版
前端·经验分享·笔记·html·html5·学习方法·改行学it
sumatch2 小时前
PyTorch 笔记
人工智能·pytorch·笔记
OneQ6662 小时前
C++自学笔记——动态创建对象
c++·笔记·算法
kfepiza2 小时前
btrfs , ext4 , jfs , ntfs , refs , xfs , zfs 对比笔记250406
linux·windows·笔记