在当今世界,数据量呈指数级增长。需要一种方法来高效地存储、处理和使用这些数据。这促使数据库的发展。数据库用于管理从相关来源获取的数据,需要一个高效的数据管理系统。数据库是一种收集结构化信息的有序方式。因此,数据库在结构化和存储数据方面非常有用,然后任务是检索、处理和管理这些数据以供进一步使用,这使得数据库管理系统(DBMS)的演变变得重要。DBMS是一个软件系统,可用于访问、修改和管理存储在数据库中的数据。
数据库是一组逻辑相关的数据和元数据,旨在满足信息需求。数据库管理系统(DBMS)是一个帮助管理数据库中数据的软件系统。关系数据库是一种以表格形式组织数据的方式,其中行代表特定观察数据,列代表每个观察可能具有的属性。有许多关系数据库,如DB2、Oracle、SQL Server等。
SQL代表结构化查询语言。SQL帮助与数据库通信。用SQL向数据库发送查询。关系数据库使用SQL查询数据。SQL标准由ISO(国际标准化组织)维护。
SQL由四种类型的命令组成:DDL、DML、DCL和TCL。
DDL
用于指定关系数据库的结构,即模式。它提供创建、修改和删除各种数据库对象(如表、视图、存储过程、索引、约束等)的命令。DDL的输出放置在包含元数据的数据字典中。
DML
提供访问或操作关系数据库中数据的命令。数据检索、创建、删除和修改可以通过使用DML命令完成。用户可以通过DML命令指定所需的数据,而无需指定获取数据的过程。数据库引擎负责如何检索数据。
通常,数据库管理员有权授予和撤销关系数据库的权限。每当用户提交查询时,数据库会检查授予的权限,并在未授权的情况下拒绝查询。DCL
使用户能够为各种数据库对象(如视图、表、存储过程等)提供访问权限。
TCL
指定开始和结束事务的命令。事务由一系列以原子方式(全部或无)应用的SQL语句组成。提交使事务所做的所有更改永久保存在数据库中,而回滚则撤销事务所做的所有更改。
在深入了解这些命令之前,需要了解SQL中的一些重要主题。让快速浏览一下SQL中使用的数据类型和操作符。
字符数据类型通常使用MySQL中的CHAR
和VARCHAR
定义。
CHAR(n):用于存储具有预定长度的字符。
VARCHAR(n):用于存储长度变化较大的字符。
存储特性:如果存储的数据长度小于定义的大小,则CHAR
类型会应用尾随空格,而VARCHAR
类型则不会。
最大尺寸:CHAR
为2000字节,VARCHAR
为4000字节。
SQL支持SMALLINT
、INTEGER
和INT
数据类型,用于存储整数。Oracle不对它们定义不同的大小限制。它们在内部都被处理为具有38位精度。
非整型数据类型具有整数部分和小数部分。这些是NUMERIC
、DECIMAL
或NUMBER
。
精度:总的有效数字数量,包括小数点前后的数字。
小数位数:允许小数点后的数字数量。
这些是MySQL中的其他一些数据类型。
DATE:用于存储不需要时间部分的日期数据,例如出生日期。
TIMESTAMP:用于存储精确到十亿分之一秒(9位数字)的日期数据,例如交易时间。
CLOB(字符大对象数据):用于存储大型字符数据。
BLOB(二进制大对象数据):用于存储大型二进制文件,如电影或图像。
算术操作符、比较操作符和逻辑操作符在SQL中扮演着重要的角色。
算术操作符:包括加法(+)、减法(-)、乘法(*)和除法(/)。
比较操作符:包括等于(=)、不等于(<>)、大于(>)、小于(<)、大于等于(>=)和小于等于(<=)。
逻辑操作符:包括与(AND)、或(OR)和非(NOT)。
现在让深入了解编写SQL命令。
1) CREATE
:用于在数据库中创建表。在MySQL中的语法:
CREATE TABLE TableName (ColumnName1 DATATYPE, ColumnName2 DATATYPE,.....);
在创建表时,可以应用一些约束来强制数据完整性。这些约束通常与CREATE TABLE
语句一起指定。
约束可以是单列约束(适用于单列)或复合约束(适用于多列),也可以是列级(与列定义一起指定)和表级约束(在列定义后指定)。
1) SELECT
:用于从数据库中检索或提取数据。可以提取整个表或根据某些指定规则提取。返回的数据存储在结果表中,这个结果表也称为结果集。
SELECT FROM
2) INSERT
:用于将新数据输入数据库中的表。也可以使用方法来通过指定select查询来插入表中的值。
INSERT INTO TableName (Col_1, Col_2, Col_3, ....., Col_n) VALUES (Val_1, Val_2, Val_3, ....., Val_n)
UPDATE SET
DELETE FROM TableName
TRUNCATE TABLE TableName