SQL概述
结构化查询语言(Structured Query Language, SQL)是关系数据库的标准语言,也是一个通用的、功能极强的关系数据库语言。其功能不仅仅是数据查询,而是包括数据库模式创建、数据库数据的插入与修改、数据库安全性完整定义与控制等一系列功能。
SQL的主要特点
- 综合统一,集各种功能于一体,语言风格统一。
- 高度非过程化,只要提出“做什么”,而无须指明“怎么做”,大大减轻了用户负担。
- 面向集合的操作方式,不仅操作对象,查找结果可以是元组的集合,一次插入、删除、更新操作的对象也可以是元组的集合。
- 以同一种语法结构提供多种使用方式,既是独立的语言,又可以嵌入到高级语言程序中使用。在两种不同使用场景中,语法结构基本一致,提供了极大的灵活性与方便性。
SQL的基本概念
支持SQL的关系数据库管理系统同样支持关系数据库三级模式结构。
- 用户可以用SQL对基本表和视图进行查询或其他操作,基本表和视图一样,都是关系。
- 基本表是本身独立存在的表,在关系数据库中一个关系对应一个基本表。一个或多个基本表对应一个存储文件,一个表可以带若干索引,索引也存放在存储文件中。
- 存储文件的逻辑结构组成了关系数据库的内模式。存储文件的物理结构对最终用户是隐蔽的。
- 视图是从一个或几个基本表导出的表。本身不独立存储在数据库中,即数据库中只存放视图的定义而不存放视图对应的数据。这些数据存放在导出视图的基本表中,因此视图是一个虚表。视图在概念上与基本表相同,用户可以再视图上再定义视图。
数据库的定义与删除
一个关系数据库管理系统的实例中可以建立多个数据库,一个数据库中可以建立多个模式 ,一个模式下通常包括多个表、视图和索引等数据库对象。
因个人习惯,本文使用win11操作系统在mysql 8.0上进行操作演示。
首先打开cmd窗口,进入mysql命令行:
数据库创建语句如下:
CREATE DATABASE <数据库名>;
下图为创建一个名为demo
的数据库:
可以使用SHOW DATABASES
来检查数据库是否创建成功。
如果运行CREATE DATABASE
语句而未指定IF NOT EXISTS
并且数据库已经存在,则会出现错误,因此,最好使用如下语句来防止错误:
CREATE DATABASE IF NOT EXISTS <数据库名>;
数据库删除语句如下:
DROP DATABASE <数据库名>;
同理,使用删除语句时也可以使用IF EXISTS
避免报错。
注意
- 关于数据库的命名规范,数据库并没有强制命名规则,但不同操作系统可能存在大小写冲突,为避免麻烦,建议命名时统一使用小写,单词之间使用’_'隔开。
- 由于mysql中没有模式(schema)与数据库(database)的详细区分,本文便不记录书中“模式的定义与删除”部分。
- DATABASE不能改名,一些可视化工具可以改名,实际上是通过建新库,把所有表复制到新库再删旧库实现的。