数据库系统概论(超详解!!!) 第四节 关系数据库标准语言SQL(Ⅰ)

news2024/12/23 0:17:05

1.SQL概述

SQL(Structured Query Language)结构化查询语言,是关系数据库的标准语言

SQL是一个通用的、功能极强的关系数据库语言

SQL的动词

基本概念

基本表 :本身独立存在的表; SQL中一个关系就对应一个基本表; 一个(或多个)基本表对应一个存储文件 ;一个表可以带若干索引。

存储文件 :逻辑结构组成了关系数据库的内模式; 物理结构是任意的,对用户透明。

视图: 从一个或几个基本表导出的表; 数据库中只存放视图的定义而不存放视图对应的数据 ;视图是一个虚表; 用户可以在视图上再定义视图。

2.数据定义

关系数据库系统支持三级模式结构,其模式、外模式、和内模式 中的基本对象有表、视图、和索引。因此SQL的数据定义功能包括: 模式定义、表定义、视图和索引的定义

模式:现代关系数据库管理系统提供了一个层次化的数据库对象命名机制

一个关系数据库管理系统的实例(Instance)中可以建立多个数据库, 一个数据库中可以建立多个模式, 一个模式下通常包括多个表、视图和索引等数据库对象。

master为数据库,新建的数据库会在该数据库的目录之下。

1.模式定义

定义模式实际上定义了一个命名空间 。

在这个空间中可以定义该模式包含的数据库对象,例如基本表、视图、索引等。

创建新数据库

CREATE DATABASE 数据库名 /*该系统不区分大小写*/
go   /*开始运行*/

进入数据库

USE 数据库名
GO

将会从mater位置,转移到刚刚所建立数据库的位置。以下所有操作都在新建数据库下进行。

2.基本表的基本操作

以下以此表作为实例建立数据库

1.定义基本表

		CREATE TABLE <表名>
      (<列名> <数据类型>[ <列级完整性约束条件> ]
      [,<列名> <数据类型>[ <列级完整性约束条件>] ] 
   …
      [,<表级完整性约束条件> ] );

<表名>:所要定义的基本表的名字

<列名>:组成该表的各个属性(列)

<列级完整性约束条件>:涉及相应属性列的完整性约束条件

<表级完整性约束条件>:涉及一个或多个属性列的完整性约束条件

如果完整性约束条件涉及到该表的多个属性列,则必须定义在表级上,否则既可以定义在列级也可以定义在表级。

CREATE TABLE Student          
      (Sno   CHAR(8) PRIMARY KEY,       /*Sno为主码*/                                               
        Sname VARCHAR(20) UNIQUE,       /*Sname取唯一值*/ 
        Ssex    CHAR(6),
        Sbirthdate Date,
        Smajor  VARCHAR(40)
      ); 


CREATE TABLE  Course
          (Cno       CHAR(5) PRIMARY KEY,
        	 Cname  VARCHAR(40) NOT NULL,      /*Cname不为空*/      
            Ccredit  SMALLINT,
            Cpno     CHAR(5),
            FOREIGN KEY (Cpno) REFERENCES  Course(Cno)  
                         /*Cpno是外码,被参照表是Course,被参照列是Cno*/
          ); 

CREATE TABLE SC
  (Sno CHAR(8),
   Cno CHAR(5),
   Grade SMALLINT,            
   Semester CHAR(5),          
   Teachingclass CHAR(8),     
   PRIMARY KEY (Sno,Cno),    	/* 主码由两个属性构成,必须作为表级完整性进行定义*/
   FOREIGN KEY (Sno) REFERENCES Student(Sno),
                                /* 表级完整性约束条件,Sno是外码,被参照表是Student */
   FOREIGN KEY (Cno) REFERENCES Course(Cno)
                                /* 表级完整性约束条件, Cno是外码,被参照表是Course*/
);

SQL中域的概念用数据类型来实现

定义表的属性时, 需要指明其数据类型及长度 ,选用哪种数据类型 ,取值范围 ,要做哪些运算。

字符数据类型

精确数值数据类型

近似数数据类型

二进制数据类型

日期和时间数据类型

2.数据录入

