五、操作表

1、表分为行和列
约定:每行数据唯一性,每列数据同类性,每列列名唯一性。
2、数据类型
字符型 -- 固定长度的字符类型
字符类型:CHAR(n)(MAX n=2000)、NCHAR(MAX n=1000)
-- 可变长度的数据类型(节省空间随着数据的大小生成相应的数据)
VARCHAR2(MAX n=4000)、NVARCHAR2(MAX n=2000)
数值型(通常使用number类型):NUMBER(p,s):
p--有效数字,
s--小数点后的位数
如果s为正数,代表从小数点到最低有效数字的位数;
如果s为负数,代表从最大有效数字到小数点的位数(数值型通常采用NUMBER类型)
例子
number(5,2) 有效数字5位,保留2位小数,如:123.12
FLOAT :用于存储二进制类型1~126位
日期型
DATE 日期类型,表示范围为公元前4712年1月1日到公元9999年12月31日,可精确到秒(日期型通常采用DATE型)
TIMESTAMP 时间戳类型,可以精确到秒
其他型
BLOB 可以存放4GB的大文件,以二进制形式存放
CLOB 可以存放4GB的大文件,字符串存放的

3、管理表的操作
创建表:创建用户信息表
例子:
create table userinfo(
user_a_id number(6,0),
user_username varchar2(20),
user_pwd varchar2(20),
user_email varchar2(30),
user_regdate date
);
修改表:修改结构
1、添加字段
例子:
alter table userinfo add user_remarks varchar2(500);

2、更改字段数据类型(最好是表中没有数据的时候进行更改)
更改原有的数据
alter table userinfo modify user_remarks varchar2(400);
更改数据的类型
alter table userinfo modify user_pwd number(6,0);
3、删除字段
alter table userinfo drop column a;
4、修改字段名
alter table userinfo rename column user_username to user_a_username;
5、修改表名
rename userinfo to user_info;
删除表
删除表中的数据,不是删除表,但是速度快
truncate table table_name;
truncate table user_info;
删除表的结构,真实被删除了
drop table user_info;

查看表
desc table_name;
desc userinfo;

4、操作表中的数据
对表的内容进行操作

1、添加数据
insert into userinfo(user_a_id,user_username,user_pwd,user_email,user_regdate) values(1,'xiaobaitu','123456','xiaobaitu@163.com',sysdate);
全添加,可以省略userinfo后边的()
insert into userinfo values(1,'xiaobaitu','123456','xiaobaitu@163.com',sysdate);
不添加全部数据
insert into userinfo(user_a_id,user_username,user_regdate) values(1,'xiaobaitu',sysdate);

为字段添加默认值
创建表时,创建默认值
create table userinfo_a(
userinfo_a_id number(6,0),
userinfo_regdate date default sysdate
);

添加数据
insert into userinfo_a(userinfo_a_id) values(1);

修改表时,添加默认值
alter table userinfo modify user_email default '无';
如果没有添加,email为默认值:
insert into userinfo(user_a_id) values(3);

select user_a_id ,user_email from userinfo;
如果添加了,就会返回添加的值
insert into userinfo(user_a_id,user_email) values(4,'aa');
select user_a_id ,user_email from userinfo;

2、复制表数据
(1)在建表时复制
(a)复制表中的全部数据
create table userinfo_2 as select * from userinfo;
select * from userinfo_2;
desc userinfo_2;
(b)复制表中部分数据
create table userinfo_3 as select user_a_id from userinfo;
select * from userinfo_3;
desc userinfo_3;
(2)在添加数据时复制
(a)添加全部数据(复制的两个表必须结构相同)
create table user_new(
user_a_id number(6,0),
user_username varchar2(20),
user_pwd varchar2(20),
user_email varchar2(30),
user_regdate date
);
insert into user_new select * from userinfo;
(b)添加部分数据(添加时数据类型要相同)
insert into user_new(user_a_id,user_username) select user_a_id,user_username from userinfo;

3、修改数据(更新操作)
(1)无条件更新
update userinfo set user_pwd='111111';
(2)有条件更新
update userinfo set user_pwd='6666' where user_username='xiaobaitu';

4、删除数据(行删除,不能删除列)
创建一个实验用表
create table user_new2 as select * from userinfo;
(1)无条件删除
delete from userinfo_3; 等同于 truncate table userinfo_3;
(2)有条件删除
delete from user_new2 where user_username='xiaobaitu';

