类(对象)与表(记录)的关系:
创建表。基本语法:
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...