虽然RDBMS 的体系布局多种多样,但是从客户端发来的SQL 语句基本上都是一样的。什么是SQL
国际尺度化组织(ISO)为SQL 制定了相应的尺度,以此为基准的SQL 称为尺度SQL。SQL 语句及其种类
以前,完全基于尺度SQL 的RDBMS 很少,通常需要根据不同的RDBMS来编写特定的SQL 语句。如许一来,就会造成能够在Oracle 中利用的SQL 语句却无法在SQL Server 中利用,反之亦然。迩来,对尺度SQL 的支持取得了一些进展,因此希望准备学习SQL 的人们能够从现在开始就牢记尺度SQL 的书写方式。
学会尺度SQL 就可以在各种RDBMS 中书写SQL 语句了。
SQL 根据功能不同可以分为三类,其中利用最多的是DML。SQL 的基本书写规则
但是插入到表中的数据是区分大小写的。比方,在操作过程中,数据Computer、COMPUTER 或computer,三者是不一样的。■ 常数的书写方式是固定的
备忘数据库的创建(CREATE DATABASE语句)
接下来,我们会逐步学习创建数据库和表所利用的SQL 语句的书写方式。在这之前,请先准备好学习环境(PostgreSQL)。
这里我们仅指定了利用该语法所需的最少项目,实际开发数据库时还需要指定各种其他项目。语法1-1 创建数据库的CREATE DATABASE语句
字节是计算机内部的数据单位。一个字符通常需要1到3个字节来表示(根据字符的种类和表现方式有所不同)。字符串以定长字符串的情势存储在被指定为CHAR 型的列中。所谓定长字符串,就是当列中存储的字符串长度达不到最大长度的时候,利用半角空格进行补足。比方,我们向CHAR(8) 类型的列中输入'abc'的时候,会以'abc '(abc 后面有5 个半角空格)的情势保存起来。
特定的SQL● DATE型
Oracle中利用VARCHAR2型(Oracle中也有VARCHAR这种数据类型,但并不保举利用)。
特定的SQL约束的设置
除了年月日之外,Oracle中利用的DATE型还包含时分秒。
NULL这个词是无或空的意思,NULL是利用SQL时的常见关键字,请大家牢记。如许一来,Product 表的product_id(商品编号)列、product_name(商品名称)列和product_type(商品种类)列就都成了必须输入的项目。
其实许多RDBMS 都预留了恢复的功能,但还是请大家认为是无法恢复的。如果不小心删除了重要的业务表,那就太悲剧了。特别是存储了大量数据的表,恢复起来费时费力,请大家务必注意!
特定的SQLALTER TABLE ADD ;
Oracle 和SQL Server 中不用写COLUMN。
另外,在Oracle 中同时添加多列的时候,可以像下面如许利用括号。ALTER TABLE ADD (,,……);比方,我们可以利用代码清单1-4 中的语句在Product 表中添加如许一列,product_name_pinyin(商品名称(拼音)),该列可以存储100 位的可变长字符串。
特定的SQLALTER TABLE DROP ;
Oracle 中不用写COLUMN。
另外,在Oracle 中同时删除多列的时候,可以像下面如许利用括号来实现。ALTER TABLE DROP (,,……);比方,我们可以利用代码清单1-5 中的语句来删除之前添加的product_name_pinyin 列。
特定的SQLSTART TRANSACTION;
DBMS 不同,代码清单1-6中的DML语句也略有不同。
在MySQL 中运行时,需要把①中的BEGIN TRANSACTION;改写成
在Oracle 和DB2中运行时,无需利用①中的BEGIN TRANSACTION;(请予以删除)。利用插入行的指令语句INSERT,就可以把表1-2 中的数据都插入到表中了。开头的BEGIN TRANSACTION 语句是开始插入行的指令语句,结尾的COMMIT 语句是确定插入行的指令语句。
欢迎光临 创意电子 (https://wxcydz.cc/) | Powered by Discuz! X3.4 |