Oracle学习笔记(三)的更多相关文章

  1. Oracle学习笔记三 SQL命令

    SQL简介 SQL 支持下列类别的命令: 1.数据定义语言(DDL) 2.数据操纵语言(DML) 3.事务控制语言(TCL) 4.数据控制语言(DCL)  

  2. Oracle学习笔记三

    一.创建表空间 表空间是ORACLE数据库的逻辑单元.数据库--表空间 一个表空间可以与多个数据文件(物理结构)关联一个数据库下可以建立多个表空间,一个表空间可以建立多个用户个用户下可以建立多个表. ...

  3. oracle 学习笔记(三)

    1. SQL(基础查询) 1.1. 基本查询语句 1.1.1. FROM子句 SQL查询语句的语法如下:   SELECT <*, column [alias], -> FROM tabl ...

  4. oracle学习笔记第一天

    oracle学习笔记第一天 --oracle学习的第一天 --一.几个基础的关键字   1.select select (挑选) 挑选出显示的--列--(可以多列,用“,”隔开,*表示所有列),为一条 ...

  5. Oracle学习笔记—数据字典和常用命令(转载)

    转载自: oracle常用数据字典和SQL语句总结 Oracle常用命令大全(很有用,做笔记) 一.Oracle数据字典 数据字典是Oracle存放有关数据库信息的地方,其用途是用来描述数据的.比如一 ...

  6. [Firefly引擎][学习笔记三][已完结]所需模块封装

    原地址:http://www.9miao.com/question-15-54671.html 学习笔记一传送门学习笔记二传送门 学习笔记三导读:        笔记三主要就是各个模块的封装了,这里贴 ...

  7. JSP学习笔记(三):简单的Tomcat Web服务器

    注意:每次对Tomcat配置文件进行修改后,必须重启Tomcat 在E盘的DATA文件夹中创建TomcatDemo文件夹,并将Tomcat安装路径下的webapps/ROOT中的WEB-INF文件夹复 ...

  8. java之jvm学习笔记三(Class文件检验器)

    java之jvm学习笔记三(Class文件检验器) 前面的学习我们知道了class文件被类装载器所装载,但是在装载class文件之前或之后,class文件实际上还需要被校验,这就是今天的学习主题,cl ...

  9. VSTO学习笔记(三) 开发Office 2010 64位COM加载项

    原文:VSTO学习笔记(三) 开发Office 2010 64位COM加载项 一.加载项简介 Office提供了多种用于扩展Office应用程序功能的模式,常见的有: 1.Office 自动化程序(A ...

随机推荐

  1. 使用_beginThreadex创建多线程(C语言版多线程)

    _beginThreadex创建多线程解读 一.需要的头文件支持 #include <process.h>         // for _beginthread() 需要的设置:Proj ...

  2. Linux环境安装jdk10

    一. 下载jdk 下载方式一:直接在linux上下载 wget --no-check-certificate --no-cookies --header "Cookie: oraclelic ...

  3. 启动zookeeper时,jps显示有进程,但是status查看状态时就Error contacting service. It is probably not running

    转自:http://www.cnblogs.com/xiaohua92/p/5460515.html#undefined 安装zookeeper时候,可以查看进程启动,但是状态显示报错:Error c ...

  4. 20181123_控制反转(IOC)和依赖注入(DI)

    一.   控制反转和依赖注入: 控制反转的前提, 是依赖倒置原则, 系统架构时,高层模块不应该依赖于低层模块,二者通过抽象来依赖 (依赖抽象,而不是细节) 如果要想做到控制反转(IOC), 就必须要使 ...

  5. C++11新特性介绍 01

    阅读目录 1. 概述 2. long long 类型 3. 列表初始化 4. nullptr 空指针 5. constexpr变量 6. constexpr函数 7. using类型别名 8. aut ...

  6. setAttribute第三个参数

    object.setAttribute(sName, vValue [, iFlags]) sName参数应是Dom属性而非html中的属性.Dom中Html专有的接口属性应该以小写字母开头,如果属性 ...

  7. 接口自动化(五)--打印log到文档

    这一部分实现比较简单,直接上代码: import logging class Logger(): def __init__(self,content,*raw): self.content = con ...

  8. 好记性不如烂笔头--linux学习笔记9练手写个shell脚本

    #!/bin/bash #auto make install httpd #by authors baker95935 #httpd define path variable H_FILES=http ...

  9. MyEclipse 生成APK文件

    MyEclipse 生成APK文件 Android Tools>Export  Signed  Application Packages. http://jingyan.baidu.com/ar ...

  10. 在eclipse中的maven工程中执行maven命令的步骤

    执行maven命令的步骤: 1.找到maven工程的pom.xml文件,点中右键 2.在弹出的对话框中选择run as 3.在弹出的对话框中输入compile 再执行即可