SQL学习

--SQL学习

create t_01 (id number,name varchar2(100));--建表

select * from t_01;

--表字段修改
alter table t_01 add test1 varchar2(100);--增加表字段
alter table t_01 modify test1 varchar2(200);--修改表字段名称
alter table t_01 drop column test1;--删除表字段

--表约束修改
alter table t_01 drop constraint SYS_C0011319;--删除约束
alter table t_01 add constraints t_01_pk_id primary key(id); --增加主键约束(主键约束,自带唯一约束)
alter table t_01 add constraints t_01_uq_name unique(name);--增加唯一约束
alter table t_01 add constraints t_01_ck_name check(length(name)<101 and name is not null);--增加校验约束

create table name(name varchar(100),age char(3));

alter table name rename to t_name; --修改表名

alter table t_name add constraints t_name_pk_id primary key(name);
--外键设置 级联删除
alter table t_01 add constraint t_01_fk_name foreign key(name) references t_name(name) on delete cascade; --添加外键约束

insert into t_name values('波波',28);
insert into t_01 values(1,'bill');
--汉字乱码处理

 select * from v$nls_parameters;--查看字符集
 -- export NLS_LANG=american_america.AL32UTF8 添加到OS oracle环境变量
 -- 添加到客服端OS 环境变量 NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK
 --增删改查

 --清空表
create table t_name_01 as select * from t_name;
truncate table t_name_01;
--去重
select distinct * from t_name;

--完整的sql语句
select t.name, t.age, count(*) count
  from t_name t
 where t.age < 50
   and t.age > 0
 group by t.name, t.age
 having count(*)<2 and count(*)>0
 order by t.name||t.age desc;
 
 --连接查询 内连接(等值连接、不等值连接)
   --自连接、
select t.name, t1.name, t.age, t1.age
  from t_name t, t_name t1
 where t.age = t1.age
   and t.name <> t1.name;

   --外连接 (左外连接、右外连接、全连接) 使用(+)必须有where子句,(+)放到非主表一方。
select * from t_01 t1, t_name t2 where t1.name = t2.name;
select * from t_01 t1, t_name t2 where t1.name(+) = t2.name;

  --内置函数
  --绝对值 abs(n)
  select t.age, abs(t.age) from t_name t;
  --求余 mod(n2,n1)
  select mod(t.age,t.age*0.77) from t_name t;
  --求正负数(1 正 -1 负 0 零)
  select sign(t.age) from t_name t;
  --四舍五入
  select t.age,round(t.age*0.777,2) from t_name t;
  --截取
  select t.age,trunc(t.age*0.777,2) from t_name t;
  --CHAR-->ASCII
  select ASCII('a'),ASCII('明') from dual;
  --ASCII-->CHAR
  select chr(97), chr(65),chr(50167) from dual;
  --获取字符串长度
  select t.name,length(t.name) from t_name t;
  --获取字节长度
  select t.name,vsize(t.name) from t_name t;
  --字符串截取
  select t.name,substr(t.name,1,1) from t_name t;
  --大小写
  select t.name,upper(t.name),lower(t.name) from t_name t;
  --替换
  select t.name,replace(t.name,'b','a') from t_name t;
  --系统时间
  select sysdate from dual;
  --时间戳
  select systimestamp from dual;
  --获取数据库时区
  select dbtimezone from dual;
  --日期函数
  select add_months(sysdate,1) from dual;
  select last_day(sysdate) from dual;
  select next_day(sysdate,'星期一')from dual;
  select sessiontimezone,current_date from dual;--回话所在时区及时间
  select months_between(sysdate-366,sysdate) from dual;
 
  --转换
  select asciistr('杨波') from dual;
  select bin_to_num(1,1,0,1,1,0,0,1) from dual;--二进制转十进制
  to_char
  to_date
  to_number
  nvl(n1,n2)--空值替换
  --集合函数
  select avg(t.age) from t_name t;
  select count(t.name) from t_name t;
  select max(t.age) from t_name t;
  select min(t.age) from t_name t;
 
  --其他
  select user from dual;
  select userenv('ISDBA') from dual;
  --匹配函数
  select decode(t.age,28,'ok','no') from t_name t;
  --年龄小于平均年龄
  select * from t_name t2 where t2.age<(select avg(t.age) from t_name t)
 
 
 
 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26364008/viewspace-2133233/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/26364008/viewspace-2133233/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值