目录
一主要数据类型,创建表格
- varchar -- 存放定長的字符数据,最长2000個字符;
- varchar2 -- 存放可变长字符数据,最大长度为4000字符。
- CLOB文本类型的数据
- BLOB一般用来存放除文本类型的数据
- 创建表格
-- 创建表格 create table person( pid number(20), pname varchar(10) );
二.修改表结构
- 1.添加一列
-- 增加一列 alter table person add gender number(1);
- 2.修改列类型
-- 修改表字段类型,char表示固定长度类型 alter table person modify gender char(1);
- 3.修改列名称
-- 修改列名称 alter table person rename column gender to sex;
- 4.删除一列
-- 删除一列 alter table person drop column sex;
5.注意:如果要修改多列需使用括号
-- 修改多列类型 alter table person modify (pid number(12),PNAME VARCHAR2(11)); --添加多列 alter table test add (pid int, PNAME int); --删除多列 alter table test drop (pid,PNAME);
三.数据的增删改
注意:脏数据产生情况
- 1.添加一条记录
-- 添加一条数据 insert into person(pid,pname) values(2,'张三'); -- 在java中connection事务是自动提交,此时并没有工具为我们自动提交 -- 如果不写提交,此时为脏数据 commit; -- 一般来说主键字段都是由序列自动生成的,不需要我们制定 -- 文章下方有序列的基本介绍
- 2.修改一条记录
-- 修改一条数据 update person set pname = '李四' where pid=1; commit;
- 3.删除操作
- A.删除全部记录
-- 删除表中全部记录,这表语句等同于一条一条记录删除 delete table person;
- B.删除表结构
-- 删除表结构 drop table person;
- C.先删除表结构,在创建表结构
-- 等同于删除表中全部记录 -- 数据量大的情况下,并且在表中带有索引的情况下,该操作效率其高。 -- 根据索引的特性,查询快,删除慢。 truncate table PERSON; -- 以上是正常情况 -- 不正常情况报错:ORA-00054: 资源正忙, 但指定以 NOWAIT 方式获取资源, 或者超时失效 -- 解决方法如下: select session_id from v$locked_object; -- 根据查询到的session_id获取sid SELECT sid, serial#, username, osuser FROM v$session where sid = 142; -- 根据查询到的sid和serial杀死服务 ALTER SYSTEM KILL SESSION '142,38'; --问题解决
四.序列的使用(主键赋值)
- 1.序列的基本介绍
-- 序列的基本使用和介绍 -- 序列主要用于id字段的自增长使用 -- 创建序列,该序列与数据表格无紧密的关系,只有逻辑关系 -- 所以只要看得出是该表格的序列即可 create sequence s_person; -- 以下为创建序列后产生的文件
- 2.查看序列方式
-- 序列不属于任何表格,但是可以和表格邦定。 -- 序列默认是从1开始,然后递增。 -- 可以通过以下方式查看序列 select s_person.nextval from dual; select s_person.currval from dual; --上面的使用顺序必须要正确,因为currval表示返回当前值,但是不使用nextval是没有值的 -- nextval从1开始递增 -- dual:虚表,只是为了补全语法而存在,比如上方语法根本没有要查询的表格,但是form字段必须要有。
- 如果先使用currval就会报错(我这是plsql乱码原因
- 3.完整的使用方式
-- 创建序列 create sequence s_person; -- 使用序列插入数据 insert into person(pid,pname) values(s_person.nextval,'王武'); -- 提交 commit;
4.创建序列其他扩展属性介绍
‘[]’中括号表示可选可不选
INCREMENT BY n:每次递增的数量,默认1
START WITH n:从哪个数量开始
MAXVALUE/MINVALUE n|NOMAXVALUE:最大值和最小值
CYCLE|NOCYCLE:表示递归的数据循环(这个基本不会用的,id就是为了保证唯一,不可以循环)
CACHE n|NOCACHE:缓存,设置的n表示会在递归到之前先缓存多少数值
五.scott用户介绍
- scott用户中数据不是很多也不是很复杂,但是可以模拟各种情况
- 1.解锁scott用户
-- 解锁scott用户 alter user scott account unlock; -- 修改scott用户密码(其他用户也可以使用该语句修改密码,但是权限要足够) alter user scott identified by tiger; -- 登陆scott用户