oracle的语法及其案例
Oracle是一个面向Internet计算环境的数据库。它是在数据库领域一直处于领先地位的Oracle(即甲骨文公司)的产品。可以说Oracle 关系数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、可靠性好的 适应高吞吐量的数据库解决方案。
言归正传 进入主题:
创建表空间
Create TABLESPACE JAVA_158
datafile 'ytzl_data'
size 100M;
创建用户
create user yuntu
identified by root
default tablespace java_158
赋予用户权限
–connect:临时用户
–resource:可靠的正式用户
–DBA:管理员
grant connect,resource to yuntu;
数据类型
char类型:存储固定字符长度(占空间,速度快)
nvarchar2类型:可变字符长度(节省空间,速度慢) number类型:数值类型
date:时间类型:(年月日)
timestamp:时间类型(年月日时分秒)
LOB(大数据类型)
BLOB:存储二进制的音频视频图片文件
CLOB:存储大型的字符文件
序列
Oracle没有自动增长
借助一个‘变量’,变量会自动增加,调用此变量即可
start with 从几开始
MINVALUE 0
INCREMENT BY 1;
删除序列
DROP SEQUENCE sq_s_id
使用序列
序列名.nextval调用下一个数据,永远不会撤回 --(不管当前的sql语句是否添加成功,序列都会增加)
–如何把序列初始化,让它从0开始 (搜一下)
INSERT INTO student(s_id,s_sex,s_name) values(sq_s_id.nextval,'男','小王');
约束设置
alter table 表名 add constraint
约束名 Primary key(需要设置的约束名)
alter table student
add constraint pk_stuno
Primary key(stuno)
约束删除
alter table student
drop constraint pk_stuno
检查约束
将字符串类型转换为时间格式再和生日对比
alter table student
add constraint ck_BornDate
check(Borndate>to_date('2005-01-05','yyyy-MM-dd'));
--默认约束
alter table student
add constraint my_Sex
modify(sex default '男');
–删除外键约束
ALTER TABLE student DROP CONSTRAINT fk_GradeID;
IN查询
select * from student where phone in(10086,1008611,1008622);
--查询男同学总人数大于2 的年级
--where 和having的区别
--where:分组钱的筛选
--having:分组后的筛选
select gradeid,count(1) from student
where sex='男' group by gradeid having count(1)>2;
--分组查询 group by
select * from student
--按照性别分组,查出每个性别的人数
--select查询的字段,只能是被分组的列,或表达式如聚合函数
select count(1),sex from student group by sex;
查询男同学总人数大于2 的年级
–where 和having的区别
–where:分组钱的筛选
–having:分组后的筛选
select gradeid,count(1)