ORACLE笔记

发布 2021-05-11 22:56:28 阅读 8116

类(对象)与表(记录)的关系:

创建表。基本语法:

create table table_name(

列名列的数据类型,举例说明:创建一张用户表:

create table users(

id number,name varchar2(32),password varchar2(32),birthday date

oracle数据类型详解:

1)、char(size):存放字符串,最大定长符。

举例说明什么是定长:create table test1(name char(32));

这样,在name 这列,最多只能放入32个字符,如果超过就报错,如果不够,则用空格补全。

2)、varchar2(size):变长,最大可以存放4000个字符。

举例说明:create table test2(name varchar2(16));

比如存放了‘ydd’字符串,实际在数据库中,就只存放‘abc’,还有13个字符空间就被**了。

特别说明:如果我们的数据长度是固定的,比如商品编号(8位固定的),则应当使用char 来存放,因为这样存取的速度快。如果存放的数据的长度是变化的,则使用varchar2.。

3)、nchar(size):定长,编码方式是unicode方式,最大字符数是2000个。

create table test3( name nchar(2));

说明:一个汉字占用nchar 的一个字符空间,而一个汉字占用 char 的两个字符空间。主要是因为编码方式不一样。

4)、nvarchar2(size):变长,编码方式 unicode ,最大字符数是4000。

5)、clob 字符型大对象:变长, 最大 8tb

6)、blob 字符型大对象:变长,最大 8tb

特别说明:我们在实际开发中很少把文件存放到数据库中(取文件时效率不高);实际上我们在数据库中只是存放一个文件的路径。然后通过io加网络来操作。

如果我们要求对文件的安全性较高,可以考虑放入数据库中。

7)、number :是变长的。

有效位:从左到右,第一个非零的数开始算,才是有效位。

原则:如果在实际开发过程中,我们有明确的要求,保留到第几位,则明确指定,如果没有就可以直接使用number 即可。

8)、date 日期类型:用于表示时间,(年/月/日/时/分/秒)

添加的时候,使用默认格式。

oracle 日期的默认格式是:‘dd-mm-yyyy’,如果我们希望自己喜欢的格式添加,但是需要借助oracle 的函数。

建表的综合案例:

建立学生表:

sql> create table students(id number,name varchar2(64),sex char(2),bitthday date,fellowship number(10,2),resume clob);

建立班级表。

sql> create table class_(id number,name varchar2(32));

对表的管理-修改表:

添加一个新的字段:

alter table 表名 add (新的列名列的数据类型);

修改字段的类型。

alter table 表名 modify (列名列的数据类型);

删除一个字段。

alter table 表名 drop column 列名;

给表改名字。

rename 旧表的名字 to 新表的名字;

oracle 的crud 操作:

crud 操作就是 c:create ,r:retrieve/read, u:update , d:delete.

insert 增加操作:

1、插入的数据类型必须与字段的数据类型一致;

2、数据的大小应该在列的规定范围之内;

3、在values 中列出的数据位置必须与被加入的列位置一致;

4、如果是字符或日期数据类型必须包含在单引号内;

5、插入空值,不指定或者insert into table values(null);

6、如果给表的每列都添加值,则可以不带列名,但是如果添加部分字段值,则必须添加列名。

向stu 表中添加数据:

update 操作:

基本语法:update 表名 set 列名=表达式 [列名=表达式,。。where 条件;

使用注意事项,请看幻灯片。

delete 语句的使用:

基本语法:delete from 表名 where 条件;

注意事项:如果不带where 子句,则对所有数据操作;

delete 语句不能删除一列的值,如果要删除某列的值,则使用update 语句将之置空;

同insert 和 update 语句一样,从一个表中删除记录将引起其他表的参照完整性问题,在修改数据库数据时,头脑中应该始终不要忘记这个潜在的问题。

删除数据的两种方式:

delete from 表名;

truncate table 表名;速度快,但不可回滚;

查询语句(select 语句):

查询过程使用的三张表:

基本语法:select [distinct] *from 表名 [where ];

select sal,job,deptno from emp where ename='smith';

注意:oracle 数据库的sql 语句是不区分大小写的,但是查询的内容是区分大小写的。

oracle 查询中使用算术表达式:

举例说明:特别说明:

一个面试题:我们希望删除用户,同时保留该用户的数据对象,怎么处理?

1)、锁定用户:alter user 用户名 account lock;

2)、这时该用户不能登录到数据库,但system 用户依然可以使用它的数据对象;

3)、解锁用户:alter user 用户名 account unlock;

where 子句的用法:

举例说明:使用 like 查询(模糊查询):

:表示零到多个字符; _表示单个字符;

oracle 中使用逻辑运算符号:

order by 子句:主要的用处是对结果进行排序显示。

使用列的别名来排序:oracle 支持使用别名来排序。

oracle笔记

1 查看表的结构 desc tabledescription 2 set timing on 打开操作表的时间记录。3 消除重复行 distinct 4 大小写不区分的是列名,而不是里面的数据。1 可以对某一列直接进行加减乘除。两列相加。2 如果有一列为null,所得结果也为空。使用nvl函数处理n...

Oracle笔记

第1页1.oracle 的使用 1.1.sqlplus 的命令 初始化表的位置 set nls lang american 设置编码才可以使用下面脚本 cd oracle home rdbms cd demo 我们目前使用的是oralce 9i 9201 版本 select from v versi...

oracle笔记

clear 清屏。col title for a20 设置title的字符最多有20个。oracle介绍。rdbsrdb 基本的存储结构是,二维表。表头。行。列。字段。sql的分类 dsl 关键字 select dml 操作 insert delete update ddl 定义 create dr...