Oracle 学习:约束、查询语句

阅读本文大概需要 6 分钟。

一、约束

  • 非空约束
  • 主键约束
  • 外键约束
  • 唯一约束
  • 检查约束

数据字典(user_constraints)

1. 约束的作用

  • 定义规则
  • 确保数据完整性(精确性和可靠性)

2. 非空约束

1 > 在创建表的时候设置非空约束
CREATE TABLE table_name (column_name datatype NOT NULL,...);
2 > 在修改表的的候添加非空约束
ALTER TABLE table_name MODIFY column_name datatype NOT NULL;
3 > 在修改表的时候去除非空约束
ALTER TABLE table_name MODIFY column_name datatype NULL;

3.主键约束

作用:确保表中每一行数据的唯一性 (非空,唯一)

一张表中只能设置一个主键约束

1 > 在创建表的时候设置主键约束
CREATE TABLE table_name (column_name datatype PRIMARY KEY,...);
//联合主键
CREATE TABLE table_name (column_name datatype,...
,CONSTRAINT constaint_name PRIMARY KEY(column_name1,...));
2 > 在修改表的的候添加主键约束
ALTER TABLE table_name 
ADD CONSTRAINT constraint_name PRIMARY KEY (column_name1,...);
3 > 更改主键约束名称
ALTER TABLE table_name RENAME CONSTRAINT old_name TO new_name;
3 > 删除主键约束
//禁用|启用
ALTER TABLE table_name DISABLE|ENABLE CONSTRAINT constraint_name;
//彻底删除
ALTER TABLE table_name DROP CONSTRAINT constraint_name;
ALTER TABLE table_name DROP PRIMARY KEY[CASCADE]

4. 外键约束

两个表当中字段关系的约束

1 > 在创建表的时候设置外键约束

添加列级外键约束方法

CREATE TABLE table1 (column_name1 datatype REFERENCES table2(column_name),...);

添加表级外键约束方法

CREATE TABLE table1(conlumn_name datatype,...
,CONSTRAINT constraint_name FOREIGN KEY (column_name) 
REFERENCES table2 (column_name) [ON DELETE CASCADE]);

table1从表table2主表

外建约束时主表当中的字段,必须是主表当中的主键

主从表当中的字段必须是同一个数据类型

从表中外键字段的值,必须来自主表中相印字段的值,或者NULL

2 > 在修改表的的候添加外键约束
ALTER TABLE table_name1 
ADD CONSTRAINT constraint_name FOREIGN KEY (column_name)
ERFERENCES table_name2 (column_name)[ON DELETE CASCADE];
3 > 更改外键约束名称
ALTER TABLE table_name RENAME CONSTRAINT old_name TO new_name;
3 > 删除外键约束
//禁用|启用
ALTER TABLE table_name DISABLE|ENABLE CONSTRAINT constraint_name;
//彻底删除
ALTER TABLE table_name DROP CONSTRAINT constraint_name;

5. 唯一约束

保证值的唯一性。

与主键约束的区别:允许空值,在一个表中可以从在多个唯一约束

1 > 在创建表的时候设置唯一约束
//列级创建
CREATE TABLE table_name (column_name datatype UNIQUE,...);
//表级创建
CREATE TABLE table_name (column_name datatype,...
,CONSTRAINT constaint_name UNIQUE(column_name));
2 > 在修改表的的候添加唯一约束
ALTER TABLE table_name 
ADD CONSTRAINT constraint_name UNIQUE (column_name);
3 > 更改唯一约束名称
ALTER TABLE table_name RENAME CONSTRAINT old_name TO new_name;
3 > 删除唯一约束
//禁用|启用
ALTER TABLE table_name DISABLE|ENABLE CONSTRAINT constraint_name;
//彻底删除
ALTER TABLE table_name DROP CONSTRAINT constraint_name;

6. 检查约束

让表当中的值满足一定的条件,有实际意义

1 > 在创建表的时候设置检查约束
//列级创建
CREATE TABLE table_name (column_name datatype CHECK(expressions),...);
//表级创建
CREATE TABLE table_name (column_name datatype,...
,CONSTRAINT constaint_name CHECK(expressions));
2 > 在修改表的的候添加检查约束
ALTER TABLE table_name 
ADD CONSTRAINT constraint_name CHECK (expressions);
3 > 更改检查约束名称
ALTER TABLE table_name RENAME CONSTRAINT old_name TO new_name;
3 > 删除检查约束
//禁用|启用
ALTER TABLE table_name DISABLE|ENABLE CONSTRAINT constraint_name;
//彻底删除
ALTER TABLE table_name DROP CONSTRAINT constraint_name;

二、查询

1. 基本查询语句

SELECT [DISTINCT] column_name1...| * FROM table_name [WHERE conditions];

2. 在SQL*PLUS中设置格式

//更改列表显示名 COLUMN 可以简写 COL
COLUMN  column_name HEADING new_name;
//设置结果显示格式 字符:a10 数字:9999.9 ¥9999
COLUMN column_name FORMAT dataformat;
//清除设置的格式
COLUMN column_name CLEAR;

3. 给字段设置别名

// AS 可以省略
SELECT column_name AS new_name,... FROM table_name;

4. 运算符和表达式

  • 算术运算符(+ - / *)
  • 比较运算符(> < <= >= <>)
  • 逻辑运算符 (and or not)

优先级: not > and > or

5. 带条件的查询

SELECT [DISTINCT] column_name1...| * FROM table_name WHERE conditions;
  • 单条件的查询
  • 多条件的查询 (and or not)

6. 模糊查询

关键字: like

通配符的使用(’_’,’%’)

_ :表示一个字符 % : 表示任意个字符

SELECT [DISTINCT] column_name1...| * 
FROM table_name WHERE column_name like 'X%';

SELECT [DISTINCT] column_name1...| * 
FROM table_name WHERE column_name like '_X%';

6. 范围查询

  • BETWEEN…AND… 一般用于数值
  • IN/ NOT IN 一般用于字符

SELECT [DISTINCT] column_name1...| * FROM table_name 
WHERE BETWEEN xxx AND xxx;
SELECT [DISTINCT] column_name1...| * FROM table_name 
WHERE IN |NOT IN(value,value); 

7. 对查询结果排序

SELECT...FROM...[WHERE...] ORDER BY column1 DESC|ASC,...

8. case…when 语句

CASE column_name WHEN value1 THEN result1,...[ELSE result] END;
CASE WHEN column_name=valu1 THEN result1,...[ELSE result] END;

decode 函数具有类似功能。


持之以恒。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值