1.1 DBMS
DatabaseManagermentSystem
数据库管理系统
DBMS种类
- 层次型数据库(HDB)
最古老的数据库之一,把数据通过层次结构的方式表现。 - 关系型数据库(RDB)
和EXCEL工作表一样,同样采用行列为二维表结构来管理数据。 - 面向对象数据库
- XML数据库
- 键值存储系统
代表性的5种DBMS:
- Oracle Database 甲骨文公司的RDBMS
- SQL Server 微软公司的
- DB2 IBM公司的
- PostgreSQL 开源的
- MySQL 开源的
数据库代表性特点
- 多人共享数据
- 提供进行大量数据的操作
- 应对突发事故
1.2 数据库结构
- RDBMS 通常使用客户端/服务器这样的系统结构。
- 通过从客户端向服务器端发送SQL语句来实现数据库的读写操作。
- 数据库表, 由表示数据项目的列(字段)和表示一条数据的行(记录)所组成。以记录为单位进行数据读写
法则1-1
关系数据库以行为单位读写
SQL语句及其种类
SQL用关键字、表明、列名等组合而形成的一个语句(SQL语句)来描述操作的内容。
分类:
DDL
DDL(数据定义语言)
用来创建或者删除存储数据用的数据库以及数据库中的表的对象。
- CREATE 创建
- DROP 删除
- ALTER 修改数据库和表对象的结构DML
DML(数据操作语言)
用来查询或者变更表中的记录。
- SELECT 查询表中数据
- INSERT 向表中插入
- UPDATE 变更
- DELETE 删除表中的数据DCL
DCL(数据控制语言)用来确认或者取消对数据库中的数据进行变更。还可以对RDBMS的用户是否有权限操作数据库中的对象进行设定。
- COMMIT 确认数据库中的数据进行变更
- ROLLBACK 取消对数据库中的数据进行的变更
- GRANT 赋予用户操作权限
- REVOKE 取消用户的操作权限。
用到的语句,90%都是DML。
SQL的基本书写规则
- 语句要以分号
;
结尾 - SQL语句不区分大小写
但是为了方便理解,使用以下规则:
- 关键字大写
- 表名的首个字大写
- 其余小写
**注意,插入到表中的数据,是区分大小写的。**
例如数据Computer、和COMPUTER不一样。
- 固定的书写方式
- 字符串 使用单引号引住
例如'abc'
- 日期 同样使用单引号括起来,有特有的格式。
1.4 表的创建
- 表通过
CREATE TABLE
语句进行创建而成。 - 表和列的命名要使用有意义的文字。
- 指定列的数据类型
- 可以在表中设置约束
怎样使用SQLShell 进行SQL语句输入:
打开SQL Shell,然后默认输入5次空格键,再输入密码,就能够进入。
提示postgres=#
代表打开成功
语法1-1 创建数据库的CREATE TABLE语句
CREATE DATABASE <数据库名称>
创建数据库后, 就要创建表:
语法1-2 创建表的CREATE TABLE语句
CREATE TABLE <表名>
(<列名1><数据类型><该列所需约束>,
<列名2><数据类型><该列所需约束>,
<列名3><数据类型><该列所需约束>,
...
<该表的约束1>,<改表的约束2>, ......);
例:
命名规则
- 数据库、表、和列的名称。只能使用半角英文字母、数字、下划线(_)。
- 名字必须以英文字母开头。
- 不能创建名称相同的列
数据类型的指定
数据类型包括,数字型、字符型、日期型等。以下分类:
- INTEGER型
用来存储整数的列的数据类型,不能存储小数。 - CHAR型
用来存储字符串的列的数据类型。可以指定存储字符串的最大长度。
例:CHAR(10)
字符串以定长字符串的形式存储在指定为CHAR型的列中。定长字符串就是当列中存储的字符串达不到最大长度时会以半角空格进行补足。 - VARCHAR型
与CHAR类型一样,也是用于存储字符串列的数据类型。同样能够指定字符串最大长度。
与CHAR区别是变长字符串未达到最大长度,不会用空格进行补足。 - DATA型
用来指定存储日期(年月日)的类型数据类型。
约束的设置
NOT NULL 不能输入空白。PRIMARY KEY (shoin_id)
将 shohin_id
列设定为主键约束的。
1-5 表的删除和更新
- 使用DROP TABLE 语句来删除表
- 使用ALTER TABLE 语句来向表中添加列或从表中删除列。
删除表DROP
语法:
DROP TABLE <表名>;
要注意,删除的表,是无法恢复的。
表定义的更新 ALTER TABLE语句
增加列的ALTER TABLE语句
ALTER TABLE <表名> ADD COLUMN <列的定义>;
例如:
ALTER TABLE Shohin ADD COLUMN shohin_mei_kana VARCHAR(100);
删除列 ALTER TABLE语句
语法:
ALTER TABLE <表名> DROP COLUMN <列名>;
例子:
ALTER TABLE Shohin DROP COLUMN shohin_mei_kana ;
注意,从表中删除之后的列 ,就无法恢复了。
插入数据
开头的BEGIN TRANSACTION ;
和结尾的 COMMIT
然后中间的每一条记录,都是一行记录为单位。
例如:
BEGIN TRANSACTION;
INSERT INTO Shohin VALUES('0001','T虚衫','衣服',1000,500,'2009-09-20');
INSERT INTO Shohin VALUES('0002','牛仔衫','衣服',1000,500,'2009-09-22');
INSERT INTO Shohin VALUES('0003','透视装','衣服',1000,500,'2009-09-21');
COMMIT;
重命名语句
很多的数据库都提供了可以修改表明的指令。
例如
ALTER TABLE Sohin RENAME TO Shohin;