alert user scott account unlock;select ename||sal from emp; 字符连接符
select ename from emp where lower(ename)like'_a%';select ename,substr(ename,1,3)from emp;select chr(65)from dual;//把一个ASCII码转为一个字符select ascii('A')from dual;//求一个字符的ascii码值selectround(23.635,2)from dual;//四舍五入 到小数点后2位select to_char(sal,'$99,999.9999')from emp;select to_char(sysdate,'YYYY-MM-DD HH:MI:SS')from dual; 日期格式化
select ename,hiredate frm emp where hiredate >to_date('1981-2-20 12:34:56','YYYY-MM-DD HH24:MI:SS');select sal from emp where sal>to_number('$1,250.00','$9,999.99');select ename,sal*12+comm form emp;--含有空值 导致整个表达式为空值select ename,sal*12+nvl(comm,0)from emp;selectmax(sal)from emp;selectmin(sal)from emp;selectavg(sal)from emp;select to_char(avg(sal),'99999999.99')from emp;selectround(avg(sal),2)from emp;selectsum(sal)from emp;selectcount(*)from emp;selectcount(ename)from emp;--ename中不是空值的行数select deptno,avg(sal)from emp groupby deptno;select deptno,job,max(sal)from emp groupby deptno,job;--根据deptno和job进行分组selectavg(sal),deptno from emp groupby deptno havingavg(sal)>2000;--where -->group by -->having --->order byselectavg(sal)from emp where sal>1200groupby deptno havingavg(sal)>1500orderbyavg(sal)desc;-------------------------------------------------------------------------------------------------------------------------------------insertinto dept values(50,'game','beijing');createtable emp2 asselect*from emp;createtable dept2 asselect*from dept;createtable salgrade asselect*from salgrade2;insertinto dept2(deptno,dname)values(60,'game2');insertinto dept2 select*from dept;-------------------------------------------------------------------------------------------------------------------------------update emp2 set sal = sal*2,ename =ename||'-'where deptno =10;-------------------------------------------------------------------------------------------------------deletefrom emp2 where deptno <25;rollback;-------------------------------------------------------------------------------------------------------------------
事务 transaction rollback commit
当碰到create 或者 grant 会自动提交
--------------------------------------------------------------------------------------------------createtable stu (
id number(6),
name varchar2(20)constraint stu_name_nn notnull,--字段级约束
sex number(1),
age number(3),
sdate date,
grade number (2)default1,
class number(4),
email varchar2(50)unique,)desc stu;
约束
非空约束
唯一约束
主键约束
外键约束
当要求两个字段的组合不能重复 如name email
createtable stu (
id number(6)primarykey,--主键约束
name varchar2(20)constraint stu_name_nn notnull,
sex number(1),
age number(3),
sdate date,
grade number (2)default1,
class number(4),
email varchar2(50),constraint stu_name_email_uni unique(email,name)--表级约束--constraint stu_id_pk primary key(id))---------
外键约束
createtable class(
id number(4)primarykey,
name varchar2(20)notnull)createtable stu (
id number(6)primarykey,
name varchar2(20)constraint stu_name_nn notnull,
sex number(1),
age number(3),
sdate date,
grade number (2)default1,
class number(4)references class(id),--外键约束
email varchar2(50),constraint stu_name_email_uni unique(email,name)--constraint stu_class_fk foreign key(class) references class(id))----------------------------------------------------------------------------------------altertable stu add(addr varchar2(100));altertable stu drop(addr);altertable stu modify(addr varchar2(150));altertable stu dropconstraint stu_class_fk;altertable stu addconstraint stu_class_fk foreignkey(class)references class(id)droptable stu;---------------------------------------------------------------------------------------------------select table_name from user_tables;--当前用户所拥有的表select view_name from user_views;select constraint_name from user_constraints;desc dictionary;----------------------------------------------------------------------------------------------------------------
索引 读起来更快 插进去会慢一点
desc stu;createindex idx_stu_email on stu(email);dropindex idx_stu_email;select index_name from user_indexes;
当为表添加主键或者唯一约束 oracle会自动在此字段
视图
createview v$_stu asselect id,name,age from stu;----------------------------------------------------------------------------------------------------------
序列 sequence
createtable article (
id number,
title varchar2(1024),
cont long
);create sequence seq;select seq.nextval from dual;insertinto article values(seq.nextval,'a','b');drop sequence seq;