一、表名和别名的命名规则
👉必须以字母开头;
👉长度不可超过30字符;
👉不能使用Oracle的保留字;
👉只能使用如下字符 A-Z,a-z,0-9,$,#等。
二、Oracle数据类型
👉字符型:
char 定长 最大2000字符
效率高,但空间占用浪费。
例子:char(10)'小韩'前四个字符'放'小韩' ,后添加6个空格补全。
varchar2(20) 变长 最大4000字符
效率低,但可节省空间
例子:varchar2(10) '小韩' ,oracle分配四个字符。
clob(character large object) 字符型大对象 最大4G
👉数字型:
number 范围 -10的-38次方~10的38次方 可以表示整数,也可以表示小数
number(5,2) 范围:-999.99~999.99 表示一个小数有5位有效数,2位小数
number(5) 范围 :-99999~99999 表示一个5位整数
👉日期类型:
date :包含年月日和时分秒 。oracle 默认格式是:1-1月-1999。
timestamp :这是 oracle 对 date 数据类型的扩展,可以精确到毫秒。
blob:二进制数据,可以存放图片/声音 4G 一般来讲,在真实项目中是不会把图片和声音真的往数据库里存放。一般存放图片/视频的路径,如果安全需要比较高的话,则放入数据库里。
三、表操作
- 建表
--建表格式
create table 表名(
参数1 数据类型,
参数2 数据类型,
……
参数N 数据类型
);
实例:学生表 student
create table student( --student为表名
xh number(4), --学号
xm varchar2(20), --姓名
sex char(2), --性别
birthday date, --生日
sal number(7,2) --奖学金
);
- 添加一个字段
alter table 表名 add (参数 数据类型);
实例
alter table student add (pno number(4));
- 修改字段的类型/名字(必须是空表,无数据)
alter table 表名 modify (参数 数据类型);
- 删除一个字段
alter table 表名 drop column 参数;
- 修改表名
rename 原表名 to 新表名;
- 删除表
drop table 表名;
- 插入所有字段
insert into 表名 values(参数1,'参数2'……'DD-MON-YY');
注意:
Oracle 中默认的日期格式是 'DD-MON-YY'
其中,DD 代表:日子(天)
MON 代表:月份
YY 代表:年
若要改成日期的默认格式可以用:
alter session set nls_date_format = 'yyyy-mm-dd';
- 插入部分字段和插入 null 值
insert into 表名 (参数1,参数2,参数3,参数4) values('参数1的值','参数2的值','参数3的值',null);
- 查询某个字段为空的数据
select * from 表名 where 参数n is null;
- 查询某个字段不为空的数据
select * from 表名 where 参数n is not null;
- 修改一个字段
update 表名 set 参数1=参数1/2 where 参数2='参数2值'; --将参数2的所有的参数1的值缩小两倍
- 修改多个字段
update 表名 set 参数1='参数1的值',参数2='参数2的值' where 参数3='参数3的值'; --将参数3的参数1和参数2修改
- 修改含有 Null 值得数据
update 表名 set 参数1='参数1的值' where 参数2 is null;
- 删除表里所有数据
delete from 表名; /*删除所有记录,但表结构还存在,写日志是可恢复的,但是速度慢*/
- 用 delete 删除数据,写日志恢复命令。(回滚)
savepoint 保存点; --设置保存点
delete from 表名; --删除之前需要先保存。然后再删除
rollback to 保存点; --回滚到原先保存的保存点的位置
- 删除表的结构和数据
drop table 表名;
- 删除一条数据
delete from 表名 where 参数1='参数1的值';
- 删除表中所有数据,但表结构还在,不写日志,无法恢复,速度快
truncate table 表名;