主要用于建立、修改、删除数据库对象(表),不需要事务的参与 CREATE:创建表 CREATE TABLE emp( id NUMBER(10), name VARCHAR2(20), gender CHAR(1), birth DATE, salary NUMBER(6,2) ); DESC :查询表结构 DESC emp; RENAME:重命名表名 RENAME emp TO employee; DROP:删除表 DROP TABLE emp; ALTER:列(字段)操作 ADD:增加字段 ALTER TABLE employee ADD (birth DATE DEFAULT sysdate); MODITY:修改字段 ALTER TABLE employee MODIFY (name VARCHAR2(40) DEFAULT 'CLERK' ); DROP:删除字段 ALTER TABLE employee DROP (birth);
用于对数据记录进行操作,包括插入,删除,修改,查询。前三者需要commit才能真正确认操作,如果需要撤销则rollback。
TIP:Sql语句错误时,输入edit修改,并用/提交修改后的语句
INSERT INTO:插入数据 INSERT INTO employee(id, name, salary) VALUES(1001, 'rose', 5500); UPDATE…SET..:更新数据 UPDATE employee SET salary = 8500 WHERE name = 'ROSE'; DELETE FROM:删除记录 DELETE FROM employee WHERE job is null;
注意,如果需要插入时间,需要使用时间格式化函数to_date()进行插入
insert into emp(birth) values (to_date('2018-02-02','yyyy-mm-dd'));
输入的sql语句出现错误,可输入edit语句进行编辑
EDIT:修改上一条sql /:提交sql
基本查询:
select name,birth from emp; select name||'的工资是'||salary from emp; select count(*) from emp; select distinct(name) from emp;
条件查询
select * from emp where name like '%o%'; select * from emp order by id desc;
小写化 select lower('Hello World') from dual; 剔除 select trim('h','Hello Worldh') from dual; 查找位置 select instr('Hello World','r') 位置 from dual; 截取 select substr('Hello World',3,4) from dual;
四舍五入 select round(45.666,2) from dual; 截断 select trunc(45.666,2) from dual; 求余 select mod(45.666,2) from dual;
格式化求系统时间 select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;
avg(),sum(),min(),count()
select sum(salary)/count(*) 一,avg(salary) 二 from emp;
注意,count(*)代表表中所有行数,无论该行的salary列为不为空,所以一可能是错误的,数值偏小或等于avg(salary);
分组查询:
select id,conut(*) from emp group by id;
抽象出来:
select a,b,组函数(b) from xx group by a,b;
如果a,b是部门和职位,组函数(b)求的是薪水平均值,那么这个分组查询的结果就是查询各部门中的各职位的薪水平均值;