● 数据库有很多种类,本书将介绍如何使用专门的 SQL语言来操作关系数据库。
● 关系数据库通过关系数据库管理系统(RDBMS)进行管理。


根据 SQL 语句的内容返回的数据同样必须是二维表的形式,这也是关系数据库的特征之一。

关系数据库必须以行为单位进行数据读写,请大家牢记。


1-3 第1章 SQL概要

本书将介绍以 [SQL :2003] 为基准的标准 SQL 的书写方式。

● DML
DML(Data Manipulation Language,数据操纵语言)用来查询或者变更表中的记录。 DML 包含以下几种指令。
SELECT:查询表中的数据
INSERT:向表中插入新数据
UPDATE:更新表中的数据
DELETE:删除表中的数据

■ SQL语句要以分号( ;)结尾

■ SQL语句不区分大小写

● 关键字大写

● 表名的首字母大写
 ● 其余(列名等)小写

■常数的书写方式是固定的

日期的格式有很多种('26 Jan 2010' 或者 '10/01/26' 等),本书统一使用 '2010-01-26' 这种 ' 年 - 月 - 日 ' 的格式。

1-4 第1章 表的创建

● 指定列的数据类型(整数型、字符型和日期型等)。

● 可以在表中设置约束(主键约束和NOT NULL约束等)。


● VARCHAR型可变长字符串

同 CHAR 类型一样, VARCHAR 型也是用来指定存储字符串的列的数据类型,也可以通过括号内的数字来指定字符串的长度(最大长度)。但该类型的列是以可变长字符串的形式来保存字符串的 。
定长字符串在字符数未达到最大长度时会用半角空格补足,但可变长字符串不同,即使字符数未达到最大长度,也不会用半角空格补足。

例如,我们向 VARCHAR(8) 类型的列中输入字符串'abc' 的时候,保存的就是字符串'abc'。
该类型的列中存储的字符串也和 CHAR 类型一样,是区分大小写的。

Oracle中使用VARCHAR2型(Oracle中也有VARCHAR这种数据类型,但并不推荐使用)。

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

另外,在创建 Product 表的 CREATE TABLE 语句的后面,还有下面这样的记述。 


1-5 表的删除和更新

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

有时好不容易把表创建出来之后才发现少了几列,其实这时无需把表删
除再重新创建,只需使用变更表定义的 ALTER TABLE 语句就可以了。
ALTER 在英语中就是“改变”的意思。

修改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));

CREATE TABLE Product

代码清单1-6 向Product表中插入数据的SQL语句

--MySQL
-- DML:插入数据
START TRANSACTION;
INSERT INTO Product VALUES ('', 'T恤' ,'衣服', 1000, 500, '2009-09-20');
INSERT INTO Product VALUES ('', '打孔器', '办公用品', 500, 320, '2009-09-11');
INSERT INTO Product VALUES ('', '运动T恤', '衣服', 4000, 2800, NULL);
INSERT INTO Product VALUES ('', '菜刀', '厨房用具', 3000, 2800, '2009-09-20');
INSERT INTO Product VALUES ('', '高压锅', '厨房用具', 6800, 5000, '2009-01-15');
INSERT INTO Product VALUES ('', '叉子', '厨房用具', 500, NULL, '2009-09-20');
INSERT INTO Product VALUES ('', '擦菜板', '厨房用具', 880, 790, '2008-04-28');
INSERT INTO Product VALUES ('', '圆珠笔', '办公用品', 100, NULL, '2009-11-11');
COMMIT;

最新文章

  1. Self-introduction (自我介绍)
  2. atitit。企业的价值观 员工第一 vs 客户第一.docx
  3. <<Effective Java>>之善用组合而不是继承
  4. ShortestPath:Silver Cow Party(POJ 3268)
  5. 用wordpress制作网站的总结
  6. 北大ACM(POJ1010-STAMPS)
  7. 中文翻译:pjsip文档(四)之ICE Session的使用方法
  8. 【POJ3415】 Common Substrings(后缀数组|SAM)
  9. 外边距叠加collapsing-margin
  10. 学习《Python核心编程》做一下知识点提要,方便复习(一)
  11. CheckStyle插件
  12. 百度复制SQL语句
  13. Chrome浏览器扩展开发系列之十四:本地消息机制Native messaging
  14. css3实现梯形三角
  15. uva12325 暴力枚举
  16. PHP为前端CSS和JS增加时间戳版本号
  17. EmWin 文本显示函数
  18. Perl和操作系统交互(二):fork
  19. php的扩展配置
  20. 【Java】浅谈Java IO

热门文章

  1. Redis混合存储-冷热数据识别与交换
  2. 破解centos7 密码
  3. dede开启会员功能
  4. 037-PHP如何返回闭包函数实例
  5. 101-PHP二维数组的元素输出三,封装成函数
  6. GDI+3
  7. 吴裕雄--天生自然JAVA SPRING框架开发学习笔记:Spring JDBCTemplate简介
  8. 说说lock到底要锁谁?
  9. idea自定义快捷鍵
  10. iOS 13适配