Oracle-数据库增删改查基本操作
2024-09-29 06:08:07
一、创建数据表
1).创建不存在的新表:
create table tname(
Data_Name Date_Type [default][默认值]
);
2).创建已存在表的副本
create table emp1 as select * from emp;
create table tname(
Data_Name Date_Type [default][默认值]
);
2).创建已存在表的副本
create table emp1 as select * from emp;
二、插入数据
1).为部分字段批量插入数据
insert into emp1(empno,ename,job) select empno,ename,job from emp;
2).为部分字段插入单行数据
insert into emp1(ename,empno) values('QY','1610676710');
1).为部分字段批量插入数据
insert into emp1(empno,ename,job) select empno,ename,job from emp;
2).为部分字段插入单行数据
insert into emp1(ename,empno) values('QY','1610676710');
3.数据操作
增:insert into table_name(属性名) values(对应的值);
insert into table_name as select * from emp;
删:drop--->针对表级,表框架结构的删除
增:insert into table_name(属性名) values(对应的值);
insert into table_name as select * from emp;
删:drop--->针对表级,表框架结构的删除
drop table table_name;
delete--->删除数据
delete--->删除数据
delete table_name where condition;
改:alter ---->更改表框架结构
alter table table_name rename column sal to person_sal;
alter table table_name rename new_table_name;
alter table table_name modify sal varchar(10);----修改属性的数据类型(注意更改该属性时)
alter table
update --->更新表中数据
改:alter ---->更改表框架结构
alter table table_name rename column sal to person_sal;
alter table table_name rename new_table_name;
alter table table_name modify sal varchar(10);----修改属性的数据类型(注意更改该属性时)
alter table
update --->更新表中数据
update table_name set ename='yuyu' where empno=7900;
查:select
查:select
select * from emp;
三、约束
约束:primary key,foreign key,not null,unique,check;
1).主键Primary key和Unique区别:
主键(在表中只有一个)和唯一性约束(表中允许存在多个)
主键(不允许有空值)和唯一性约束(表中允许存在多个空值)
2).带有约束名的约束条件
A.创建主键约束(四种方式)
---1----
create table table_name(
ename varchar2(20) primary key
);
---2----
create table table_name(
ename varchar2(20),
primary key(ename)
);
---3----
create table table_name(
ename varchar2(20) constraint ename_cons primary key
);
---4----
create table table_name(
ename varchar2(20) ,
constraint ename_cons primary key(ename)
);
B.添加约束名
alter table emp add constraint ename_cons primary key(ename);
C.删除约束名
alter table emp drop constraint ename_cons;
D.查看约束名(根据user_constraints这个表)、
select constraint_name,table_name,constraint_type|column_name|column_type from user_constraints where table_name=一定要大写;
约束:primary key,foreign key,not null,unique,check;
1).主键Primary key和Unique区别:
主键(在表中只有一个)和唯一性约束(表中允许存在多个)
主键(不允许有空值)和唯一性约束(表中允许存在多个空值)
2).带有约束名的约束条件
A.创建主键约束(四种方式)
---1----
create table table_name(
ename varchar2(20) primary key
);
---2----
create table table_name(
ename varchar2(20),
primary key(ename)
);
---3----
create table table_name(
ename varchar2(20) constraint ename_cons primary key
);
---4----
create table table_name(
ename varchar2(20) ,
constraint ename_cons primary key(ename)
);
B.添加约束名
alter table emp add constraint ename_cons primary key(ename);
C.删除约束名
alter table emp drop constraint ename_cons;
D.查看约束名(根据user_constraints这个表)、
select constraint_name,table_name,constraint_type|column_name|column_type from user_constraints where table_name=一定要大写;
四、游标补充
1).ref cursor
当需要将游标与不同的查询语句建立关联时,类似于指针,输入动态游标,即只有运行时才知道这条查询;
--格式:
type cursor_name is ref cursor [return return_type];--创建游标
cursor_variable cursor_name;--声明游标
open cursor_variable for select_statement;--打开游标
close cursor_variable;--关闭游标
注:1).游标类型本身可以在包中定义,但是游标变量不能在包中定义
2).游标变量可以在客户端与服务器之间传递,但不能在两个服务器之间传递
3).不能通过动态sql使用游标变量
4).PL/SQL的index-by表,嵌套表和可变数组不能存储游标变量,表和视图不能存储ref cursor引用类型的列
5).能用静态游标,不用动态
2).sys_refcursor
主要用于在过程中返回结果集
举例、
create ir replace procedure mypro(cur out sys_refcursor) as
begin
open cur for select * from emp;
end mypro;
/
客户端:
var cur refcursor;
exec mypro(:cur);
1).ref cursor
当需要将游标与不同的查询语句建立关联时,类似于指针,输入动态游标,即只有运行时才知道这条查询;
--格式:
type cursor_name is ref cursor [return return_type];--创建游标
cursor_variable cursor_name;--声明游标
open cursor_variable for select_statement;--打开游标
close cursor_variable;--关闭游标
注:1).游标类型本身可以在包中定义,但是游标变量不能在包中定义
2).游标变量可以在客户端与服务器之间传递,但不能在两个服务器之间传递
3).不能通过动态sql使用游标变量
4).PL/SQL的index-by表,嵌套表和可变数组不能存储游标变量,表和视图不能存储ref cursor引用类型的列
5).能用静态游标,不用动态
2).sys_refcursor
主要用于在过程中返回结果集
举例、
create ir replace procedure mypro(cur out sys_refcursor) as
begin
open cur for select * from emp;
end mypro;
/
客户端:
var cur refcursor;
exec mypro(:cur);
最新文章
- RPC框架性能基本比较测试
- Repeater嵌套Repeater并取得嵌套Repeater里面的控件
- C# virtual override 和 new 的区别
- Spring—Quartz定时调度CronTrigger时间配置格式说明与实例
- 完美配置Tomcat的HTTPS
- (step6.3.4)hdu 1151(Air Raid——最小路径覆盖)
- WordPress防暴力破解:安全插件和用.htpasswd保护WordPress控制面板
- NYOJ-520 最大素因子
- 优先队列的二叉堆Java实现
- mysql 批量插入优化之rewriteBatchedStatements
- c++/cmake /Android NDK 动态链接库交叉编译笔记
- 模拟Paxos算法及其简单学习总结
- Python excel 奇怪的通信规则
- Unity 3D类结构简介
- Django-Form组件之字段
- file上传图片,base64转换、压缩图片、预览图片、将图片旋转到正确的角度
- Xcode No account for team ";";. Add a new account in the Accounts preference pane or verify that your accounts have valid credentials.
- 洛谷.2197.nim游戏(博弈论 Nim)
- sqlserver 优化
- 【Android自动化】unittest测试框架关于用例执行的几种方法
热门文章
- mininet的安装
- 我想写一个前端开发工具(三):优化!从vue-cli学了几招
- vue使用iview Timeline 时间轴不显示问题
- SQL SERVER 对权限的授予GRANT、拒绝DENY、收回REVOKE
- Inconsistant light map between PC and Mobile under Unity3D
- react基本demo详解
- 20190118-利用Python实现Pig Latin游戏
- 『Python基础-3』变量、定义变量、变量类型、关键字Python基础-3』变量、定义变量、变量类型、关键字
- Python学习手册之 Python 之禅、Python 编程规范和函数参数
- 清华大学《C++语言程序设计基础》线上课程笔记05---vector对象,对象的复制与移动,string类