oracle数据库学习笔记(二)

本文介绍了Oracle数据库中的各种数据类型,如CHAR、VARCHAR2、NUMBER等,并详细解释了每种类型的特性和使用场景。此外,还讲解了日期和时间戳类型的处理方法,以及常见的表约束类型,包括非空、唯一、主键、外键和检查约束。
oracle数据库的常见数据类型
oracle全部数据类型 有 26种


char 
定长字符串类型 长度是固定不变  no char(10) 如果存入的值 不足十个字符,其它位也被占用
默认长度是1 即一个字符  最大长度:2000个字符
占用的空间较多,但是查询效率较高


varchar2
变长字符串类型  长度可变  例如:定义的长度是100个字节,存入的值是80个字节,那么实际占用就是80个字节
varchar在oracle中不推荐使用,强烈推荐你使用varchar2
必须要为其指定长度  1-4000个字节   所以就需要考虑编码问题
oracle使用gbk编码 一个中文占2个字节 英文\数字占一个字节
占用的空间较少,但是查询的效率较低


number
数字类型  number(all_len,point_len)
第一个参数:整个数字的位数
第二个参数:以小数点为参照 右边为整数,左边为负数 0 就是没有小数位
Actual Data   Specified As Stored As
----------------------------------------
123.89           NUMBER        123.89
123.89           NUMBER(3)     124
123.89           NUMBER(6,2)   123.89
123.89           NUMBER(6,1)   123.9
123.89           NUMBER(4,2)   exceeds precision (有效位为5, 5 > 4)  超出范围
123.89           NUMBER(6,-2) 100
.01234           NUMBER(4,5)   .01234 (有效位为4)
.00012           NUMBER(4,5)   .00012
.000127       NUMBER(4,5)   .00013
.0000012      NUMBER(2,7)   .0000012
.00000123     NUMBER(2,7)   .0000012


date
将数据存入数据库中,需要进行格式化存储的函数(方法)
默认格式:DD-MM-YY
select sysdate from dual ;
30-9月 -15
to_date('存入的值','存入的格式');  
2015-12-12 12:12:12  YYYY-MM-DD HH24:MI:SS
to_date('2015-12-12 12:12:12','YYYY-MM-DD HH24:MI:SS');
drop table test_date ;
create table test_date(name char(3) , test_time date default sysdate);
insert into test_date (name , test_time) values('xyz',to_date('2015-12-12 22:12:12','YYYY-MM-DD HH24:MI:SS'));


to_char();
select to_char(test_time,'YYYY-MM-DD HH24:MI:SS') tochar_time from test_date where name = 'xyz' ;




timestamp


clob 用来存储单字节字符型数据  适用于存储超长文本   例如:小说\博客


blob 用来存储二进制数据  存储视频\图像\音频




------------------------------------------------------------------------------
约束
创建表时使用约束
是强加在表上的规则和条件.确保数据库满足业务规则.可以保证数据的完整性
当对表进行DML或DDL操作时,如果此操作会造成表中的数据违反约束条件或规则时
系统就会拒绝执行这个操作.


定义约束时如果没有给定一个明确的约束名称,系统将会自动为该约束生成一个名字.
oracle强烈建议创建约束时要给约束起名称


约束的分类:


非空约束(NOT NULL)
约束字段(列)不能为NULL值


唯一约束(UNIQUE KEY)
在表中每一行中定义的这列或这些列的值都不能相同 即唯一性


主键约束(PRIMARY KEY)
唯一的标识表中的每一条数据(每一行记录) 不能为NULL 不能重复


外键约束(FOREIGN KEY)
用来维护从表和主表之间引用的完整性    (不推荐使用外键约束)


条件/检查约束(CHECK)
表中每一行该列都要满足该约束条件


命名规则:
约束名称简称_表名_列名
非空约束 NN_tablename_col1
唯一约束 Uk_tablename_col1
主键约束 PK_tablename_col1
外键约束 FK_tablename_col1
条件/检查约束 CK_tablename_col1




create table c_test(
id number(6),
name varchar2(30),
gender char ,
age number(3),
birthday date,
constraint PK_C_TEST_ID primary key(id)
);


-------------------------------------------------------------------
表结构操作
修改表名称
rename tt to ttt ;
添加表字段
alter table ttt add gender char default 'M' ;
表字段重命名
alter table tt rename column name to username ;
修改表字段
alter table ttt modify (name varchar2(50) default '老公在这里') ;


oracle函数
运算符:
算术运算符    + - * /
连接运算符 || 
比较运算符 > = >= < <= !=  like between and is null  in
任何值与null进行运算 都null




ascii('a');  根据字符返回编码值


chr(编码值);  返回对应的字符


concat(字段名1,字段名2)  连接两个字符串


initcap(字段名)  返回字符串并将字符串的第一个字母变大写


length(字段名)  返回字段值的长度


lower(字段名) 返回字符串的全部小写


upper(字段名) 返回字段值全部大写


select lower(initcap(username)) low , upper(username) up from tt ;


ltrim(字段名) 清除字段值左边的空字符串


rtrim(字段名) 清除字段值右边的空字符串


substr(原字符串,从第几个字符开始,截取多少个);


select substr('abcdefghijklmn',1,3) from dual ;


replace(原字符串,被替换的字符串,要替换的字符串);
select replace('He love rose !','He' , 'I') from dual ;


trim('要去掉的#字符#' from '目标字符串') 减掉两边的所有s字符
trim('s' from 'string)
select trim('s' from 'strings') from dual ;减掉两边的所有s字符
select trim(leading 's' from 'strings') from dual ; 减除前面所有的s字符
select trim(trailing 's' from 'strings') from dual ; 减除后面所有的的s字符




abc(数字字段名) 返回数字的绝对值
select abs(123) abs1 , abs(-1234) abs2 from dual ;


floor(字段名)  将小数转成为整数(不四舍五入)
select floor(1234.123) from dual 


ceil(字段名)  将小数转成整数(有小数就+1)


mod(被除数,除数)
select mod(10,3) m1 , mod(3,3) m2 , mod(1,3) m3 from dual ;


power(原数字,幂)
select power(2,3) from dual ;


round(字段名)  对小数进行四舍五入成整数
select round(55.5) from dual ;


trunc(字段名)  直接截取整数部分(不四舍五入)
select trunc(55.5) from dual ;




avg(字段名) 平均值
select avg(age) from tt ;


count(字段名或者*); 获取记录数 如果使用字段名,该字段一定不能有null值,否则忽略
select count(*) from tt ;


sum(字段名)  求和
select sum(age) from tt ;


min(字段名)


max(字段名)


to_number('1234')
select to_number('1234') from dual ;




-------------------------------------------------------------------


公司日报系统
1--每天的学习内容
2--工作内容
3--项目中遇到的问题




老板
按部门管理所有员工日报


经理
只能管理本级所属员工的日报


员工
只能管理自己的日报






用户及权限管理模块
用户角色  部门编号


日报收集模块












































































评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值