数据库基础和SQL基础总结
本文会总结下数据库知识,SQL基础,常用SQL语句总结;
数据库和SQL也是计算机基础核心知识点,尤其是互联网,银行和部分传统软件类公司。这里根据整理的资料,对数据库的相关知识也做个总结吧。希望学过数据库但长时间不用的同学根据这些知识能够回忆和重拾,没学过的同学能掌握一些数据库的基础知识。
image.png
image.png
一、数据库基础相关概念
1\. Data:数据,是数据库中存储的基本对象,是描述事物的符号记录。
2\. Database:数据库,是长期储存在计算机内、有组织的、可共享的大量数据的集合。
3\. DBMS:数据库管理系统,是位于用户与操作系统之间的一层数据管理软件,用于科学地组织、存储和管理数据、高效地获取和维护数据。
4\. DBS:数据库系统,指在计算机系统中引入数据库后的系统,一般由数据库、数据库管理系统、应用系统、数据库管理员(DBA)构成。
5\. 数据模型:是用来抽象、表示和处理现实世界中的数据和信息的工具,是对现实世界的模拟,是数据库系统的核心和基础;其组成元素有数据结构、数据操作和完整性约束。
6\. 概念模型:也称信息模型,是按用户的观点来对数据和信息建模,主要用于数据库设计。
7\. 逻辑模型:是按计算机系统的观点对数据建模,用于DBMS实现。
8\. 物理模型:是对数据最底层的抽象,描述数据在系统内部的表示方式和存取方法,在磁盘或磁带上的存储方式和存取方法,是面向计算机系统的。
9\. 实体和属性:客观存在并可相互区别的事物称为实体。实体所具有的某一特性称为属性。
10.E-R图:即实体-关系图,用于描述现实世界的事物及其相互关系,是数据库概念模型设计的主要工具。
11.关系模式:从用户观点看,关系模式是由一组关系组成,每个关系的数据结构是一张规范化的二维表。
12.型/值:型是对某一类数据的结构和属性的说明;值是型的一个具体赋值,是型的实例。
13.数据库模式:是对数据库中全体数据的逻辑结构(数据项的名字、类型、取值范围等)和特征(数据之间的联系以及数据有关的安全性、完整性要求)的描述。
14.数据库的三级系统结构:外模式、模式和内模式。
15.数据库内模式:又称为存储模式,是对数据库物理结构和存储方式的描述,是数据在数据库内部的表示方式。一个数据库只有一个内模式。
16.数据库外模式:又称为子模式或用户模式,它是数据库用户能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图。通常是模式的子集。一个数据库可有多个外模式。
17.数据库的二级映像:外模式/模式映像、模式/内模式映像。
二、数据库重点知识点
1. 数据库系统由数据库、数据库管理系统、应用系统和数据库管理员构成。
2. 数据模型的组成要素是:数据结构、数据操作、完整性约束条件。
3. 实体型之间的联系分为一对一、一对多和多对多三种类型。
4. 常见的数据模型包括:关系、层次、网状、面向对象、对象关系映射等几种。
5. 关系模型的完整性约束包括:实体完整性、参照完整性和用户定义完整性。
6. 阐述数据库三级模式、二级映象的含义及作用。
数据库三级模式反映的是数据的三个抽象层次: 模式是对数据库中全体数据的逻辑结构和特征的描述。内模式又称为存储模式,是对数据库物理结构和存储方式的描述。外模式又称为子模式或用户模式,是对特定数据库用户相关的局部数据的逻辑结构和特征的描述。
数据库三级模式通过二级映象在 DBMS 内部实现这三个抽象层次的联系和转换。外模式面向应用程序, 通过外模式/模式映象与逻辑模式建立联系, 实现数据的逻辑独立性。 模式/内模式映象建立模式与内模式之间的一对一映射, 实现数据的物理独立性。
三、数据库相关概念
1. 主键: 能够唯一地标识一个元组的属性或属性组称为关系的键或候选键。 若一个关系有多个候选键则可选其一作为主键(Primary key)。
2. 外键:如果一个关系的一个或一组属性引用(参照)了另一个关系的主键,则称这个或这组属性为外码或外键(Foreign key)。
3. 关系数据库: 依照关系模型建立的数据库称为关系数据库。 它是在某个应用领域的所有关系的集合。
4. 关系模式: 简单地说,关系模式就是对关系的型的定义, 包括关系的属性构成、各属性的数据类型、 属性间的依赖、 元组语义及完整性约束等。 关系是关系模式在某一时刻的状态或内容, 关系模型是型, 关系是值, 关系模型是静态的、 稳定的, 而关系是动态的、随时间不断变化的,因为关系操作在不断地更新着数据库中的数据。
5. . 实体完整性:用于标识实体的唯一性。它要求基本关系必须要有一个能够标识元组唯一性的主键,主键不能为空,也不可取重复值。
6. 参照完整性: 用于维护实体之间的引用关系。 它要求一个关系的外键要么为空, 要么取与被参照关系对应的主键值,即外键值必须是主键中已存在的值。
7. 用户定义的完整性:就是针对某一具体应用的数据必须满足的语义约束。包括非空、 唯一和布尔条件约束三种情况。
四、数据库三范式总结
首先要明白”范式(NF)”是什么意思。按照教材中的定义,范式是“符合某一种级别的关系模式的集合,表示一个关系内部各属性之间的联系的合理化程度”。很晦涩吧?实际上你可以把它粗略地理解为一张数据表的表结构所符合的某种设计标准的级别。就像家里装修买建材,最环保的是E0级,其次是E1级,还有E2级等等。数据库范式也分为1NF,2NF,3NF,BCNF,4NF,5NF。一般在我们设计关系型数据库的时候,最多考虑到BCNF就够。符合高一级范式的设计,必定符合低一级范式,例如符合2NF的关系模式,必定符合1NF(来自知乎)
规范的来优化数据数据存储方式。在关系型数据库中这些规范就可以称为范式。
第一范式:当关系模式R的所有属性都不能在分解为更基本的数据单位时,称R是满足第一范式的,简记为1NF。满足第一范式是关系模式规范化的最低要求,否则,将有很多基本操作在这样的关系模式中实现不了。
1、每一列属性都是不可再分的属性值,确保每一列的原子性
2、两列的属性相近或相似或一样,尽量合并属性一样的列,确保不产生冗余数据。
第二范式:如果关系模式R满足第一范式,并且R的所有非主属性都完全依赖于R的每一个候选关键属性,称R满足第二范式,简记为2NF。第二范式(2NF)要求数据库表中的每个实例或行必须可以被惟一地区分。为实现区分通常需要我们设计一个主键来实现(这里的主键不包含业务逻辑)
第三范式:设R是一个满足第一范式条件的关系模式,X是R的任意属性集,如果X非传递依赖于R的任意一个候选关键字,称R满足第三范式,简记为3NF.
关系实质上是一张二维表,其中每一行是一个元组,每一列是一个属性.
下面来介绍下SQL基础和常用SQL语句;
image.pngDatabase
A database consists of one or more tables. A table is identified by its name. A table is made up of columns and rows. Columns contain the column name and data type. Rows contain the records or data for the columns.
Basic SQL
Each record has a unique identifier or primary key. SQL, which stands for Structured Query Language, is used to communicate with a database. Through SQL one can create and delete tables. Here are some commands:
- CREATE TABLE - creates a new database table
- ALTER TABLE - alters a database table
- DROP TABLE - deletes a database table
- CREATE INDEX - creates an index (search key)
- DROP INDEX - deletes an index
SQL also has syntax to update, insert, and delete records.
- SELECT - get data from a database table
- UPDATE - change data in a database table
- DELETE - remove data from a database table
- INSERT INTO - insert new data in a database table
SELECT
The SELECT is used to query the database and retrieve selected data that match the specific criteria that you specify:
SELECT column1 [, column2, ...]
FROM tablename
WHERE condition
The conditional clause can include these operators
- = Equal
-
Greater than
- < Less than
-
= Greater than or equal
- <= Less than or equal
- <> Not equal to
- LIKE pattern matching operator
SELECT * FROM tablename
returns all the data from the table.
Use single quotes around text values (most database systems will also accept double quotes). Numerical values should not be enclosed in quotes.
LIKE matches a pattern. The wildcard % is used to denote 0 or more characters.
- 'A%' : matches all strings that start with A
- '%a' : matches all strings that end with a
- '%a%' : matches all strings that contain an a
CREATE TABLE
The CREATE TABLE statement is used to create a new table. The format is:
CREATE TABLE tablename
(column1 data type,
column2 data type,
column3 data type);
- char(size): Fixed length character string.
- varchar(size): Variable-length character string. Max size is specified in parenthesis.
- number(size): Number value with a max number of columns specified in parenthesis
- date: Date value
- number(size,d): A number with a maximum number of digits of "size" and a maximum number of "d" digits to the right of the decimal
INSERT VALUES
Once a table has been created data can be inserted using INSERT INTO command.
INSERT INTO tablename
(col1, ... , coln)
VALUES (val1, ... , valn)
UPDATE
To change the data values in a pre existing table, the UPDATE command can be used.
UPDATE tablename
SET colX = valX [, colY = valY, ...]
WHERE condition
DELETE
The DELETE command can be used to remove a record(s) from a table.
DELETE FROM tablename
WHERE condition
To delete all the records from a table without deleting the table do
DELETE * FROM tablename
DROP
To remove an entire table from the database use the DROP command.
DROP TABLE tablename
ORDER BY
ORDER BY clause can order column name in either ascending (ASC) or descending (DESC) order.
ORDER BY col_name ASC
AND / OR
AND and OR can join two or more conditions in a WHERE clause. AND will return data when all the conditions are true. OR will return data when any one of the conditions is true.
IN
IN operator is used when you know the exact value you want to return for at least one of the columns
SELECT * FROM table_name WHERE col_name IN (val1, val2, ...)
BETWEEN / AND
The BETWEEN ... AND operator selects a range of data between two values. These values can be numbers, text, or dates.
SELECT * FROM table_name WHERE col_name BETWEEN val1 AND val2.
image.pngimage.png
常用的SQL 的Cheat Sheet总结;
image.pngimage.png
image.png
MYSQL和Postgrep的一些常用总结;
image.pngimage.png
image.png image.png
希望可以帮助数据库,SQL基础和入门的同学。