数据库在 Java Web 应用中具有非常重要的作用,存储和管理着系统中的数据,作为一个 Java 程序员,数据库的知识是必不可少的,今天这篇 chat 为大家带来常用的 8 个数据库知识点。
本篇 Chat 以 Oracle 数据库为例,从以下 8 个方面对 Java 程序员常用数据库知识点进行阐述:
什么是数据库的 DDL 和 DML?
创建数据库的用户并授权。
如何优雅地建立一张数据库的表?
数据库表的常用增删改查操作。
使用 JDBC 操作数据库。
常用的 SQL 优化技术。
如何用存储过程提升开发效率?
如何玩转数据库的定时任务?
以期通过本场 Chat 的学习,使 Java 程序员快速了解开发中的常用数据库知识点,并且可以运用到项目中。
一、什么是数据库的 DDL 和 DML
SQL(Structure Query Language)语言是数据库的核心语言,SQL 语言共分为四大类:数据定义语言(DDL),数据操作语言(DML),数据控制语言(DCL)、事务控制语言(TCL)。
1. 数据定义语言(DDL)
数据定义语言(Data Definition Language,DDL): 用于定义 SQL 模式、基本表、视图和索引的创建和撤消操作。 主要包含 CREATE、ALTER、DROP、TRUNCATE、RENAME 等语句,一般不需要 commit 等事务操作。
用于操纵表结构的数据定义语言命令有:
CREATE TABLE(创建表)
ALTER TABLE(修改表)
TRUNCATE TABLE(删除表中数据)
DROP TABLE(删除表)
创建表 CREATE TABLE
createtable 表名 (字段 字段类型 [default '默认值' ] [null/not null])
修改表 ALTER TABLE
(1)添加字段:
alter table 表名 add (字段 字段类型) ;
(2)修改字段类型:
alter table 表名 modiy (字段 字段类型 [default '默认值' ] [null/not null] );
修改多个字段用逗号隔开。
(3)删除字段:
alter table 表名 drop (字段);
删除表中的数据 TRUNCATE TABLE
Truncate table 表名;
删除表 DROP TABLE
drop table 表名;
Truncate 与Delete的区别:
Truncate 命令快速删除记录并释放空间, 不使用事务处理,因此无法回滚。
Delete 命令可以在执行删除之后,通过 Rollback 撤销删除。
如果确定表中的数据不再使用,使用 Truncate 命令效率更高。
2. 数据操作语言(DML)
数据操作语言(Data Manipulation Language, DML)由数据库管理系统(DBMS)提供,用于让用户或程序员使用,实现对数据库中数据的操作。 主要包含 SELECT、INSERT、UPDATE、DELETE 等语句。
添加 INSERT
INSERT INTO 表名 VALUES('值', '值');
此处的值必须与表中所有字段一一对应。
INSERT INTO 表名(字段,字段) VALUES('值', '值');
此处的值与括号里列出的字段一一对应。
修改 UPDATE
UPDATE 表名 SET 字段= '值' WHERE 字段= '值';
删除 DELETE
DELETE FROM 表名;
DELETE FROM 表名 WHERE 字段名='字段值';
很多开发人员一般把加上 SQL 的 SELECT 语句的四大指令以“CRUD”来称呼,即人们常说的数据库的“增删改查”。
SELECT具体用法
SELECT select_list
[ INTO new_table ]
FROM table_source
[ WHERE search_condition ]
[ GROUP BY group_by_expression ]
[ HAVING search_condition ]
[ ORDER BY order_expression [ ASC | DESC ] ]
SELECT 查询语句是由七个子句构成,其中 SELECT 和 FROM 子句是一个完整的 SELECT 查询语句必须要有的,其它的子句可以根据具体需要任选。
(1)SELECT 子句
列出所有要求 SELECT 语句进行检索的数据项、DISTINCT 选项,表示查询出的结果中是否容许有内容重复的行出现,缺省时是 ALL 项,表示容许有重复的行出现,而 * 则表示查询出所指定关系表中所有的列。
(2)FROM子句
FROM 子句列出包含所要查询的数据关系表。