SQL - Tables and Data Part 1
Relational Database Management System(RDBMS)
关系型数据库管理系统(RDBMS)是基于关系模型的数据库系统,它支持多种关系操作。关系模型是一种数据存储和检索的模型,它使用表格来组织数据,并通过关系操作(如选择、投影、连接等)来处理数据。RDBMS是当前最流行的数据库管理系统类型,被广泛应用于企业级应用、网站、数据仓库等领域。在原文中提到了一些知名的RDBMS软件,包括Oracle、DB2、MySQL和MariaDB、Ingres、PostgreSQL、Microsoft SQL Server和MS Access。
关键词解析:
- 关系型数据库(Relational Database):一种使用表格来存储数据的数据库,数据以行和列的形式组织,每一行代表一条记录,每一列代表一个字段。
- 关系模型(Relational Model):由E.F. Codd在1970年提出,是一种用于数据库管理的理论模型,它规定了数据如何以表格形式存储,以及如何通过关系操作来访问和处理这些数据。
- 关系操作(Relational Operations):在关系模型中定义的一系列操作,如选择(Select)、投影(Project)、连接(Join)等,用于从数据库中检索和修改数据。
RDBMS and Related Software
关系型数据库管理系统(RDBMS)中的 服务器-客户端 架构:
服务器应用:DBMS 是一个服务器端的应用程序(server application),通常运行在服务器(server)上,用于管理和维护数据库(DB)。服务器负责接收、处理和响应来自客户端的请求。
无用户界面:大多数 DBMS 自身不提供图形化用户界面,而是通过命令行接口或其他客户端工具来与其交互。
客户端应用程序与服务器应用程序进行通信:
• 客户端应用:客户端应用程序负责与 DBMS 进行交互。这些应用程序可以通过网络连接到数据库服务器,发送查询、插入、删除、更新等操作请求,并从服务器接收数据。
• 管理 DBMS 的客户端工具:有些客户端应用程序专门用于管理 DBMS。例如:
• DBeaver
• MySQL Workbench
• PhpMyAdmin
这些工具提供图形化界面,帮助用户管理数据库、编写 SQL 查询、查看表和数据等。
客户端与用户的交互:用户 通过客户端应用(client application)来访问和使用数据库系统中的数据和服务。
RDBMS 是 DBMS 的一种类型,两者都是用于管理数据的软件系统。
• RDBMS 专注于关系型数据库,是现代数据库系统的主流形式,而 DBMS 是更广泛的概念,包含了所有类型的数据库管理系统。
Structured Query Language(SQL)
数据库拥有自己的一套“编程语言”,叫做结构化查询语言(SQL)。SQL包含三个重要部分:数据定义语言(DDL)、数据操纵语言(DML)和数据控制语言(DCL)。
-
DDL (数据定义语言):DDL(Data Definition Language)是用于创建、修改或删除数据库结构的SQL语句集合。(允许用户定义specify存储在数据库中的数据类型、结构以及数据的约束constraint条件)
• CREATE:创建新的数据库或表。
• ALTER:修改现有的表结构。
• DROP:删除表或数据库。 -
DML (数据操纵语言):DML(Data Manipulation Language)是用于操作数据库中的数据的语言。它是数据库操作的核心部分。
• INSERT:向表中插入数据。
• UPDATE:更新现有数据。
• DELETE:删除数据。
• SELECT:从表中查询数据。 -
DCL:数据控制语言(Data Control Language),用于设置数据库访问权限(rights)和管理用户权限的语言部分。
• GRANT:授予用户权限。
• REVOKE:撤销用户权限。
数据定义语言(DDL)和数据操纵语言(DML)。数据定义语言用于定义或修改数据库结构,而数据操纵语言则用于对数据库中的数据进行操作。
XAMPP
XAMPP is a collection of software, including MySQL and PhpMyAdmin.
SQL Format
SQL语句(statements)应该用粗体的等宽字体(Courier字体)来书写
SQL关键字(keywords)不区分大小写(case-insensitive)
表名和列名等可以设置为区分大小写,这在某些数据库系统中是可配置(configured to)的。
SQL语句应该以分号(semi-colons)结束。
添加注释,使用两个破折号(dashes)后跟一个空格(space)来注释掉(comment out)一行代码。
Creating a Schema
创建一个数据库模式(Schema)是数据库管理的一个重要步骤。
创建模式的命令有两种,一种是使用CREATE SCHEMA
,另一种是使用CREATE DATABASE
。
schema(模式):在数据库中,一个schema包含了多个数据库组件,比如表(关系)、视图、域、断言、排序规则、翻译和字符集等。这些组件通常拥有相同的创建者或所有者。
创建数据库
CREATE DATABASE [IF NOT EXISTS] 'database_name';
删除数据库
DROP DATABASE [IF EXISTS] 'database_name';
如果表名或者字段名是特殊字符,用‘ ’
查看数据库
SHOW DATABASES
你可以创建一个模式,只允许IT部门访问,同时也可以创建另一个只允许市场部门访问的模式。不同部门的员工无法看到其他部门模式中的内容。本模块不涵盖如何具体实施这一过程。
一. Creating Tables
创建一个表时,必须定义每个字段的名称和数据类型。数据类型决定了该字段可以存储的数据的类型(如整数、字符串等)。
CREATE TABLE table_name (
column1 int,
column2 varchar(40),
……
);
常见的数据类型包括:
• 整数类型:INT、SMALLINT、BIGINT 用于存储整数。
• 浮点数类型:FLOAT、DOUBLE 用于存储带小数的数字。
• 字符串类型:CHAR(固定长度的字符)和 VARCHAR(可变长度的字符)。
• 日期和时间类型:DATE、TIME、TIMESTAMP 用于存储日期和时间信息。
Conversion units:
• 1 bit = smallest unit of data.
• 1 byte = 8 bits.
• 1 KB (kilobyte) = 1024 bytes.
Keyword USE
Syntax
USE schema_name
使用数据库
如果表名或者字段名是特殊字符,用`
it forces all subsequent SQL commands to be executed the schema you specified
Inserting Values
INSERT INTO my_table VALUS
(1,'ABC'),(2,'def)
INSERT INTO tablename VALUES (val1,val2……);
The order of "val1,val2……“must match the order of columns of the table
字符串使用单引号括起来