INSERT INTO Student
values 
('20180001','李勇','男','2004-3-8','信息安全'),
('20180002','刘晨','女','2003-9-1','计算机科学与技术'), 
('20180003','王敏','女','2005-8-1','计算机科学与技术'),
('20180004','张立','男','2004-1-8','计算机科学与技术'),
('20180005','陈新奇','男','2005-11-1','信息管理与信息系统'),
('20180006','赵明','男','2004-6-12','数据科学与大数据技术'),
('20180007','王佳佳','女','2002-12-7','数据科学与大数据技术'),
('20180008','刘莎莎','女','2003-10-5','信息安全')

INSERT INTO Course
values 
('81001','程序设计基础与C语言',4,NULL),
('81002','数据结构',4,'81001'),
('81003','数据库系统概论',4,'81002'),
('81004','信息系统概论',4,'81003'),
('81005','操作系统',4,'81001'),
('81006','Python语言',3,'81002'),
('81007','离散数学',4,NULL),
('81008','大数据技术概论',4,'81003'),
('81009','DB_Design',2,'81003')
          

INSERT INTO SC
values 
('20180001','81001',85,'20192','81001-01'),
('20180001','81002',96,'20201','81002-01'),
('20180001','81003',87,'20202','81003-01'),
('20180002','81001',80,'20192','81001-02'),
('20180002','81002',98,'20201','81002-01'),
('20180002','81003',71,'20202','81003-02'),
('20180003','81001',81,'20192','81001-01'),
('20180003','81002',76,'20201','81002-02'),
('20180004','81001',56,'20192','81001-02'),
('20180004','81002',97,'20201','81002-02'),
('20180005','81003',68,'20202','81003-01'),
('20180006','81001',null,'20192','81001-02')

3.修改基本表

