当前位置:首页 > oracle第2讲笔记2
■ 类(对象)与表(记录)的关系图
■创建表 基本语法
create table 表名( 列名 列的数据类型, ... )
举例说明
创建一张用户表
create table users( id number,
name varchar2(32), password varchar2(32), birthday date);
■ oracle的数据类型 ① char(size)
存放字符串,最大2000个字符,是定长。 举例说明
create table test1(name char(32)); 这样,在name这列,最多只能存放32个字符,如果超过,就报错,如果不够’abc’,则用空格补全。
insert into test1 values(‘abc’);
create table test2(name char(4000)); ② varchar2(size)
变长,最大存放4000个字符 举例说明
特别说明:如果我们的数据的长度是固定的,比如商品编号(8位),则应当使用char来存放,因为这样存放速度快,如果存放的数据长度是变化的,则使用varchar2
③ nchar(size) 1. 定长
2. 编码方式unicode 举例说明
create table test4(name nchar(2));
insert into test4 values(‘中国’);//ok create table test5 (name char(2));
insert into test5 values(‘中国’);//报错
说明:一个汉字,占用nchar的一个字符空间,一个汉字,占用char的两个字符空间
3. 最大字符长度2000 ④ nvarchar2(size) 1. 变长
2. unicode编码
3. 最大字符长度4000
⑤ clob(charater large object)字符型大数据对象 1. 变长 2. 8Tb
⑥ blob(binary large object)二进制大数据对象 1. 变长 2. 最大8tb
特别说明:我们在实际开发中很少把视频,图像文件存放数据库(效率问题),实际上存放记录文件的一个路径(本地或url),然后通过io/网络来操作 如果我们要求对文件安全性,可以考虑存放数据库。 ⑦ number
NUMBER[(precision [, scale])] NUMBER(p,s)
范围: 1 <= p <=38, -84 <= s <= 127
保存数据范围:1.0e-130 <= number value < 1.0e+126 (正区间) 科学计数法:1.0*10的-130
-1.0e+126 特别说明:如果在实际开发中,我们明确要求保留到小数点几位,则明确指定,如果没有,可以直接使用number ⑧date日期类型 1. 用于表示日期(年/月/日 时/分/秒) 2. 案例: create table test _1 (birthday date); insert into test_1 values('23-9月-2013'); 添加时候,使用默认格式(dd-mm-yyyy) oracle日期的默认格式dd-mm-yyyy,如果我们希望使用自己习惯的日期格式,也可以,需要借助oracle函数 ⑧ timestamp 和date的主要区别,当更新数据时,timestamp类型自动更新为当前时间。 建表的综合案例 字段 字段类型 Id name sex brithday fellowship resume 整形 字符型 字符型 日期型 小数型 大文本型 create table students( Id number, name varchar2(64); sex char(2), birthday date, fellowship number(10,2), resume clob); ■ 表的管理---修改表 //添加一个字段 //修改字段类型 //删除一个字段 ■ SELECT查询语句 查询过程我们使用三张表 第一张表 EMPNO:雇员编号 ENAME:名字 JOB:职位 MGR:上级编号 HIREDATE:入职日期 SAL:薪水 COMM:奖金 DEPTNO:部门编号 DEPTNO:部门编号 DNAME:部门名 LOC:地点 GRADE:工资级别 LOSAL:最低工资 HISAL:最高工资 基本语法: SELECT [DISTINCT] *|{列名1,列名2...} FROM 表名 [WHERE {条件}] ? SELECT 指定查询哪些列的数据。 ? COLUMN指定列名。 ? *号代表查询所有列。 ? FROM指定查询哪张表。 ? WHERE是条件 ? DISTINCT可选,指显示结果时,是否剔除重复数据 SELECT * FROM 表名 SELECT 列名1,列名2 FROM 表名 规定:尽可能返回较少的列,不要轻易使用* 如何取消重复行? select distinct deptno,job from emp order by deptno;
共分享92篇相关文档