本篇适用于新手快速入门,主要介绍SQL的基础概念
一、什么是SQL
SQL,即结构化查询语言(Structured Query Language)的简称SQL,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;同时也是数据库脚本文件的扩展名。
它是关系型数据库的标准语言,所有的关系型数据库管理系统(RDBMS),比如 MySQL、Oracle、SQL Server、MS Access、Sybase、Informix、Postgres 等,都将 SQL 作为其标准处理语言。
二、什么是RDBMS
RDBMS 是 Relational Database Management System 的缩写,中文译为“关系数据库管理系统”,它是 SQL 语言以及所有现代数据库系统(例如 MySQL 、Oracle、SQL Server、DB2、和 Microsoft Access)的基础。
在 RDBMS 中,数据被存储在一种称为表(Table)的数据库对象中,它和 Excel 表格类似,都由许多行(Row)和列(Column)构成。每一行都是一条记录(record),每一列(column)都是对应一个字段(field),用来维护数据表中每一条数据(记录)的特定信息,整个表就是若干条相关数据的集合。
三、SQL约束
约束(constraint)是指必须遵守的规则,如果存在违反约束的数据行为,行为会被约束终止。。SQL的约束可以在创建表时规定(通过 CREATE TABLE 语句),或者在表创建之后规定(通过 ALTER TABLE 语句)。
常见的约束:
约束 | 说明 |
NOT NULL | 非空约束,确保列中不存储NULL值 |
UNIQUE | 唯一约束,确保每列的每行都有唯一的值 |
DEFAULT | 默认约束,确保没有给列赋值时,有规定的默认值 |
CHECK | 检查性约束,用于限定列的取值范围,确保列中的值符合指定条件 |
PRIMARY KEY | 主键,是NOT NULL与UNIQUE的结合,助于快速找到表中的一个特定记录 |
FOREIGN KEY | 外键,确保一个表中的数据匹配另一个表中的值的参照完整性。 |
四、SQL数据类型
看到int和float,可能写着写着容易与python的数据类型混淆,不同语言对应的数据类型是有差异的,这里也列一下python数据类型,以方便加强下区分的记忆
类型 | 名称 | 说明 | 示例 |
Int | 整数 | 不带小数点的数 | 5,-2,0,18 |
float | 小数 | 带小数点的数 | 5.1、3.14 |
bool | 布尔 | 用于逻辑运算的类型 | True 或者 False |
string | 字符串 | 有序的字符序列 | "hello world" |
list | 列表 | 有序序列 | ['moon',1990,2022] |
dictionary | 字典 | 无序的键值对 | {key1:value1,key2:value2} |
tuple | 元组 | 有序且不可变序列 | tuple1=('moon',1990,2022) tuple2=(1,2,3) tup3="a","b","c" |
set | 集合 | 无序且无重复元素 | {"white","gray"} |