SQL语言基础:约束与数据操纵
需积分: 40 29 浏览量
更新于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,除非特别处理。
点击了解资源详情
点击了解资源详情
点击了解资源详情
2021-10-09 上传
2018-07-26 上传
2009-02-03 上传
2009-03-13 上传
2008-10-17 上传
2009-06-24 上传
八亿中产
- 粉丝: 28
- 资源: 2万+
最新资源
- 时间触发打开画面.zip昆仑通态触摸屏案例编程源码资料下载
- 行业数据-20年7月份快手短视频用户地域分布.rar
- Class:Class.js - 一种使用 Javascript 创建类的简单方法
- codeChallenges:小婴儿的编码挑战
- Phonesky:非正式的Google PlayStore客户端
- 使用Arduino Nano和Adafruit NeoPixel Matrix的数字计分器-电路方案
- 行业数据-20年9月份中国消费者购买饰品线上渠道分布情况.rar
- 点文件
- 行业数据-20年6月份中国主流视频平台月份活跃用户数.rar
- 进口NROS
- 汽车音响-项目开发
- ActiveMQ:activeMQ消息封装,主要解决:事务性消息、消息幂等性、异常造成的消息丢失问题 本项目不在更新,新项目请看ReliableMessageSystem
- My-Personal-Website:一个关于我的网站! 将在未来几周内更新
- Android-Test-With-JUnit-Mockito-RoboElectric
- crwn-clothing
- 待办事项