数据库原理 SQL(DDLDML)
数据库 (Database, 简称 DB) 是按照数据结构来组织
存储和管理数据的仓库.
数据库管理系统(Database Management System, 简称
DBMS): 管理数据库的软件.
数据库引擎, 数据库范式(了解百科)
表的概念
一个关系数据库由多个数据表 (Tabe) 组成, 数据表是关系
数据库的基本存储结构
表是二维的, 由行和列组成
表的行 (Row) 是横排数据, 也被称作记录(Record)
表的列 (Column) 是纵列数据, 也被称作字段(Field)
表和表之间存在关联关系
主流关系型数据库
Oracle 是著名的 Oracle(甲骨文)公司的数据库产品
DB2 是 IBM 公司的关系型数据库管理系统
Sybase 是美国 Sybase 公司的关系型数据库系统
Microsoft SQL Server 是微软的产品, 运行在 WindowsNT 服 务器上
MySQL 是开发源代码的小型关系数据库管理系统, 广泛
应用在中小型网站中,(目前也属于 Oracle)
SQL 概述
SQL: 结构化查询语言
SQL 是在关系数据库上执行数据操作检索及维护所使
用的标准语言, 可以用来查询数据, 操纵数据, 定义数据,
控制数据
所有的数据库都使用相同或者相似的语言
SQL 可分为:
数据定义语言(DDL):Data Definition Language
数据操纵语言(DML):Data Manipulation Language
事务控制语言(TCL):Transaction Control Language
数据查询语言(DQL):Data Query Language
数据控制语言(DCL):Data Control Language
DDL
Data Definition Language
用于建立修改删除数据库对象
包括:
CREATE: 创建表或其他对象的结构
ALTER: 修改表或其他对象的结构
DROP: 删除表或其他对象的结构
TRUNCATE: 删除表数据, 保留表结构
DDL: 数据定义语言
DDL 用于维护数据库对象使用
数据库对象: 表, 视图, 索引, 序列.
DML
Data Manipulation Language
用于改变数据表中的数据
和事务相关, 执行完后需要经过事务控制语句提交后才
真正的将改变应用到数据库中
包括:
INSERT: 将数据插入到数据表中
UPDATE: 更新数据表中已存在的数据
DELETE: 删除数据表中的数据
TCL
Transaction Control Language
用来维护数据一致性的语句
包括:
COMMIT: 提交, 确认已经进行的数据改变
ROLLBACK: 回滚, 取消已经进行的数据改变
SAVEPOINT: 保存点, 使当前的事务可以退到指定的
保存点, 便于取消部分改变
DQL
Data Query Language
用来查询所需要的数据
SELECT 语句
DCL
Data Control Language
用于执行权限的授予和收回操作
包括:
GRANT: 授予, 用于给用户或角色授予权限
REVOKE: 用于收回用户或角色有的权限
CREATE USER: 创建用户
Oracle 数据类型
NUMBER 表示数字类型
经常被定义成 NUMBER(P,S)形式, 其中:
P 表示数字的总位数
S 表示小数点后面的位数
CHAR 表示固定长度的字符类型
经常被定义成 CHAR(N)形式, N 表示占用的字节数
最大长度是 2000 字节
VARCHAR2 表示变长的字符类型
定义格式是 VARCHAR2(N),N 表示最多可占用的字节数
最大长度是 4000 字节
DATE 用于定义日期时间的数据
长度是 7 个字节
默认格式是: DD-MON-RR, 例如: 11-APR-71
创建表
CREATE 语句
CREATE TABLE 名字()
DESC 语句(查看表的结构)
DESC table_name
DEFAULT 语句
可以通过 DEFAULT 子句给列指定默认值
给 gender 列赋默认值 M, 如果没有指定性别的员工,
默认是男性.
NOT NULL
非空是一种约束条件, 用于确保字段值不为空
默认情况下, 任何列都允许有空值
当某个字段被设置了非空约束条件, 这个字段中必须 存在有效值
当执行插入数据的操作时, 必须提供这个列的数据
当执行更新操作时, 不能给这个列的值设置为 NULL
修改表
修改表名
在建表后如果希望修改表名, 可以使用 RENAME 语句实 现
增加列
给表增加列可以使用 ALTER TABLE 的 ADD 子句实现
语法: ALTER TABLE table_name ADD
列只能增加在最后, 不能插入到现有的列中
删除列
使用 ALTER TABLE table_name DROP(column);
删除字段需要从每行中删掉该字段占据的长度和数据,
并释放在数据块中占据空间, 如果表记录比较大, 删除 字段可能需要比较长的时间.
修改列
建表之后们可以改变表中列的数据类型长度和默认值
修改仅对以后插入的数据有效
如果把长度由大改小, 有可能不成功
语法: ALTER TABLE table_name MODIFY
DML 语句
INSERT 语句: 给数据表增加记录
语法如下:
INSERT INTO table_name[(column[,column...])]
VALUES(value[,value...]);
执行 DML 操作以后, 需要在执行 commit 语句, 才算真正
确认了此操作
如果插入的列有日期字段, 需要考虑日期的格式
可以自定义日期格式, 用 TO_DATE 函数转换为日期类型的数据
UPDATE 语句
更新表中的记录
语法如下: UPDATE table_name
SET column = value[,column=value]..
[WHRER condition];
如果没有 WHERE 子句, 则全表的数据都会被更新, 务必小心
DELETE 语句
删除表中的记录
语法如下: DELETE[FROM] table_name[WHERE condition];
如果没有 WHERE 子句, 则全表的数据都会被删除!
来源: http://www.bubuko.com/infodetail-2484885.html