数据库基本操作及SQL语言基础
目录
一、基础知识
1.1、数据库相关术语
数据库(DB)是一个以某种组织方式存储在磁盘上的数据的集合。它通过现有的数据库管理系统(如SQL Server、Oracle、MySQL等)创建和管理。
数据库不仅包括描述事物的数据本身,而且还包括相关事物之间的联系。数据库中存放的数据可以被多个用户或多个应用程序共享。例如,某航空公司票务管理系统的数据库,在同一时刻可能有多个售票场所都在访问或更改该数据库中的数据。
数据库应用系统是指基于数据库的应用软件,如学生管理系统、财务管理系统等。数据库应用系统由两部分组成,分别是数据库和程序。数据库用数据库管理系统创建,程序可以用任何支持数据库编程的程序设计语言编写,如Java、C#、PHP、Python等。
数据库管理系统(DBMS)用来创建和维护数据库。例如,SQL Server、Oracle、MySQL等都是数据库管理系统。
1.2、SQL简介
SQL是结构化查询语言(Structured Query Language)的简称。它是一种标准计算机语言,用来访问和操作数据库系统,使我们有能力访问数据库。
在ANSI标准中定义了很多支持数据库操作的关键词,如SELECT、UPDATE、DELETE、INSERT、WHERE等。
SQL语言的执行环境在几乎所有的关系型数据库管理系统都支持。
1.3、数据库的类型
最常用的数据库分为两种:关系型数据库和非关系型数据库
关系型数据库管理系统是DBMS的一种,用于创建和维护关系型数据库。当今流行的大多数DBMS其实都是关系型数据库管理系统,如:SQL Server、Oracle、MySQL等。
非关系型数据库也称为NoSQL数据库,Not Only SQL。NoSQL数据库是作为传统关系型数据库的一个有效补充。NoSQL数据库在特定的场景下可以发挥出难以想象的高效率和高性能。例如,关系型数据库IO瓶颈、性能瓶颈都难以突破,NoSQL(非关系型)数据库可以针对特定场景,以高性能和使用便利、功能特异化。目前的数据库产品,像:Redis、MongoDB。
二、MySQL和SQL Server简介
- MySQL是由瑞典MySQL AB公司开发的,目前属于Oracle旗下产品。在Web应用方面,MySQL是最好的RDBMS(关系型数据库管理系统)应用软件。
安装完成后,可以在Windows服务里看到一个名为“MySQL80”的服务并且已经启动,bin目录默认为“C:\Program Files\MySQL\MySQL Server 8.0\bin”。
- 使用命令行执行SQL语句,在Windows系统|“命令提示符”,打开控制台窗口;直接找到MySQL自带的命令窗口。在命令窗口提示符下,输入密码:
- 在MySQL中可对多个个数据库进行操作,因此需要首先选择数据库,使用命令查看所有数据库。
show databases; |
create database College; |
使用SQL Server管理工具执行SQL语句,在SQL新建查询中输入创建表student的SQL语句:
CREATE TABLE student ( ID char(4) NOT NULL, --学号 name char(20) NOT NULL, --姓名 sex char(2) NOT NULL DEFAULT '男', --性别 birthday datetime, --出生日期 origin varchar(50), --来源地 contact char(12), --联系方式 institute char(20) --所属学院 ) |
三、SQL语言基础
SQL的9个核心动词
SQL功能 | 动词 |
数据定义DD | CREATE、DROP、ALTER |
数据查询DQ | SELECT |
数据更新DM | INSERT、UPDATE、DELETE |
数据控制DC | GRANT、REVOKE |
SQL语言既是自含式语言,又是嵌入式语言;作为自含式语言,能够独立地用于联机交互,用户可以在终端键盘上直接输入SQL命令对数据库进行操作;作为嵌入式语言,SQL语句能够嵌入到高级语言中,为程序员的程序设计提供了方便。
3.1、SQL的功能
- 数据定义
用DDL语言定义关系数据库的逻辑结构,即模式、内模式、外模式,可以实现对表、视图、索引文件的定义、修改与删除等等操作。
- 数据操作
用DML语言可实现数据查询与数据更新操作。数据查询包括对数据的查询、分类、排序、统计与检索等操作,数据更新包括对数据的插入、删除、与修改等操作。
- 数据控制
用DCL语言可控制数据的安全性、完整性与事物控制等内容。SQL语言通过对数据库用户的授权与收回授权语句来实现有关数据的存取控制,以确保数据库的安全性与完整性性。
3.2、SQL语言的组成
SQL语言集数据定义语言DDL、数据查询查询语言DQL、数据操纵语言DML和数据控制语言DCL的功能于一体,可以完成数据库系统的所有操作。
3.2.1、数据定义语言——DDL
数据定义语言(DDL)用于创建、删除和管理数据库、数据表以及视图与索引。DDL语句通常包括对象的创建(CREATE)、修改(ALTER)、以及删除(DROP)等命令。
DDL的主体语句
操作对象 | 语句 | 功能 |
表 | CREATE TABLE | 新建数据表 |
ALTER TABLE | 修改数据表 | |
DROP TABLE | 删除数据表 | |
视图 | CREATE VIEW | 新建视图 |
DROP VIEW | 删除视图 | |
模式 | CREATE SCHEMA | 新建模式 |
DROP SCHEMA | 删除模式 | |
域 | CREATE DOMAIN | 新建数据值域 |
ALTER DOMAIN | 修改域定义 | |
DROP DOMAIN | 删除域 | |
存储过程 | CREATE PROCEDURE | 新建存储过程 |
DROP PROCEDURE | 删除存储过程 | |
触发器 | CREATE TRIGGER | 新建触发器 |
DROP TRIGGER | 删除触发器 |
3.2.2、数据查询语言——DQL
数据查询语言(DQL)用于查询、检索数据库中的数据。该语言使用SELECT语句达到查询数据的目的。使用SELECT语句除了可以简单的查询数据外,还可以排序数据、连接多个数据表、统计汇总数据等。SELECT语句由一系列必选或可选的子句组成,如FROM子句、WHERE子句、ORDER BY子句、GROUP BY子句和HAVING子句等。
3.2.3、数据操纵语言——DML
数据操纵语言(DML)用于插入数据、修改数据和删除数据。该语言由3种不同的语句组成,分别是INSERT语句、UPDATE语句和DELETE语句。INSERT语句用于向表中插入数据,UPDATE语句用于修改表中的数据,而DELETE语句用于删除表中的数据。
3.2.4、数据控制语言——DCL
数据控制语言(DCL)用于设置或者更改数据库用户或角色权限。DCL语句主要包括GRANT语句、DENY语句和和REVOKE语句等。其中,GRANT语句用于授予用户访问权限,DENY语句用于拒绝用户访问,而REVOKE语句用于解除用户访问权限。
3.3、探索SQL环境
3.3.1、了解SQL数据库的层次结构
SQL语言支持关系数据库三级模式结构,其层次结构如下:
所有基本表构成了数据库的模式,视图与部分基本表构成了数据库的外模式,数据库的存储文件与其索引文件构成了关系数据库的内模式。
在SQL中关系模式(对应模式)称为“基本表”,存储模式(对应内模式)称为“存储文件”,子模式(外模式)称为“视图”,元组(或记录)称为“行”,属性(或字段)称为“字段”。
基本表是独立存在的,在SQL中一个关系对应一个表。一个或多个基本表对应一个存储文件,每个表有若干索引,索引也存放在存储文件中。视图是从一个或多个基本表导出的虚拟表,视图本身不独立存储在数据库中,数据库中只存储视图的定义而不存储对应的数据,视图对应的数据被存放在基本表中。用户可以用SQL语句对视图和基本表进行查询等操作。存储文件的逻辑结构组成了关系数据库的内模式,所以其物理结构是任意的,对用户是透明的。
3.3.2、在SQL环境中命名对象
在SQL环境中命名对象要遵循一定的规则,如对象名称不允许超过128个字符等。除此之外,SQL-99标准中还制定了两类不同的命名规则,即正则标识符规则和定界标识符规则。其中,首选采用的命名规则是正则标识符规则,其规定的约束如下:
- 标识符名(对象名)不区分英文字母的大小写。例如,id和ID是相同的。
- 标识符只允许使用字母、数字和下划线(_)。例如,stu_id、vw_computer_name等都是合法的标识符。
- 不允许使用SQL保留的关键字。
tips:正则标识符规则中不区分大小写的原因是,所有名称在存储时都被SQL自动修改成大写。
命名对象时,除了可以采用正则标识符规则外,也可以采用定界标识符规则。不过需要注意的是,当选择了一种命名规则后,就应该从始至终都坚持这一命名规则,而不是混合使用两种命名规则。下面是定界标识符规则的约束:
- 标识符必须放在一组双引号中,如“id”。
- 引号不会被存入数据库,而其他所有字符都按原样存放数据库。
- 名称区分大小写。例如,“id”和“ID”是不同的。
- 允许使用大部分字符,其中还包括空格。
- 可以使用SQL保留的关键字。