ALTER TABLE <表名>
[ ADD  <新列名> <数据类型> [ 完整性约束 ] ]
[ ADD <表级完整性约束>]
[ DROP  COLUMN <列名>]
[ DROP CONSTRAINT<完整性约束名>
[ALTER COLUMN <列名><数据类型> ] ;

<表名>是要修改的基本表

ADD子句用于增加新列、新的列级完整性约束条件和新的表级完整性约束条件

DROP COLUMN子句用于删除表中的列

DROP CONSTRAINT子句用于删除指定的完整性约束条件

ALTER COLUMN子句用于修改原有的列定义,包括修改列名和数据类型

不管基本表中原来是否已有数据,新增加的列一律为空值

4.删除基本表

DROP TABLE <表名>

若表上建有视图,表不能删除

5.索引的建立与删除

建立索引的目的:加快查询速度

关系数据库管理系统中常见索引: 顺序文件上的索引; B+树索引; 散列(hash)索引; 位图索引

特点: B+树索引具有动态平衡的优点; HASH索引具有查找速度快的特点

谁可以建立索引 :数据库管理员 或 表的属主(即建立表的人)

谁维护索引 :关系数据库管理系统自动完成

使用索引 :关系数据库管理系统自动选择合适的索引作为存取路径,用户不必也不能显式地选择索引

建立索引:

CREATE [UNIQUE] [CLUSTERED] INDEX <索引名> 
ON <表名>(<列名>[<次序>][,<列名>[<次序>] ]…);

<表名>:要建索引的基本表的名字

索引:可以建立在该表的一列或多列上,各列名之间用逗号分隔

<次序>:指定索引值的排列次序,升序:ASC,降序:DESC。缺省值:ASC

UNIQUE:此索引的每一个索引值只对应唯一的数据记录

CLUSTERED:表示要建立的索引是聚簇索引

CREATE CLUSTERED INDEX Stusname            
ON   Student(Sname);

 在Student表的Sname(姓名)列上建立一个聚簇索引

在最经常查询的列上建立聚簇索引以提高查询效率

一个基本表上最多只能建立一个聚簇索引 ,经常更新的列不宜建立聚簇索引。

CREATE UNIQUE INDEX  Stusno ON Student(Sno);
CREATE UNIQUE INDEX  Coucno ON Course(Cno);
CREATE UNIQUE INDEX  SCno ON SC(Sno ASC,Cno DESC);

 Student表按学号升序建唯一索引      

Course表按课程号升序建唯一索引      

SC表按学号升序和课程号降序建唯一索引

删除索引

DROP INDEX <索引名> ON <表名>;

删除索引时,系统会从数据字典中删去有关该索引的描述。

DROP INDEX Stusname on student;

删除Student表的Stusname索引

6.数据字典

数据字典是关系数据库管理系统内部的一组系统表,它记录了数据库中所有定义信息: 关系模式定义; 视图定义 ;索引定义 ;完整性约束定义 ;各类用户对数据库的操作权限 ;统计信息等。

关系数据库管理系统在执行SQL的数据定义语句时,实际上就是在更新数据字典表中的相应信息。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1533176.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

一、初识 Web3

瑾以此系列文章&#xff0c;献给那些出于好奇并且想要学习这方面知识的开发者们 在多数时间里&#xff0c;我们对 web3 的理解是非常模糊的 就好比提及什么是 web1 以及 web2&#xff0c;相关概念的解释是&#xff1a; 1. 从 Web3 的开始 Web3&#xff0c;也被称为Web3.0&…

飞腾+FPGA+AI电力行业智能数据采集与分析网闸解决方案

行业痛点: 安全物联网闸在监控平台中的具体作用&#xff1a;35KV变电站是煤矿的动力核心&#xff0c;采矿人员上下井、煤炭提升输送、矿井通风等核心设备均依靠变电站提供电源。监控中心及时掌握变电站的运行状态对煤矿的安全生产非常重要。如若外部通过监控网络来控制变电站会…

ByteMD - 掘金社区 MarkDown 编辑器的免费开源的版本,可以在 Vue / React / Svelte 中使用

各位元宵节快乐&#xff0c;今天推荐一款字节跳动旗下掘金社区官方出品的 Markdown 编辑器 JS 开发库。 ByteMD 是一个用于 web 开发的 Markdown 编辑器 JavaScript 库&#xff0c;是字节跳动&#xff08;也就是掘金社区&#xff09;出品的 Markdown 格式的富文本编辑器&#…

区域规划(Regional Planning)的学习笔记

目录 一、概念题 1.区域的概念、类型、特性 2.区域分析的概念、主要内容 3.自然环境、自然资源的概念 4.区域自然资源评价的内容 5.可持续发展理论定义 6.经济增长、经济结构定义 7.产业结构概念 8.人口增长分析的含义、指标 9.技术进步概念、类型 10.技术进步对区域…

小侃威胁情报

0x01 什么是情报 百度百科释义&#xff1a; 情报“有情有报告的信息”&#xff0c;学者从情报搜集的手段来给其下定义&#xff0c;说情报是通过秘密手段搜集来的、关于敌对方外交军事政治经济科技等信息。还有学者从情报处理的流程来给其下定义&#xff0c;认为情报是被传递、整…

Vue响应式原理全解析

前言 大家好&#xff0c;我是程序员蒿里行。浅浅记录一下面试中的高频问题&#xff0c;请你谈一下Vue响应式原理。 必备前置知识&#xff0c;​​Vue2​​官方文档中​​深入响应式原理​​​及​​Vue3​​官方文档中​​深入响应式系统​​。 什么是响应式 响应式本质是当…

[隐私计算实训营学习笔记] 第1讲 数据要素流通

信任四基石 数据的分级分类 技术信任&#xff1a;全链路审计、闭环完成的数据可信流通体系 技术信任&#xff1a;开启数据密态时代 数据可流通的基础设施&#xff1a;密态天空计算

react ant design radio group, 自定义modal样式,radio样式

需求&#xff1a; modal 里面需要一个list 列表&#xff0c;列表有单选框&#xff0c;并且可以确认。 遇到的问题&#xff1a;自定义modal的样式&#xff0c;修改radio/ radio group 的样式 设计图如下&#xff1a; 代码&#xff1a; return (<Modaltitle"Duplica…

7.PWM开发SG90(手把手教会)

简介 PWM&#xff0c;英文名Pulse Width Modulation&#xff0c;是脉冲宽度调制缩写&#xff0c;它是通过对一系列脉冲的宽度进 行调制&#xff0c;等效出所需要的波形&#xff08;包含形状以及幅值&#xff09;&#xff0c;对模拟信号电平进行数字编码&#xff0c;也就是说通…

Transformer的前世今生 day02(神经网络语言模型、词向量)

神经网络语言模型 使用神经网络的方法&#xff0c;去完成语言模型的两个问题&#xff0c;下图为两层感知机的神经网络语言模型&#xff1a; 假设词典V内有五个词&#xff1a;“判断”、“这个”、“词”、“的”、“词性”&#xff0c;且要输出P(w_next | “判断”、“这个”、…

李国武:如何评估一家精益制造咨询公司的实施能力?

在制造业转型升级的大背景下&#xff0c;精益制造已成为企业提升竞争力、实现可持续发展的关键。然而&#xff0c;面对市场上众多的精益制造咨询公司&#xff0c;如何评估其实施能力成为了众多企业的难题。本文将从多个方面为大家揭示评估精益制造咨询公司实施能力的方法&#…

软考网工学习笔记(6) 广域通信网

公共交换电话网&#xff08;pstn&#xff09; 在pstn是为了语音通信而建立的网络。从20世纪60你年代开始用于数据传输 电话网有三个部分组成&#xff1a; 本地回路 &#xff0c;干线 和 交换机 。 干线 和 交换机 一般采用数字传输和交换技术 &#xff0c;而 本地回路基本采…

Tomcat介绍,Tomcat服务部署

目录 一、Tomcat 介绍 二、Tomcat 核心技术和组件 2.1、Web 容器&#xff1a;完成 Web 服务器的功能 2.2、Servlet 容器&#xff0c;名字为 catalina&#xff0c;用于处理 Servlet 代码 2.3、JSP 容器&#xff1a;用于将 JSP 动态网页翻译成 Servlet 代码 Tomcat 功能组件…

【自然语言处理】NLP入门(八):1、正则表达式与Python中的实现(8):正则表达式元字符:.、[]、^、$、*、+、?、{m,n}

文章目录 一、前言二、正则表达式与Python中的实现1、字符串构造2、字符串截取3、字符串格式化输出4、字符转义符5、字符串常用函数6、字符串常用方法7、正则表达式1. .&#xff1a;表示除换行符以外的任意字符2. []&#xff1a;指定字符集3. ^ &#xff1a;匹配行首&#xff0…

蓝桥杯练习题总结(二)dfs题、飞机降落、全球变暖

一、飞机降落 问题描述&#xff1a; N架飞机准备降落到某个只有一条跑道的机场。其中第 i 架飞机在 时刻到达机场上空&#xff0c;到达时它的剩余油料还可以继续盘旋 个单位时间&#xff0c;即它最早可以于 1, 时刻开始降落&#xff0c;最晚可以于时刻开始降落。降落过程需要个…

mysql笔记:24. 主从同步环境搭建

文章目录 主从同步的基本原理主从同步的搭建步骤1. 环境准备2. 配置主服务器&#xff08;Master&#xff09;3. 配置从服务器&#xff08;Slave&#xff09;4. 测试配置5. 常见故障5.1. 主从服务器上的MySQL版本不一致导致失败&#xff1f;5.2. Slave_IO_Running状态异常&#…

AI颠覆教学系统,ChatGPT对应试教育会带来哪些挑战?

ChatGPT爆火两个月&#xff0c;整个教育系统都在被颠覆。在全美范围内&#xff0c;许多大学教授、系主任和管理人员&#xff0c;都在对课堂进行大规模的调整&#xff0c;以应对ChatGPT对教学活动造成的巨大冲击。 我们的传统中高考选出的分霸&#xff0c;是更能吃苦&#xff0…

开发技术-FeignClient 对单个接口设置超时时间

1. 背景 FeignClient 调用某个接口&#xff0c;3s 没有结果就需要停止&#xff0c;处理后续业务。 2. 方法 FeignClient 自定义 name 属性 FeignClient(name "aaa" , url "xxx") public interface TestApi {ResponseBodyPOSTMapping(value "xx…

设计模式之抽象工厂模式解析

抽象工厂模式 1&#xff09;问题 工厂方法模式中的每个工厂只生产一类产品&#xff0c;会导致系统中存在大量的工厂类&#xff0c;增加系统的开销。 2&#xff09;概述 a&#xff09;产品族 和 产品等级结构 产品等级结构&#xff1a;产品的继承结构&#xff1b; 产品族&…

TnT-LLM: Text Mining at Scale with Large Language Models

TnT-LLM: Text Mining at Scale with Large Language Models 相关链接&#xff1a;arxiv 关键字&#xff1a;Large Language Models (LLMs)、Text Mining、Label Taxonomy、Text Classification、Prompt-based Interface 摘要 文本挖掘是将非结构化文本转换为结构化和有意义的…