大家都知道数据库的入门经典书籍是《SQL必知必会》,这本书十分简练,可以作为快速入门和查询的小册子.
但是《SQL基础教程(第2版)》可能更适合零基础入门阅读. 整本书节奏平缓,配合大量例子,图文并茂,深入简出,易读易懂.
书中的SQL语句, 使用了以下五种数据库管理系统进行了验证Oracle Database、SQL Server、DB2、PostgreSQL、MySQL
5种RDBMS之间存在差异的SQL语句,或者只能在某种特定的RDBMS中使用的SQL语句,书中都用特定图标进行标识.方便对比学习.
我这里主要是MySQL语句,其他语句的差异可以参考原书中内容.
第一章 数据库和SQL
SQL用关键字、表名、列名等组合而成的一条语句(SQL语句)来描述操作的内容. 关键字是指那些含义或使用方法已事先定义好的英语单词, 存在包含"对表进行查询"或者"参考这个表"等各种意义的关键字. 根据对RDBMS赋予的指令种类的不同, SQL语句可以分为以下三类:
DDL(Data Definition Language,数据定义语言)用来创建或者删除存储数据用的数据库以及数据库中的表等对象.DDL包含以下几种指:
DML(Data Manipulation Language,数据操纵语言)用来查询或者变更表中的记录. DML包含以下几种指令:
DCL(Data Control Language,数据控制语言)用来确认或者取消对数据库中的数据进行的变更. 除此之外, 还可以对RDBMS的用户是否有权限操作数据库中的对象(数据库表等)进行设定. DCL包含以下几种指令:
==实际使用的SQL语句当中有90%属于DML==
SQL语句则使用分号(;)结尾
==SQL不区分关键字的大小写==
默认规则书写SQL语句:
但是插入到表中的数据是区分大小写的. 例如, 在操作过程中, 数据Computer、COMPUTER 或 computer, 三者是不一样的.
SQL语句常常需要直接书写字符串、日期或者数字
在SQL语句中直接书写的字符串、日期或者数字等称为常数.
常数的书写方式如下所示:
SQL 语句的单词之间需使用半角空格或换行符来进行分隔
CREATE DATABASE <数据库名称>;
如: 创建Product表
所有的列都必须指定数据类型, 数据类型表示数据的种类, 包括数字型、字符型和日期型等
约束是除了数据类型之外, 对列中存储的数据进行限制或者追加条件的功能
主键(primary key)就是可以特定一行数据的列. 也就是说, 如果把 product_id 列指定为主键, 就可以通过该列取出特定的商品数据了.
DROP TABLE <表名>;
如删除Product表,
DROP TABLE Product;
ALTER TABLE
ALTER TABLE <表名> ADD COLUMN <列的定义>;
如: 在Product表中添加这样一列, product name pinyin(商品名称(拼音)), 该列可以存储100位的可变长字符串.
ALTER TABLE Product ADD COLUMN product name pinyin VARCHAR(100);
ALTER TABLE <表名> DROP COLUMN <列名>;
如: 删除之前添加的product_name_pinyin列.ALTER TABLE Product DROP COLUMN product_name pinyin;
开头的 BEGIN TRANSACTION 语句是开始插入行的指令语句,结尾的 COMMIT 语句是确定插入行的指令语句
如果想把 Poduct 表的名称变为 Product, 可以使用代码清单中的指令, 如下:RENAME TABLE Poduct to Product;