oracle数据库基础语句(一)


1.--基本查询DQL语句(后面以自带的emp表为联系表)
SELECT * FROM emp;
2.--DML语句
--删除(这是删除全部,要是删除条件就把条件带上)
DELETE FROM emp;
--增加语句(第一种可以给指定的字段进行赋值,注意非空和主键必须赋值)
INSERT INTO emp(empno,ename ,job,sal,deptno)VALUES(9090,'rise','教授',20,20);
INSERT INTO emp VALUES(这里要把所有表中的字段都赋值);
--更改语句,若不带条件则更改所有
UPDATE emp SET sal = 3500 WHERE empno=9998;
3.--TCL语句
--oracle是默认开启事物的,开启的是二级事物(read commited),若果增删改dml语句想要回滚或提交
--ROLLBACK回滚,语句不生效,数据不更改
--commit 事物提交,语句生效,数据更改
4.--DDL数据定义语言
--新增一个字段VALID ,默认为0
ALTER TABLE emp ADD valid NUMBER(2) DEFAULT 0 ;
--修改字段的信息,属性,或约束
ALTER TABLE emp MODIFY job VARCHAR2(40) NOT NULL;
5.--DCL语句
--创建表空间
CREATE TABLESPACE jzc2
DATAFILE 'D:\oraclejzctext\JZC2.DBF'
SIZE 10M;
--创建用户
CREATE USER JZC2
IDENTIFIED BY JZCZ151811
DEFAULT TABLESPACE JZC2;
--给新用户角色
GRANT 角色(角色权限) TO jzc2;
grant select(权限) on 表名 to 用户名;
--收回权限
revoke 角色 from 用户名;
revoke 权限 on 表名 from 用户名;
6.--常用函数
--nvl函数sal若为null则用0代替
SELECT ename,NVL(sal,0) FROM emp;
--nvl2,若sal为null则返回没钱,若不为null则返回有钱
SELECT ename ,NVL2(sal,'有钱','没钱') FROM emp;
--case when语句
SELECT ename , sal ,CASE sal
WHEN 1000 THEN sal-500
ELSE sal
END sal
FROM emp;
--decode语句用途和case when差不多,as后面如果是中文要加双引号
SELECT ename AS "姓名" ,sal ,job,DECODE(job,
'讲师', '牛X',
'CLERK', '一般',
'普通','普通',
'普通'
) AS "职称" FROM emp;
SELECT * FROM dept;

