一、数据定义语言(DDL)
DDL用于定义数据库结构或模式,主要包括创建、修改和删除数据库对象等操作。
创建表:
sql复制代码
CREATE TABLE table_name ( column1 datatype [DEFAULT default_value] [column_constraint], column2 datatype [DEFAULT default_value] [column_constraint], ... [table_constraint] );示例:
sql复制代码
CREATE TABLE students ( student_id NUMBER PRIMARY KEY, name VARCHAR2(50), birth_date DATE );
修改表:
添加字段:
sql复制代码
ALTER TABLE table_name ADD (column_name datatype [DEFAULT default_value]);修改字段类型或默认值:
sql复制代码
ALTER TABLE table_name MODIFY (column_name datatype [DEFAULT default_value]);删除字段:
sql复制代码
ALTER TABLE table_name DROP COLUMN column_name;重命名字段:
sql复制代码
ALTER TABLE table_name RENAME COLUMN old_column_name TO new_column_name;添加或删除约束:
sql复制代码
ALTER TABLE table_name ADD CONSTRAINT constraint_name constraint_type (column_name); ALTER TABLE table_name DROP CONSTRAINT constraint_name;
删除表:
sql复制代码
DROP TABLE table_name [CASCADE CONSTRAINTS];二、数据查询语言(DQL)
DQL用于从数据库中检索数据,最常用的操作是SELECT语句。
基本查询:
sql复制代码
SELECT column1, column2, ... FROM table_name [WHERE condition] [ORDER BY column1 [ASC|DESC], column2 [ASC|DESC], ...];
聚合函数和分组:
使用聚合函数(如SUM、AVG、COUNT、MAX、MIN)来计算数据的统计信息。使用GROUP BY子句对查询结果进行分组。
连接查询:
使用INNER JOIN、LEFT JOIN、RIGHT JOIN等连接类型来组合来自多个表的数据。
子查询:
在SELECT、FROM或WHERE子句中使用子查询来执行更复杂的查询。
三、数据操纵语言(DML)
DML用于插入、更新和删除数据库中的数据。
插入数据:
sql复制代码
INSERT INTO table_name (column1, column2, ...) VALUES (value1, value2, ...);更新数据:
sql复制代码
UPDATE table_name SET column1 = value1, column2 = value2, ... WHERE condition;删除数据:
sql复制代码
DELETE FROM table_name WHERE condition;四、事务控制语言(TCL)
TCL用于管理数据库事务,确保数据的完整性和一致性。
提交事务:
sql复制代码
COMMIT;回滚事务:
sql复制代码
ROLLBACK;设置保存点:
sql复制代码
SAVEPOINT savepoint_name;回滚到保存点:
sql复制代码
ROLLBACK TO SAVEPOINT savepoint_name;五、其他常用操作
合并数据:
使用MERGE INTO语句可以根据条件更新或插入数据。例如,当表中存在某一条数据就进行更新,如果不存在则插入一条新数据。
sql复制代码
MERGE INTO target_table t USING source_table s ON (t.id = s.id) WHEN MATCHED THEN UPDATE SET t.column1 = s.column1, t.column2 = s.column2 WHEN NOT MATCHED THEN INSERT (id, column1, column2) VALUES (s.id, s.column1, s.column2);数据导入导出:
Oracle提供了多种数据导入导出工具,如Data Pump、SQL*Loader等,用于在数据库之间迁移数据或备份数据。
索引和视图:
创建索引可以提高查询性能。创建视图可以简化复杂查询并增强数据安全性。
序列和同义词:
序列用于生成唯一的数值,通常用于主键。同义词是数据库对象的别名,用于简化查询或提高安全性。