SQL基础教程(第2版)第1章 数据库和SQL
● 数据库有很多种类,本书将介绍如何使用专门的 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;
SQL基础教程(第2版)第1章 数据库和SQL的更多相关文章
- 推荐《SQL基础教程(第2版)》中文PDF+源代码+习题答案
我认为<SQL基础教程(第2版)>非常适合数据库学习的初学者.论述的角度是读者的角度,会换位思考到读者在看到这一段时候会发出怎样的疑问,非常难得:原始数据的例题只有一道,但是可以反复从不同 ...
- 笔记-Python基础教程(第二版)第一章
第一章 快速改造:基础知识 01:整除.乘方 (Python3.0之前 如2.7版本) >>> 1/2 ==>0 1/2整除,普通除法: 解决办法1: 1.0/2.0 ==& ...
- SQL Server2012 T-SQL基础教程--读书笔记(8 - 10章)
SQL Server2012 T-SQL基础教程--读书笔记(8 - 10章) 示例数据库:点我 CHAPTER 08 数据修改 8.1 插入数据 8.1.1 INSERT VALUES 语句 8.1 ...
- [SQL基础教程] 5-1视图
[SQL基础教程] 5-1视图 视图和表 从SQL角度看视图就是一张表 视图与表的差别 表保存了实际的数据,视图保存的是SELECT语句: 视图的优点 节省存储空间: 将常用的Select 语句保存成 ...
- [SQL基础教程] 4-4 事务
[SQL基础教程] 4 数据更新 4-4 事务 事务 需要在同一处理单元中执行的一系列更新处理的集合 创建事务 事务开始语句; DML语句1; DML语句2; . . . 事务结束语句; 事务开始语句 ...
- [SQL基础教程] 4-3 数据的更新(UPDATE)
[SQL基础教程] C4 数据更新 4-3 数据的更新(UPDATE) UPDATE UPDATE <表名> SET <列名> = <表达式>; UPDATE &l ...
- [SQL基础教程] 4-2 数据删除(DELETE)
[SQL基础教程] C4 数据更新 4-2 数据删除(DELETE) DROP TABLE / DELETE DROP TABLE - 完全删除表 DELETE - 仅删除数据,保留表容器 DELET ...
- [SQL基础教程] 4-1 数据的插入(INSERT)
[SQL基础教程] C4 数据更新 4-1 数据的插入(INSERT) INSERT INSERT INTO <表名>(列1,列2...) VALUES(值1,值2...); 清单 用() ...
- [SQL基础教程] 3-4 对查询结果进行排序/ORDER BY
[SQL基础教程] 3-4 对查询结果进行排序/ORDER BY ORDER BY SELECT <列名1>,<列名2>,<列名2>... FROM ORDER B ...
- [SQL基础教程] 3-3 HAVING
[SQL基础教程] 3-3 HAVING HAVING子句 SELECT col_1,col_2 FROM table GROUP BY col_1,col_2 HAVING col_1 = '2'; ...
随机推荐
- NIFI
Apache nifi 第一篇(概述) Apache nifi 第二篇(小白初试) nifi数据对接流程初次尝试 NIFI ExecuteSQL配置教程(1.8) Processor(处理器)之配置 ...
- Windows Server 2008 R2 ntoskrnl.exe 引起蓝屏故障,重新启动
前不久在HP ProLiant DL360 G6的服务器上面安装了Windows Server 2008 R2,系统一到晚上凌晨就出现蓝屏.重启现象,并且在 C:\Windows\Minidump 目 ...
- 开源DDD设计模式框架YMNNetCoreFrameWork第三篇-增加ASp.net core Identity身份认证,JWT身份认证
1.框架增加Identity注册功能 2.框架增加identity登录以后获取JWTtoken 3.请求接口通过token请求,增加验证特性 源代码地址:https://github.com/topg ...
- 面向对象设计思想和MVC设计模式
虽然之前学习Java时有接触过面向对象的设计思想,但因当时Java没学好.所以导致这两天讲php的面向对象设计时,感到没有头绪,这也反应了我练习少和逻辑能力的不足.而MVC设计思想 面向对象就是要将系 ...
- 一百零七、SAP的OO-ALV之一,新建程序
一.来带SE38模块,新建一个Z_TIANPAN_20190807_OOALV的本地程序 二.设置一个标题,点击对勾 三.选择保存为本地对象 我们下一篇来写创建屏幕
- 《新标准C++程序设计》3.5(C++学习笔记8)
常量对象和常量成员函数 一.常量对象 如果希望某个对象的值初始化后就再也不被改变,则定义该对象时可以在前面加const关键字,使之成为常量对象. class CDemo { private: int ...
- HDU_4960 2014多校9 Another OCD Patient DP
其实现在想起来是个巨简单的DP,模型就跟LCS很像,比赛的时候居然没想出来,在聪哥提醒下还卡了个地方 就是说给定一串n个数字的序列,可以连续合并,最终使得序列是回文的,题目也给定了合并数字所需的代价, ...
- Node.js NPM 管理包
章节 Node.js NPM 介绍 Node.js NPM 作用 Node.js NPM 包(Package) Node.js NPM 管理包 Node.js NPM Package.json 根据安 ...
- UVA - 11400 Lighting System Design(照明系统设计)(dp)
题意:共有n种(n<=1000)种灯泡,每种灯泡用4个数值表示.电压V(V<=132000),电源费用K(K<=1000),每个灯泡的费用C(C<=10)和所需灯泡的数量L(1 ...
- UVA - 11925 Generating Permutations(生成排列)(构造)
题意:将序列1,2,3,……,n,用不超过2n^2次操作,通过下列操作变成给定序列.(1<=n<=300) 1.交换前两个元素 2.将第一个元素移到最后 分析:因为将序列变成升序更容易操作 ...