SQL学习笔记1——数据库基础

1. 什么是数据库?

将大量数据保存起来,通过计算机加工而成的可以进行高效访问的数据集合成为数据库(Database,DB)。

2. 什么是DBMS?

用来管理数据库的计算机系统称为数据库管理系统(Database Management System,DBMS)。

3. 为什么要DBMS?

  • 可以多人共享数据
  • 方便提供了操作大量数据所需的格式
  • 实现读写自动化,通过SQL语句就可以查询
  • 数据可靠性,当文件被误删、硬盘出现故障等导致无法读取的时候,可以恢复

4. DBMS种类

  • 层次数据库(Hierarchical Database,HDB),现在很少使用
  • 关系数据库(Relational Database,RDB),使用专门的 SQL(Structured Query Language,结构化查询语言)对数据进行操作,例如:Oracle Database、PostgreSQL、MySQL等
  • 面向对象数据库(Object Oriented Database,OODB)
  • XML 数据库(XML Database,XMLDB)
  • 键值存储系统(Key-Value Store,KVS)

法则1-1 关系数据库以行为单位读写数据
法则1-2 一个单元格中只能输入一个数据

5. SQL 概要

  • SQL是为操作数据库而开发的语言。
  • 虽然SQL也有标准,但实际上根据RDBMS的不同SQL也不尽相 同。
  • SQL通过一条语句来描述想要进行的操作,发送给RDBMS。
  • 原则上SQL语句都会使用分号结尾。
  • SQL根据操作目的可以分为DDL、DML和DCL。

法则 1-3 学会标准 SQL 就可以在各种 RDBMS 中书写 SQL 语句了

6. SQL语句

SQL 用关键字、表名、列名等组合而成的一条语句(SQL 语句)来描 述操作的内容。

  • DDL(Data Definition Language),数据定义语言,用来创建或者删除存储数据用的数据库以及数据库中的表等对象。
  1. CREATE:创建数据库和表等对象
  2. DROP:删除数据库和表等对象
  3. ALTER:修改数据库和表等对象的结构
  • DML(Data Manipulation Language,数据操纵语言)用来查询或 者变更表中的记录。
  1. SELECT:查询表中的数据
  2. INSERT:向表中插入新数据
  3. UPDATE:更新表中的数据
  4. DELETE:删除表中的数据
  • DCL(Data Control Language,数据控制语言)用来确认或者取 消对数据库中的数据进行的变更。
  1. COMMIT:确认对数据库中的数据进行的变更
  2. ROLLBACK:取消对数据库中的数据进行的变更
  3. GRANT:赋予用户操作权限
  4. REVOKE:取消用户的操作权限

法则 1-4 SQL 根据功能不同可以分为三类,其中使用最多的是DML。

