MICK-SQL基础教程(第二版)第一章

本书代码下载
由于最近在实习,需要用到SQL的相关知识,于是在工作闲暇之余整理了此书的笔记~
第一章
第二章 查询基础
第三章 聚合与排序
第四章 数据更新
第五章 复杂查询
第六章 函数、谓词、CASE表达式
第七章 集合运算
第八章 SQL高级处理


第一章

DBMS的种类

  • 层次数据库(Hierarchical Database,HDB)
    把数据通过层次结构(树形结构)的方式表现出来

  • 关系数据库(Relational Database,RDB)
    采用由行和列组成的二维表来管理数据,它还使用专门的 SQL(Structured Query Language,结构化查询语言)对数据进行操作。
    代表性的数据库:

    • Oracle Database:甲骨文公司的RDBMS
    • SQL Server:微软公司的RDBMS
    • DB2:IBM公司的RDBMS
    • PostgreSQL:开源的RDBMS
    • MySQL:开源的RDBMS
  • 面向对象数据库(Object Oriented Database,OODB)
    把数据以及对数据的操作集合起来以对象为单位进行管理,因此得名。面向对象数据库就是用来保存这些对象的数据库。

  • XML数据库(XML Database,XMLDB)
    XML 数据库可以对 XML 形式的大量数据进行高速处理。

  • 键值存储系统(Key-Value Store,KVS)
    这是一种单纯用来保存查询所使用的主键(Key)和值(Value)的组合的数据库。

数据库的结构

RDBMS的常见系统结构

客户端 / 服务器类型

表的结构

  • 用来管理数据的二维表在关系数据库中简称为表。
  • 表存储在由RDBMS 管理的数据库中,一个数据库中可以存储多个表。
  • 根据SQL语句的内容返回的数据同样必须是二维表的形式,这也是关系数据库的特征之一。
  • 表的列(垂直方向)称为字段,它代表了保存在表中的数据项目。与之相对,表的行(水平方向)称为记录,它相当于一条数据。行和列交汇的方格称为单元格,一个单元格中只能输入一个数据。
  • 关系数据库必须以行为单位进行数据读写

SQL概要

标准SQL

  • 国际标准化组织(ISO)为SQL 制定了相应的标准,以此为基准的 SQL 称为标准SQL。学会标准SQL就可以在各种RDBMS中书写SQL语句了。

SQL语句及其种类

  • SQL 用关键字、表名、列名等组合而成的一条语句(SQL 语句)来 描述操作的内容
  • DDL(Data Definition Language,数据定义语言)
    用来创建或者删除存储 数据用的数据库以及数据库中的表等对象.包含:
    • CREATE: 创建数据库和表等对象
    • DROP: 删除数据库和表等对象
    • ALTER: 修改数据库和表等对象的结构
  • DML(Data Manipulation Language,数据操纵语言)
    用来查询或者变更 表中的记录。DML 包含以下几种指令:
    • SELECT:查询表中的数据
    • INSERT:向表中插入新数据
    • UPDATE:更新表中的数据
    • DELETE:删除表中的数据
  • DCL(Data Control Language,数据控制语言)
    用来确认或者取消对数据 库中的数据进行的变更。除此之外,还可以对 RDBMS的用户是否有权限操作数据库中的对象(数据库表等)进行设定。DCL 包含以下几种指令:
    • COMMIT: 确认对数据库中的数据进行的变更
    • ROLLBACK:取消对数据库中的数据进行的变更
    • GRANT: 赋予用户操作权限 REVOKE: 取消用户的操作权限

SQL的基本书写规则

  • SQL语句要以分号(;)结尾
  • SQL语句 **不区分大小写 **,但是插入到表中的数据是区分大小写的。
    但为了理解起来更加容易,一般使用以下规则来书写 SQL 语句。
    • 关键字大写
    • 表名的首字母大写
    • 其余(列名等)小写
  • 常数的书写方式是固定的
    在SQL 语句中直接书写的字符串、日期或者数字等称为常数。常数 的书写方式如下所示。
    • SQL 语句中含有字符串的时候,需要像'abc'这样,使用单引号(') 将字符串括起来,用来标识这是一个字符串。
    • SQL 语句中含有日期的时候,同样需要使用单引号将其括起来。日期 的格式有很多种('26 Jan 2010' 或者 '10/01/26' 等。
    • 在SQL 语句中书写数字的时候,不需要使用任何符号标识,直接写 成1000 这样的数字即可。
  • 单词需要用半角空格或者换行来分隔 。不能使用全角空格作为单词的分隔符,否则会发生错误,出现无法预期的结果。

表的创建

数据库的创建(CREATE DATABASE语句)

CREATE DATABASE <数据库名称>;

表的创建(CREATE TABLE语句)

CREATE TABLE <表名> 
(<列名1> <数据类型> <该列所需约束>, 
 <列名2> <数据类型> <该列所需约束>, 
 <列名3> <数据类型> <该列所需约束>, 
 <列名4> <数据类型> <该列所需约束>,                                    
... 
 <该表的约束1>,<该表的约束2>,……);
 -- 例如:PRIMARY KEY (id));

命名规则

  • 只能使用半角英文字母、数字、下划线(_)作为数据库、表和列的名称
  • 名称必须以半角英文字母作为开头
  • 在同一个数据库中不能创建两个相同名称的表,在同一个表中也不能创建两个名称相同的列.

数据类型的指定

类型 解释
INTEGER 存储整数的列的数据类型(数字型),不能存储小数
CHAR 指定存储字符串的列 的数据类型(字符型)。在 括号中指定该列可以存储的字符串的长度(最大长度)。字符串超出最大 长度的部分是无法输入到该列中的。RDBMS 不同,长度单位也不一样。
VARCHAR 可变长字符串的形式来保存字符串的
DATE 来指定存储日期(年月日)的列的数据类型(日期型)

约束的设置

约束是除了数据类型之外,对列中存储的数据进行限制或者追加条件的功能。

表的删除和更新

表的删除(DROP TABLE语句)

DROP TABLE <表名>;

删除了的表是无法恢复的

表定义的更新(ALTER TABLE语句)

添加列

ALTER TABLE <表名> ADD COLUMN <列的定义>;

注:

  • Oracle和SQL Server中不用写COLUMN。
  • 另外,在Oracle中同时添加多列的时候,可以像下面这样使用括号。
ALTER TABLE <表名> ADD (<列名>,<列名>,……);

删除列

ALTER TABLE <表名> DROP COLUMN <列名>;

表定义变更之后无法恢复。


下一章:第二章 查询基础
别忘点赞~

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

推荐阅读更多精彩内容

  • ORA-00001: 违反唯一约束条件 (.) 错误说明:当在唯一索引所对应的列上键入重复值时,会触发此异常。 O...
    我想起个好名字阅读 5,130评论 0 9
  • MYSQL 基础知识 1 MySQL数据库概要 2 简单MySQL环境 3 数据的存储和获取 4 MySQL基本操...
    Kingtester阅读 7,764评论 5 116
  • **SQL TOP 子句 TOP 子句用于规定要返回的记录的数目。 对于拥有数千条记录的大型表来说,TOP 子句是...
    廖马儿阅读 3,156评论 1 46
  • 转 # https://www.cnblogs.com/easypass/archive/2010/12/ 08/...
    吕品㗊阅读 9,695评论 0 44
  • 成为一个值得留恋的人 文 / 默羽 每当离开已熟悉的环境、告别一些渐渐喜欢的人时; 明知那里不适合你,已经断然离开...
    w放飞的蝴蝶阅读 572评论 0 0