oracle菜鸟学习之 表操作

首发:http://www.arppinging.com/wordpress/?p=96

oracle菜鸟学习之 表操作

1.创建表

在oracle中,创建表使用create table来实现

SQL> create table student(sno number(6),sname varchar2(12),address varchar2(20));

Table created.

SQL> desc student;
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 SNO                                                NUMBER(6)
 SNAME                                              VARCHAR2(12)
 ADDRESS                                            VARCHAR2(20)

SQL> 

2.修改表的列

1.增加一列

SQL> alter table student add phone varchar(11);

Table altered.

SQL> desc student;
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 SNO                                                NUMBER(6)
 SNAME                                              VARCHAR2(12)
 ADDRESS                                            VARCHAR2(20)
 PHONE                                              VARCHAR2(11)

SQL> 

2.修改列属性,需要注意的是,如果修改的属性为长度,那么已存在的数据长度不能超过修改过后的数据长度。比如现存在一条信息,sname长度为6,如果你将sname的长度修改为5,那么将会出错。

# 这里使用到了modify(修改)
SQL> alter table student modify sname varchar2(5);

Table altered.

SQL> desc student;
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 SNO                                                NUMBER(6)
 SNAME                                              VARCHAR2(5)
 ADDRESS                                            VARCHAR2(20)
 PHONE                                              VARCHAR2(11)

SQL> 

3.删除列

在oracle中,删除列需要用column(列)

SQL> alter table student drop column phone;

Table altered.

SQL> desc student;
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 SNO                                                NUMBER(6)
 SNAME                                              VARCHAR2(5)
 ADDRESS                                            VARCHAR2(20)

SQL>
3.插入数据
1.常规插入,所有的列都插入

SQL> insert into student values(1,‘A‘,‘BJ‘);

1 row created.

SQL> select * from student;

       SNO SNAME       ADDRESS
---------- --------------- ------------------------------------
     1 A           BJ
2.插入空值

SQL> insert into student values(2,‘B‘,null);

1 row created.

SQL> select * from student;

       SNO SNAME       ADDRESS
---------- --------------- ------------------------------------
     1 A           BJ
     2 B

SQL>
3.指定列插入数据

SQL> insert into student(sno,address) values(3,‘SH‘);

1 row created.

SQL> select * from student;

       SNO SNAME       ADDRESS
---------- --------------- ------------------------------------
     1 A           BJ
     2 B
     3         SH

SQL> 

4.复制表

1.复制表的所有内容

SQL> create table student2 as select * from student;

Table created.

SQL> desc student2;
 Name                       Null?    Type
 ----------------------------------------- -------- ----------------------------
 SNO                            NUMBER(6)
 SNAME                            VARCHAR2(5)
 ADDRESS                        VARCHAR2(12)

SQL> select * from student2;

       SNO SNAME       ADDRESS
---------- --------------- ------------------------------------
     1 A           BJ
     2 B
     3         SH

SQL> 

2.只复制表结构,不复制内容

SQL> create table student3 as select * from student where 1>2;

Table created.

SQL> desc student3;
 Name                       Null?    Type
 ----------------------------------------- -------- ----------------------------
 SNO                            NUMBER(6)
 SNAME                            VARCHAR2(5)
 ADDRESS                        VARCHAR2(12)

SQL> select * from student3;

no rows selected

SQL> 

3.将student表的信息全部插入student3表中(也可以用where筛选)

SQL> select * from student3;

no rows selected

SQL> insert into student3 select * from student;

3 rows created.

SQL> select * from student3;

       SNO SNAME       ADDRESS
---------- --------------- ------------------------------------
     1 A           BJ
     2 B
     3         SH

SQL> 

5.更新表

更新表中的内容

SQL> update student2 set sname=‘C‘ where sno=3;

1 row updated.

SQL> select * from student2;

       SNO SNAME       ADDRESS
---------- --------------- ------------------------------------
     1 A           BJ
     2 B
     3 C           SH

SQL>

6.删除内容

1.删除某条信息,使用delete需要commit提交

SQL> delete student2 where sname=‘C‘;

1 row deleted.

SQL> select * from student2;

       SNO SNAME       ADDRESS
---------- --------------- ------------------------------------
     1 A           BJ
     2 B

SQL> commit;

Commit complete.

2.清空表中的内容,保留表结构
使用delete的方式清除,需要提交,delete方式清除的内容会写入日志,可以恢复。

SQL> delete student3;

3 rows deleted.

SQL> select * from student3;

no rows selected

SQL> desc student3;
 Name                       Null?    Type
 ----------------------------------------- -------- ----------------------------
 SNO                            NUMBER(6)
 SNAME                            VARCHAR2(5)
 ADDRESS                        VARCHAR2(12)

SQL> commit;

Commit complete.

3.使用truncate table 删除的内容不会写入日志,不可恢复,不需要提交

SQL> truncate table student2;

Table truncated.

SQL> select * from student2;

no rows selected

SQL> desc student2;
 Name                       Null?    Type
 ----------------------------------------- -------- ----------------------------
 SNO                            NUMBER(6)
 SNAME                            VARCHAR2(5)
 ADDRESS                        VARCHAR2(12)

SQL> 

7.删除表

SQL> drop table student3;

