数据库系统概论|第三章:关系数据库标准语言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 语句后添加待插入基本表的名字,同时按照设置的属性顺序逐一放入数据,注意数据类型的对应性 ,此外,若只是插入部分属性 ,则应该表明插入的属性的名称,达到部分插入的效果。

相关推荐
m0_613856291 小时前
mysql如何利用事务隔离级别解决特定业务冲突_mysql隔离方案选型
jvm·数据库·python
Adios7941 小时前
VPR:Pitts50K和Norland数据集下载
数据库
东风破1371 小时前
DM用户权限、表、约束等对象的基本操作,SQL日志的开启介绍
数据库·sql·dm达梦数据库
叶小鸡1 小时前
Java 篇-项目实战-苍穹外卖-笔记汇总
java·开发语言·笔记
收获不止数据库1 小时前
达梦9发布会归来:AI 时代,我们需要一款什么样的数据库?
数据库·人工智能·ai·语言模型·数据分析
小宇的天下2 小时前
Virtuoso GUI 界面中的关键模块定义
数据库
bqq198610262 小时前
MySQL 5.7 与 MySQL 8.0 的主要区别
数据库·mysql
juniperhan2 小时前
Flink 系列第21篇:Flink SQL 函数与 UDF 全解读:类型推导、开发要点与 Module 扩展
java·大数据·数据仓库·分布式·sql·flink
Elastic 中国社区官方博客3 小时前
Elastic-caveman : 在不损失 Elastic 最佳效果的情况下,将 AI 响应 tokens 减少64%
大数据·运维·数据库·人工智能·elasticsearch·搜索引擎·全文检索
互联网推荐官3 小时前
上海软件定制开发全流程拆解:需求分析、技术选型与交付管理的工程实践
大数据·数据库·需求分析