sql和pl/sql

1. sql 和 pl/sql概念

SQL(Structured Query Language) 结构化查询语言 可分为:

  • 数据定义语言 (DDL) :Data Definition Language
  • 数据操纵语言(DML) : Data Manipulation Language
  • 事务控制语言(TCL) : Transaction Control Language
  • 数据查询语言(DQL) : Data Query Language
  • 数据控制语言 (DCL) :Data Control Language

数据定义语言 (DDL) :用于定义和管理数据库对象(如表、索引、视图等),

允许用户创建、修改和删除数据库结构,但不涉及数据操作
DDL操作通常会自动提交,一旦执行DDL语句,更改将立即生效,无法撤销

  • CREATE:用于创建数据库对象,如表、索引、视图、序列等
  • ALTER:用于修改现有数据库对象的结构
  • DROP:用于删除数据库对象
  • TRUNCATE:用于删除表中的所有数据,但保留表结构
  • RENAME:用于重命名数据库对象

数据操作语言 (DML) :用于改变数据表中的数据
和事务相关,执行完后需要经过事务控制语句提交后才真正的将改变应用到数据库中,包括:

  • INSERT: 将数据插入到数据表中
  • UPDATE:更新数据表中已存在的数据
  • DELETE:删除数据表中的数据

事务控制语言 (TCL) :用来维护数据一致性的语句,包括:

  • COMMIT: 提交,确认已经进行的数据改变
  • ROLLBACK: 回滚,取消已经进行的数据改变
  • SAVEPOINT: 保存点,使当前的事务可以回退到指定的保存点,便于取消部分改变

数据控制语言 (DCL) :用于执行权限的授予和收回操作,包括:

  • GRANT: 授予,用于给用户或角色授予权限
  • REVOKE: 用于收回用户或角色已有的权限
  • CREATE USER: 创建用户

PL/SQL定义

把数据操作和查询语句组织在PL/SQL代码的过程性单元中,通过逻辑判断、循环等操作实现复杂的功能或计算的程序语言
是Oracle数据库对SQL语句的扩展,在普通SQL语句的使用上增加了编程语言的特点

2.常用数据类型

2.1 NUMBER

表示数字类型,经常被定义成NUMBER (P,S)形式,其中:

  • P表示数字的总位数
  • S表示小数点后面的位数

例如在表emp中的sal列的定义 sal NUMBER(6,2)
表示sal列中的数据,整数位最大为4位,小数位最大位数是2位,也就是最大取值: 9999.99

2.2 CHAR

表示固定长度的字符类型,经常被定义成CHAR(N)形式

  • N表示占用的字节数最大长度是2000字节

例如在表emp中的ename列的定义如下 ename CHAR(20)
表示ename列中最多可存储20个字节的字符串,并且占用的空间是固定的20个字节

2.3 VARCHAR2

表示变长的字符类型,定义格式是VARCHAR2(N)

  • N表示最多可占用的字节数,最大长度是4000字节

例如在表emp中的job列的定义如下 job VARCHAR2(100)
表示job列中最多可存储长度为100个字节的字符串
根据其中保存的数据长度,占用的空间是变化的,最大占用空间为100个字节

在这里插入图片描述

2.4 DATE
用于定义日期时间的数据长度是7个字节
默认格式是: DD-MON-RR,例如:11-04月-17
例如在表emp中的hiredate列的定义如下 hiredate DATE
表示hiredate列中存放的是日期数据

--查询系统日期和时间
select sysdate from dual

在这里插入图片描述

3.SQL注释

/*
多行注释
多行注释
*/

-- 单行注释

在这里插入图片描述

4.CREATE 建表语句

create table 建表语句格式如下:

CREATE TABLE [schema.]table_name(
column_name datatype [DEFAULT expr],...
);
create table student (
id number(4) not null,        #非空 not null 
name varchar2(40),
gender char(1) default 'm',   #默认值 default 
height number(3,2),
birth date
)

drop table student;           #删除student表格

在这里插入图片描述

在这里插入图片描述

5. alter table 修改表语句

--修改表
--修改表名,修改列名,添加列,修改列(数据据类型,长度,默认值),删除列

--把student表名修改为students
rename student to students;

--添加address列
alter table students add address varchar2(2);

--修改列长度和默认值
alter table students modify address varchar2(10) default 'address1';

--修改列数据类型
alter table students modify address char(10);

--修改列名为stu_address
alter table students rename column address to stu_address;

--删除列
alter table students drop column stu_address;

踩坑:出于安全考虑,oracle不允许删除sys中数据表的列

关于授予权限的相关操作可以参考以下文档:
https://blog.csdn.net/Ryan_black/article/details/105628695

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值