oracle数据库逐步学习总结【基础二】

Wesley13
• 阅读 604

原创作品,转载请在文字开头明显位置注明出处:https://www.cnblogs.com/sunshine5683/p/10067872.html

接着上一篇,继续总结!

五、oracle表管理

首先,在开头说一下sys用户和system用户的区别:sys用户是超级管理员,权限最大,system是系统管理员,权限次之,一般在管理系统时使用system足以。

1、命名规则:

1> 表名必须以字母开头

2> 长度不能超过30字符

3> 不能使用oracle的保留字

4>只能使用A-Z、a-z、0-9、$、#等

2、数据类型:

char:固定大小,占内存,比如char(10)中存放两个字符,那么其余的8个字符就用空字符占用,也在占内存

varchar2:可变大小,占空间小,查询速度相对char慢,比如存放两个字符,其余的位置不占用,也就是只要不超过定义的范围,实际用多少占多少,最大4000个字符

number:可以表示小数,也可以表示整数,大小在-10的38次方到10的38次方

number(3,2):表示一个数有3位有效数字,其中小数位占两位,即-9.99----9.99

number(5):表示一个五位整数,即-99999---99999

date:时分秒

blob:二进制数据,可以存放图片、声音,最大4G

3、建表

新建一张表,语句:

oracle数据库逐步学习总结【基础二】

给一个表增加一个字段

oracle数据库逐步学习总结【基础二】

修改字段的长度:

alter table student modify(xm varchar2(30));

删除一个字段:

alter table student drop column sal;   该操作风险,注意慎用

修改表名字

rename student to stu;

删除表

drop table student;

查询表;

select * from student;

添加数据:

insert into student values('A001','黎明','男','01-05月-2018','3.03',12); 注意日期格式,默认日月年

修改日期默认格式:

alter session set nls_date_format='yyyy-mm-dd';

这时候insert into student values('A001','黎明','男','01-05月-2018','3.03',12); 语句就会报错,必须改为

insert into student values('A001','黎明','男','2018-05-01','3.03',12); 

插入部分字段:

insert into student (xh,xm,sex) values ('A002','jonn','男')

插入空值:

insert into student (xh,xm,sex,birthday) values('A003','marry','男',null);

此时要查询出生日期为null的字段:

select * from student where birthday is null;

查询出生日期不为空的字段:

select * from student where birthday is not null;

修改字段值

update student set sal = sal/2 where sex='男';

修改多字段:

update student set sal=sal/2,classId=4 where sex='男';

删除数据

delete from student ;  //删除了所有的记录,表结构保存,进行了写日志,可以快速回复

恢复:在删除之前创建回滚点:savepoint xx;

然后删除数据

然后:rollback回滚,数据恢复完成,但是再删除后还未commit的时候起作用,一旦commit了,就无效了,如下过程

oracle数据库逐步学习总结【基础二】

oracle数据库逐步学习总结【基础二】

删除表的结果和数据:

drop table student

删除表中的所有记录,表结构还在,不写日志,无法找回(速度快):

truncate table student  

 六、oracle的表查询(下次继续总结....)

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
待兔 待兔
4个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Jacquelyn38 Jacquelyn38
3年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Stella981 Stella981
3年前
KVM调整cpu和内存
一.修改kvm虚拟机的配置1、virsheditcentos7找到“memory”和“vcpu”标签,将<namecentos7</name<uuid2220a6d1a36a4fbb8523e078b3dfe795</uuid
Easter79 Easter79
3年前
Twitter的分布式自增ID算法snowflake (Java版)
概述分布式系统中,有一些需要使用全局唯一ID的场景,这种时候为了防止ID冲突可以使用36位的UUID,但是UUID有一些缺点,首先他相对比较长,另外UUID一般是无序的。有些时候我们希望能使用一种简单一些的ID,并且希望ID能够按照时间有序生成。而twitter的snowflake解决了这种需求,最初Twitter把存储系统从MySQL迁移
Wesley13 Wesley13
3年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Stella981 Stella981
3年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
10个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这