SQL概论

什么是SQL?

Structured Query Language
应用于关系型数据库,non-procedural language,意味着不能用SQL写一个完整的程序。
读,写,更新数据

DBA(数据库管理员)与数据科学家的区别

数据库管理员负责管理数据以及管理权限;
数据科学家会合并数据内容,书写复杂的公式分析数据。但最主要的工作还是检索数据。

关系型数据库 VS 事务性数据库

关系型数据库展示了表格之间的关系,用于优化查询效率;
事务性数据库像是操作性数据库,需要将数据转移到关系型数据库后再使用。

数据模型组成部分
  1. Entity 实体
  2. Attribute 属性 实体的值
  3. Relation 关系 描述了实体间的关系 包括有: 一对多,多对多,一对一

ER Diagram 常常被用于形象的描绘出多个实体之间的关系,我们使用 主键 和 外键 来连接各个表格。

主键是一列或多列数据,可以惟一地指向一行数据;
外键是一列或者多列数据,组合起来可以唯一地指向其他表格的一行数据;

记号方法包括:Chen Notation; Crow's Foot Natation; UML Class Diagram Notation

Chen Notation
Crow's Foot Natation
UML

使用Select语句

需要给出两个参数,需要什么以及从哪里获取。

SELECT ID
       ,Name
       ,Value
FROM TableA;
-- 取所有的列
SELECT *
FROM TableA;
-- 取所有的列的前五个样本
SELECT *
FROM TableA
LIMIT 5;

要注意的是,这里用的例子是 SQLite。与其他编程语言不同的是,在不同的数据库管理系统上有不同的SQL语句写法,这里不一一罗列。

创建新表格

CREATE TABLE table_name
(
-- 最大为10位的字符,设为主键,若不声明则表明可以接受NULL值
ID char(10) PRIMARY KEY,
-- 小数点前最多8位,小数点后最多两位
Value decimal(8,2)NOT NULL,
);

每一个Column要么是NULL,要么是NOT NULL

错误地提供NULL值会返回一个Error

区分NULL与空字符串

主键不能接受NULL或者空值

添加数据

有两种办法往表格里添加数据:1.insert语句;

-- 这种写法可以控制写入的属性值,允许仅写入部分数据
INSERT INTO table_name
(
ID
,Value
)
VALUES('Nike'
,'200'
);

临时表格

在语句结束时就会被删除

比创建一个真实的表格要快

对于一些复杂的查询,例如需要用到子集和联合等操作更加方便

CREATE TEMPORARY TABLE table_name AS
(
SELECT *
FROM table_name1
WHERE attr = 'value'
)
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。