当前位置: 首页 > news >正文

五、oracle 表的管理

一、表名和列名的命名规则
1)、必须以字母开头
2)、长度不能超过30个字符
3)、不能使用oracle的保留字
4)、只能使用如下字符 a-z,a-z,0-9,$,#等

 

二、数据类型
1)、字符类
char 长度固定,最多容纳2000个字符。
例子:char(10) ‘小韩’前四个字符放‘小韩’,后添6个空格补全,如‘小韩      ’
varchar2(20) 长度可变,最多容纳4000个字符。
例子:varchar2(10) ‘小韩’ oracle分配四个字符。这样可以节省空间。
clob(character large object) 字符型大对象,最多容纳4g
char 查询的速度极快浪费空间,适合查询比较频繁的数据字段。
varchar 节省空间
2)、数字型
number范围-10的38次方到10的38次方,可以表示整数,也可以表示小数
number(5,2)表示一位小数有5位有效数,2位小数;范围:-999.99 到999.99
number(5)表示一个5位整数;范围99999到-99999
3)、日期类型
date 包含年月日和时分秒 oracle默认格式1-1月-1999
timestamp 这是oracle9i对date数据类型的扩展。可以精确到毫秒。
4)、图片
blob 二进制数据,可以存放图片/声音4g;一般来讲,在真实项目中是不会把图片和声音真的往数据库里存放,一般存放图片、视频的路径,如果安全需要比较高的话,则放入数据库。

 

三、怎样创建表

--创建表
--学生表
create table student (
   xh number(4), --学号
   xm varchar2(20), --姓名
   sex char(2), --性别
   birthday date, --出生日期
   sal number(7,2) --奖学金
);

--班级表
create table class(
  classid number(2),
  cname varchar2(40)
);

      

--修改表
--添加一个字段
sql>alter table student add (classid number(2));
--修改一个字段的长度
sql>alter table student modify (xm varchar2(30));
--修改字段的类型或是名字(不能有数据) 不建议做
sql>alter table student modify (xm char(30));
--删除一个字段 不建议做(删了之后,顺序就变了。加就没问题,应该是加在后面)
sql>alter table student drop column sal;
--修改表的名字 很少有这种需求
sql>rename student to stu;

         
--删除表
sql>drop table student;

           

--添加数据
--所有字段都插入数据
insert into student values ('a001', '张三', '男', '01-5 月-05', 10);
--oracle中默认的日期格式‘dd-mon-yy’ dd 天 mon 月份 yy 2位的年 ‘09-6 月-99’ 1999年6月9日
--修改日期的默认格式(临时修改,数据库重启后仍为默认;如要修改需要修改注册表)
alter session set nls_date_format ='yyyy-mm-dd';
--修改后,可以用我们熟悉的格式添加日期类型:
insert into student values ('a002', 'mike', '男', '1905-05-06', 10);
--插入部分字段
insert into student(xh, xm, sex) values ('a003', 'john', '女');
--插入空值
insert into student(xh, xm, sex, birthday) values ('a004', 'martin', '男', null);
--问题来了,如果你要查询student表里birthday为null的记录,怎么写sql呢?
--错误写法:select * from student where birthday = null;
--正确写法:select * from student where birthday is null;
--如果要查询birthday不为null,则应该这样写:
select * from student where birthday is not null;

         

--修改数据
--修改一个字段
update student set sex = '女' where xh = 'a001';
--修改多个字段
update student set sex = '男', birthday = '1984-04-01' where xh = 'a001';
--修改含有null值的数据
不要用 = null 而是用 is null;
select * from student where birthday is null;

        

--删除数据
delete from student; --删除所有记录,表结构还在,写日志,可以恢复的,速度慢。
--delete的数据可以恢复。
savepoint a; --创建保存点
delete from student;
rollback to a; --恢复到保存点
一个有经验的dba,在确保完成无误的情况下要定期创建还原点。

drop table student; --删除表的结构和数据;
delete from student where xh = 'a001'; --删除一条记录;
truncate table student; --删除表中的所有记录,表结构还在,不写日志,无法找回删除的记录,速度快。

       

--------------------------------------------------------------------------
Blog:http://www.cnblogs.com/linjiqin/
J2EE、Android、Linux、Oracle QQ交流群:142463980、158560018(满)

题外话:
本人来自铁观音的发源地——泉州安溪,正宗安溪铁观音,有需要的友友欢迎加我Q:416501600。
茶叶淘宝店:http://shop61968332.taobao.com/

相关文章:

  • 花了500学的seo课程教程笔记公布
  • 张清:当你把写博客当做一种习惯的时候
  • 一个简陋的web站点文档安全访问
  • Websphere Application Server 6.1安装配置(二)
  • Centos 5.5 i386 配置postfix+courier-imap+maildrop+courier-authlib+extmail+extman+spamassassin组合...
  • 由浅入深CIL系列【目录索引】+ PostSharp AOP编程【目录索引】
  • Cacti+Nagios完全攻略(二)整合cacti与nagios安装部署
  • 一些上流的CSS3图片样式
  • .NET Framework与.NET Framework SDK有什么不同?
  • 网络知识整理(2)
  • ASP.Net编译设置
  • 下载外挂后,网络变的非常慢等症状
  • php生成 utf-8 编码文件
  • 基本的圆角框
  • 两分钟解决程序员的疲劳(图)求顶起!!!
  • 【JavaScript】通过闭包创建具有私有属性的实例对象
  • 【译】React性能工程(下) -- 深入研究React性能调试
  • 11111111
  • 30天自制操作系统-2
  • Bytom交易说明(账户管理模式)
  • Docker 笔记(2):Dockerfile
  • go append函数以及写入
  • HashMap ConcurrentHashMap
  • Invalidate和postInvalidate的区别
  • Mac转Windows的拯救指南
  • Python_OOP
  • Vue ES6 Jade Scss Webpack Gulp
  • 从tcpdump抓包看TCP/IP协议
  • 检测对象或数组
  • 日剧·日综资源集合(建议收藏)
  • 线上 python http server profile 实践
  • 选择阿里云数据库HBase版十大理由
  • ​软考-高级-信息系统项目管理师教程 第四版【第14章-项目沟通管理-思维导图】​
  • #LLM入门|Prompt#3.3_存储_Memory
  • (done) 两个矩阵 “相似” 是什么意思?
  • (附源码)ssm智慧社区管理系统 毕业设计 101635
  • (企业 / 公司项目)前端使用pingyin-pro将汉字转成拼音
  • (转)Java socket中关闭IO流后,发生什么事?(以关闭输出流为例) .
  • (转)JAVA中的堆栈
  • (转载)hibernate缓存
  • .bat批处理(五):遍历指定目录下资源文件并更新
  • .class文件转换.java_从一个class文件深入理解Java字节码结构
  • .Net 中Partitioner static与dynamic的性能对比
  • .NET正则基础之——正则委托
  • ::
  • @Not - Empty-Null-Blank
  • [2021]Zookeeper getAcl命令未授权访问漏洞概述与解决
  • [BUG] Hadoop-3.3.4集群yarn管理页面子队列不显示任务
  • [Jenkins] Docker 安装Jenkins及迁移流程
  • [Kubernetes]9. K8s ingress讲解借助ingress配置http,https访问k8s集群应用
  • [Linux] Apache的配置与运用
  • [Linux] Ubuntu install Miniconda
  • [NCTF 2022] web题解
  • [NSSCTF]-Web:[SWPUCTF 2021 新生赛]easyrce解析
  • [Oh My C++ Diary]\t \n \r的用法