7. SQL 的基本书写规则

  1. SQL语句以分号(;)结尾
  2. SQL语句不区分大小写,但是为了方便理解,使用以下规则来书写SQL语句。但是插入到表中的数据是区分大小写的。
  • 关键字大写
  • 表名的首字母大写
  • 其余小写
  1. 常数的书写方式是固定的,使用单引号(')将字符串括起来,用来标识这是一个字符串。SQL 语句中含有日期的时候,同样需要使用单引号将其括起来。在 SQL 语句中书写数字的时候,不需要使用任何符号标识,直接 写成 1000 这样的数字即可。
  2. 单词需要用半角空格或者换行来分隔

法则 1-5 SQL 语句以分号(;)结尾。
法则 1-6 关键字不区分大小写。
法则 1-7 字符串和日期常数需要使用单引号(')括起来。数字常数无需加注单引号(直接书写数字即可)。
法则 1-8 单词之间需要使用半角空格或者换行符进行分隔。

8. 表的创建

  • 表通过 CREATE TABLE语句创建而成。
  • 表和列的命名要使用有意义的文字。
  • 指定列的数据类型(整数型、字符型和日期型等)。
  • 可以在表中设置约束(主键约束和 NOT NULL 约束等)。
  1. 数据库创建语法
// 创建shop数据库
CREATE DATABASE shop;
  1. 表的创建语法
CREATE TABLE <表名> 
(<列名1> <数据类型> <该列所需约束>,
<列名2> <数据类型> <该列所需约束>,
<列名3> <数据类型> <该列所需约束>,
<列名4> <数据类型> <该列所需约束>,
.
.
.
<该表的约束1>,
<该表的约束2>,……);

该语法清楚地描述了我们要创建一个包含 < 列名 1>、< 列名 2>、…… 的名称为 < 表名 > 的表。
每一列的数据类型(后述)是 必须要指定的,还要为需要的列设置约束(后述)。
约束可以在定义列 的时候进行设置,也可以在语句的末尾进行设置 。
例:创建 Product 表的CREATE TABLE 语句

CREATE TABLE Product 
(product_id CHAR(4) NOT NULL, 
product_name VARCHAR(100) NOT NULL, 
product_type VARCHAR(32) NOT NULL, 
sale_price INTEGER , 
purchase_price INTEGER , 
regist_date DATE , 
PRIMARY KEY (product_id));

法则 1-9 数据库名称、表名和列名等可以使用以下三种字符:半角英文字母、半角数字、下划线(_)
法则 1-10 名称必须以半角英文字母作为开头。(标准SQL中定义)
法则 1-11 名称不能重复。

  1. 数据类型
    数据类型表示数据的种类,包括数字型、字符型和日期型等。每一列都不能存储与该列数据类型不符的数据。

INTEGER型,用来指定存储整数的列的数据类型(数字型),不能存储小数。
CHAR型,CHAR 是 CHARACTER(字符)的缩写,是用来指定存储字符串的列的数据类型(字符型)。可以像 CHAR(10) 或者 CHAR(200) 这样,在括号中指定该列可以存储的字符串的长度(最大长度),超过长度则不能输入到该列中。未达到长度会以半角空格补足。
VARCHAR型,VARCHAR 型也是用来指定存储字符串的列的数 据类型(字符串类型),也可以通过括号内的数字来指定字符串的 长度(最大长度)。长度可变,未达到长度不会补足。
DATE型,用来指定存储日期(年月日)的列的数据类型(日期型)。

  1. 约束设置
    约束是除了数据类型之外,对列中存储的数据进行限制或者追加条件的功能。
    NOT NULL 约束,NULL 是代表空白(无记录) 的关键字,在 NULL 之前加上了表示否定的 NOT,就是给该列设置了不能输入空白,也就是必须输入数据的约束(如果什么都不输入就会出错)。
    主键约束,所谓键,就是在指定特定数据时使用的列的组合。键种类多样,主键(primary key)就是可以特定一行数据的列(唯一性)。主键数据不能重复。

9. 表的删除和更新

  • 使用DROP TABLE语句来删除表。
  • 使用ALTER TABLE语句向表中添加列或者从表中删除列。
  1. 删除表时使用的 DROP TABLE 语句:
DROP TABLE <表名>;

法则 1-12 删除了的表是无法恢复的。

  1. 表定义的更新(ALTER TABLE 语句)
// 添加列
ALTER TABLE <表名> ADD COLUMN <列的定义>;
// 添加多列
ALTER TABLE <表名> ADD (<列名>,<列名>,……);
// 删除列的 ALTER TABLE 语句
ALTER TABLE <表名> DROP COLUMN <列名>;

法则 1-13 表定义变更之后无法恢复。

  1. 向 Product 表中插入数据
INSERT INTO Product VALUES ('0003', '运动T恤', '衣服', 4000, 2800, NULL);

总结

我们学习了数据库是什么,以及数据库的结构和种类,接触了基础SQL语句和SQL的基本书写规则,对一些数据库的基本操作有了了解,如库表的创建、数据类型、库表的约束设置以及表单删除和更新等。

你可能感兴趣的:(SQL学习笔记1——数据库基础)