当前位置: 首页 > news >正文

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

前言

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

一、数据库的创建与删除

CREATE DATABASE S_T
DROP DATABASE S_T

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

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

二、基本表的创建与删除

CREATE TABLE Student
(
  Sno varchar(12),
  Sname varchar(50),
  Sage tinyint,
  Ssex char(2),
)

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

DROP TABLE Student

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

三、基本表的修改

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

1.增加属性

ALTER TABLE Student
ADD Sdept char(20),Sid varchar(18)

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

2.修改已有属性

ALTER TABLE Student
ALTER COLUMN Sno varchar(16) not null

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

3.删除属性

ALTER TABLE Student
DROP COLUMN Sid

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

四、主码/外码的设置

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

1.主码的设置

ALTER TABLE Student
ADD CONSTRAINT PK__Student PRIMARY KEY (Sno)

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

2.外码的设置

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

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共同作为主码

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语句,下面介绍三种插入方法。

INSERT Student(Sno,Sname,Sage,Ssex,Sdept)
VALUES('201212121','李勇',20,'男','CS')

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

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

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

相关文章:

  • 网络安全应急响应-文件痕迹排查
  • Nginx 反向代理:从入门到精通
  • 硬盘分区格式方案之 MBR(Master Boot Record)主引导记录的 主分区 和 扩展分区 笔记250407
  • KWDB 创作者计划—人工智能赋能工业制造:智能制造的未来之路
  • M1使用docker制作镜像xxl-job,供自己使用
  • IntelliJ IDEA下开发FPGA——FPGA开发体验提升__上
  • springboot 项目怎样开启https服务
  • 当实体类中的属性名和表中的字段名不一样 ,怎么办 ?
  • 03_docker 部署 nginx 配置 HTTPS 并转发请求到后端服务
  • WebVTT 教程
  • dfs练习
  • Automattic 裁员16%,Matt Mullenweg称此举旨在提升盈利能力并增强投资实力
  • ZoomCharts使用方法
  • 线性代数:公共解
  • dolphinscheduler单机部署链接oracle
  • 智慧农业示范园区大数据分析平台整体解决方案
  • 【Easylive】Elasticsearch搜索组件详解
  • Android Input——IMS启动流程(二)
  • ubuntu下的node.js的安装
  • 带Label的韦恩图(vue)
  • 哪条线路客流最大?哪个站点早高峰人最多?上海地铁一季度客流报告出炉
  • 一箭六星,朱雀二号改进型遥二运载火箭发射成功
  • 跨越三十年友情,61岁余隆和60岁齐默尔曼在上海再度合作
  • 车载抬头显示爆发在即?业内:凭借市场和产业链优势,国内供应商实现反超
  • 王毅谈中拉论坛第四届部长级会议重要共识
  • 兰州大学教授安成邦加盟复旦大学中国历史地理研究所