数据类型
字符型
char(2):没有数字时默认值为1,2表示初始化字符存储长度,如果存储字符长度不足,自动以空格代替,最大为2000
varchar2(10):字符,可变长度字符存储,设置最大存放10个字符,不足的自动缩放
long:字符(大文本)
数值型
number:于定义固定长度的数字,可以是整数,也可以是实数
number(5):表示最大五位数,最小一位数
number(5,2):表示最大五位整数,二位小数
日期型
date:表示时分秒
数据格式:yyyy-mm-dd , 2000-2-14
yyyy-mm-dd hh24:mi:ss , 2000-2-14 14:00:00
SQL语句的使用
-----sql语句默认不区分大小写
创建表
create:创建
create table T_STUDENT
(
id VARCHAR2(20) not null,
name VARCHAR2(20),
password VARCHAR2(20),
gender CHAR(1),
create_date DATE,
student_no VARCHAR2(20),
address VARCHAR2(200),
status CHAR(1),
age NUMBER(3),
weight NUMBER(3),
height NUMBER(3)
id_number number(50);--身份证号
);
操作表
drop table:移除表
drop table t_student;
alter table:添加、修改、删除字段
add:添加字段
alter table T_student add (birthday DATE);
rname column … to:修改字段
alter table T_student rename column gender to sex;--修改字段
drop column :移除字段
alter table T_student drop column create_date;
创建数据表约束
创建主键约束
给某个字段添加主键约束后,该字段既不能为0也不能重复,且一张表只能有一个主键
alter table t_student add constraint pk_student_id primary key(id);
创建检查约束
给某个字段添加检查约束后,该字段被取值范围限制或格式限制等
alter table t_studnt add constraint ck_student_age check(age>=1 and age<=100);
唯一约束
用于指定一个或多个列的组合值具有唯一性,以防止在列中输入重复的值
alter table t_student add constraint uq_student_id unique(id_number);
默认约束
给某个字段设置默认值,在插入和修改时不用程序操作即可获得设定值
alter table t_student Modify create_date default sysdate;
数据操纵与查询
insert 插入
insert into t_student(id,name,sex)values(2,'小明','1');
update … set … 修改
update t_student set name='小华' where id=2;
delete 删除
delete from t_student where id=2;
select 查找
select * from t_student; --查询表中所有数据
select id,name,sex from t_student where id=2; --查询id=2的指定行和所有列
查询语句可与其他语句结合使用,进行更复杂的操作
虚拟表
Oracle中的dual表是一个单行单列的虚拟表,查询需要表名,而时间日期并不存放在任何表中,dual常用于没有表的sql语句中
select sysdate from dual;
sysdate 为当前系统时间字段
获取年月日、时分秒
select extract (year from sysdate) from dual;//年
select extract (month from sysdate) from dual;//月
select extract (day from sysdate) from dual;//日
select extract (hour from systimestamp) from dual;//时
select extract (minute from systimestamp) from dual;//分
select extract (second from systimestamp) from dual;//秒
Oracle 函数
对实数的操作
ceil :向上取整,取大于这个值的最小整数
select ceil(23.2) from dual;
floor:向下取整,取小于这个值的最大整数
select floor(23.2) from dual;
abs:绝对值
select abs(-25) from dual;
power:n次方
select power(2,3) from dual;
字符串的操作
upper:字母大写
select upper('abcdedf') from dual;
lower:字母小写
select lower('ASSLKL') from dual;
initcap:首字母大写
select initcap('adsfdfd') from dual;
replace:替换
select replace('abcdef','b','流逼')from dual;
translate:翻译
select translate('dfsfwefesf','f','yyds') from dual;
decode:替换
select decode(2,1,'一',2,'二','数字') from dual;
nvl:null处理
select nvl(null,'空的')from dual;
|| :字符串拼接
select '年龄=' || t.age from t_student t
聚合函数
只有一种结果的函数
count:统计记录数
select count(t.id) from t_student t;
sum:列的值的总和
select sum(t.age) from t_student t;
max:最大值
select max(t.height) from t_student t;
min :最小值
select min(t.weight) from t_student t;
avg:平均值
select round(avg(o.chinese),2) from t_score o;