Table dropped.

SQL>
SQL>
SQL> desc student3;
ERROR:
ORA-04043: object student3 does not exist

8.重命名

1.表的重命名
格式:rename a to b;

SQL> rename student2 to newstudent;

Table renamed.

SQL> select * from newstudent;

       SNO SNAME                 AGE
---------- ------------------------------ ----------
     1 ZhangSan               21
     2 FeiFei                 22
     3 WangWu                 23
     4 ZhaoYun                24

SQL>
2.重命名列
格式:alter table table_name rename column a to b;

SQL> alter table newstudent  rename column age to sage;

Table altered.

SQL>
SQL> desc newstudent;
 Name                       Null?    Type
 ----------------------------------------- -------- ----------------------------
 SNO                            NUMBER(6)
 SNAME                            VARCHAR2(10)
 SAGE                            NUMBER(38)

SQL> 

9.查看所有表名

select * from tab;

原文地址:http://blog.51cto.com/xiaowangzai/2298979

时间: 2024-08-02 08:25:30

oracle菜鸟学习之 表操作的相关文章

Oracle菜鸟学习之在RedHat 6.5上安装Oracle

Oracle菜鸟学习之在RedHat 6.5上安装Oracle 11G 首发:http://www.arppinging.com/wordpress/?p=90 安装前准备工作 上传数据库软件至/tmp/下,并修改文件权限 chmod -R 755 /tmp/database/ 创建用户和组 创建oracle用户,并将oracle用户加入oinstall和dba组,后面安装的时候需要用到 [[email protected] ~]# groupadd oinstall [[email prote

oracle菜鸟学习之 select case when的使用

[toc] oracle菜鸟学习之 select case when的使用 格式语法 case when 条件1 then action1 when 条件2 then action2 when 条件3 then action3 when 条件N then actionN else action end 例子 判断现在是几月 SQL> select case substr('20181118',5,2) 2 when '08' then '8yue' 3 when '09' then '9yue'

oracle菜鸟学习之 复杂的更新语句使用

oracle菜鸟学习之 复杂的更新语句使用 实例与答案 问题:表T1里有a,b,c...N个字段,表T2里有a,b,c三个字段,然后想在T1中"c"与表T2中"c"相同的情况下,从表T2中将a,b覆盖表T1中的a,b,怎么做? 实验表: create table T1(a int,b int,c int,d int,e int); create table T2(a int,b int,c int); insert into T1 values(1,2,3,4,5)

oracle菜鸟学习之 分析函数-排序

oracle菜鸟学习之 分析函数-排序 排序函数 1.row_number:返回连续的排序,无论值是否相等2.rank:具有相等值得行排序相同,序数值随后跳跃3.dense_rank:具有相等值得行排序相同,序号是连续得 实验表 create table chengji(sno number,km varchar2(10),score number); insert into chengji values(1,'YW',60); insert into chengji values(1,'SX'

oracle 菜鸟学习之 decode中if-then-else逻辑

oracle 菜鸟学习之 decode中if-then-else逻辑 decode类似于if - then - else 语法:decode(values,if1,then1,if2,then2,...else) values 代表某个表的任何类型的任意列或者一个通过计算所得的任何结果,当每个value值被测试,如果value的值为if1,decode函数的结果为then1,如果都不符合,那么就返回else.这里的if.then及else都可以是函数或计算表达式. 例子 create table

Oracle菜鸟学习之 Oracle基础命令

首发:http://www.arppinging.com/wordpress/?p=93 Oracle菜鸟学习之 Oracle基础命令 1.connect和show user 连接用户和查看当前用户 SQL> show user; USER is "SCOTT" SQL> conn /as sysdba Connected. SQL> show user USER is "SYS" SQL> 2.clear screen 清除屏幕输出 3.s

Oracle 11g 学习3——表空间操作

一.表空间概述 表空间是Oracle中最大的逻辑存储结构,与操作系统中的数据文件相对应: 基本表空间:一般指用户使用的永久性表空间,用于存储用户的永久性数据 临时表空间: 主要用于存储排序或汇总过程中产生的临时数据: 大文件表空间:用于存储大型数据(例如LOB) 非标准数据块表空间:用于在一个数据库实例中创建数据块大小不同的表空间: 撤销表空间:用于存储事务的撤销数据,在数据恢复时使用. 二.创建表空间 语法: CREATE [ TEMPORARY | UNDO ] TABLESPACE tab

嵌入式菜鸟算法②---顺序表操作

主要内容:顺序表插入.删除 #include <stdio.h> #include <stdlib.h> #define MAXSIZE 1024 typedef int datatype; typedef struct { datatype data[MAXSIZE]; int last; // subscript of linear list's last node,i.e. length is n = last + 1 }sequenlist; /* linear list

hive学习笔记-表操作

Hive数据类型 基本数据类型 tinyint,smallint,int,biging,float,double,decimal,char,varchar,string,binary,boolean,timestamp,date, 引用数据类型 Array:同样数据类型组合的数组,使用array[1]訪问 MAP:Key-value键值对,通过键进行訪问,使用map['key']訪问 STRUCT:结构体类型,用来存储不同数据类型的数据,是用struct.key訪问 类型不区分大写和小写 Hiv