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的基本书写规则,对一些数据库的基本操作有了了解,如库表的创建、数据类型、库表的约束设置以及表单删除和更新等。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,772评论 6 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,458评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,610评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,640评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,657评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,590评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,962评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,631评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,870评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,611评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,704评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,386评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,969评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,944评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,179评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,742评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,440评论 2 342

推荐阅读更多精彩内容