SQL语言基础:约束与数据操纵

需积分: 40 5 下载量 21 浏览量 更新于2024-08-15 收藏 1.82MB PPT 举报
本文档是关于Oracle数据库管理和SQL语言的基础学习资料,主要涵盖定义约束、SQL语句使用、数据查询和管理以及数据库对象创建等多个方面。 在Oracle数据库中,约束是用于确保数据完整性的规则。根据描述,约束分为列级约束和表级约束: 1. **列级约束**:只作用于单一列,可以定义任何类型的完整性约束,如NOT NULL、UNIQUE、PRIMARY KEY、FOREIGN KEY等。定义语法如下: ```sql CREATE TABLE table_name ( column_name datatype [CONSTRAINT constraint_name] constraint_type, ... ); ``` 其中,`constraint_type`可以是NULL(默认允许空值)、NOT NULL(不允许空值)、CHECK(自定义条件检查)等。 2. **表级约束**:涉及一个或多个列,定义时可以跨列。除了NOT NULL之外,所有类型的约束都可以定义。定义语法如下: ```sql CREATE TABLE table_name ( column_name1 datatype, column_name2 datatype, ..., [CONSTRAINT constraint_name] constraint_type(column_name1, column_name2, ...), ... ); ``` 文档还提到了查看约束信息的相关视图:`USER_CONS_COLUMNS` 和 `USER_CONS_CONSTRAINTS`,这两个视图提供了关于用户模式中约束及其列的信息,可以帮助管理员管理和监控数据库的完整性规则。 SQL语言基础部分,文档覆盖了以下几个主题: 1. **基本的SELECT语句**:用于从数据库中检索数据,包括列选择(选择特定列)、行选择(通过WHERE子句筛选行)和连接(JOIN操作,用于合并多个表的数据)。 ```sql SELECT * | {[DISTINCT] column | expression [alias]} FROM table; ``` 2. **约束和排序数据**:约束用于数据完整性,而排序(ORDER BY)用于按照指定顺序返回结果。 3. **单行函数**:如字符串函数、数值函数、日期函数等,用于处理单行数据。 4. **多表显示数据、组函数合计数据**:JOIN操作结合多个表,GROUP BY和聚合函数(SUM, AVG, COUNT等)用于数据汇总。 5. **子查询**:嵌套在其他SQL语句中的查询,用于获取和处理数据。 6. **操纵数据**:INSERT、UPDATE、DELETE等语句用于插入、修改和删除数据。 7. **内置约束**:如前面提到的列级和表级约束,用于保证数据的准确性。 8. **创建视图**:视图是虚拟表,基于一个或多个表的查询结果,提供简化数据访问的方式。 9. **其他数据库对象**:如索引、存储过程、触发器等,都是数据库管理系统中的重要组成部分。 在SQL语句写作中,需要注意以下几点: - SQL语句不区分大小写,但为了可读性通常将关键词大写。 - SQL语句可以写在一行或多行,关键字不能简写。 - 子句通常单独一行,用缩进提高可读性。 - 算术表达式支持加、减、乘、除操作,注意运算符的优先级和空值处理。 例如,以下SQL语句展示了如何在员工表中增加薪水300,或者计算年薪(12倍薪水加100): ```sql SELECT last_name, salary, salary + 300 FROM employees; SELECT last_name, salary, 12 * salary + 100 FROM employees; ``` 空值(NULL)在算术表达式中通常会导致结果也为NULL,除非特别处理。