oracle的用法

Oracle数据库内有一种特殊的表Dual。Dual表是Oracle中的一个实际存在的表,任何用户均可读取,常用在没有目标表的Select中。Dual表由Oracle连同数据字典一同创建,所有的用户都可以用名称DUAL访问该表。这个表里只有一列DUMMY,该列定义为VARCHAR2(1)类型,有一行值X。从DUAL表选择数据常被用来通过SELECT语句计算常数表达式,由于DUAL只有一行数据,所以常数只返回一次。

1、检查系统时间

select   SYSDATE FROM dual;

2、利用dual查1+1的结果

SELECT 1+1 from dual;

3、创建新表EMP4

CREATE TABLE emp4(
	id NUMBER(4),
	name VARCHAR2(20),
	gender CHAR(1),
	birth DATE,
	salary NUMBER(6,2),
	job VARCHAR2(30),
	deptno NUMBER(2)
)

4、--设置默认值。在数据库中,无论字段是什么类型,默认值都是null,但是可以在创建表的时候通过default关键字未指定的列单独设置默认值,在数据库中,字符串单引号表示字面量这一点与JAVA不同notnull  约束指定的字段可以确保不允许为

创建EMP2表,观察与EMP4不同的地方

CREATE  TABLE   emp2(
id NUMBER(4),
name VARCHAR2(20)  NOT   NULL,
gender CHAR(1)   DEFAULT 'M',
birth DATE,
salaty Number(6,12),
deptno number(2)
)

5、修改表名    RENAME EMP2 TO EMP1;

6、--2 修改表结构        添加新字段向表中添加新的字段,只能在当前表的末尾追加。可以同时追加多个列,只需要 使用逗号隔开即可与创建表声明的时的语法一样。注意:orale与MYSQL的不同之处

ALTER TABLE EMP2 ADD (
	hiredate DATE DEFAULT SYSDATE;
)

7、删除表中的现有字段          ALTER TABLE EMP1 DROP (HIREDATE);

8、 修改表中现有的字段  可以修改字段的类型、长度、默认值、非空约束

ALTER TABLE EMP2 MODIFY (
	NAME VARCHAR2 (40) DEFAULT 'ZHANGSHAN';
)

9、 DML 语句  用于修改表中数据分为增删改
9.1.插入数据

INSERT INTO EMP (ID, NAME, JOB, SALARY)
VALUES
	(1, 'luban', 'ADC', 500);

10、修改表中现有数据,将鲁班的工资修改为20

UPDATE EMP
SET SALARY = 20
WHERE
	NAME = 'luban';

11、修改表的数据,通常指定where 过滤条件,这样只会满足条件的记录修改,若不指定where条件则是全表数据修改
--删除表现有数据。将鲁班删除

DELETE from  EMP WHERE NAME='luban';

 12、删除表中的数据同样需要指定的where条件否则就是清空表操作

SELECT *FROM EMP;
SELECT  null+12 FROM dual;

13、字符串拼接    SELECT 'sad'||'ret' from dual;

14、select  语句  DQL、select 语句是用来查询数据的语句查询EMP指定的字段的值

SELECT NAME ,JOB,DEPTNO FROM EMP;

15、DQL必须包含的部分是select子句与FROM字句。select用来确定查询的,可以使用的字段有表的字段,函数。from 子句用来确定查询的表。查看员工的年薪

SELECT NAME,SALARY*12 FROM EMP;

16、字符串函数,连接字符串

SELECT "CONCAT"(NAME,SALARY) FROM EMP;

17、连接字符串还有一个简单的方法:“||”

SELECT NAME || ':' ||Salary FROM EMP;

18、"LENGTH"(ch)函数 ,获取字符长度

select NAME,"LENGTH"(NAME) FROM EMP;

19、"UPPER"(ch)/""LOWER"(ch)/"INITCAP"(ch)将字符转为大写、小写、首字符大写
--DUYAL:伪表,当前的内容与任何一张表中的数据无关是,可以查询伪表。

将大写字母转换为小写

SELECT LOWER('HELLOWORLD') FROM DUAL;

将小写转换为大写

SELECT UPPER ('hellooworld') from dual;

将字符串的第一个字母大写

SELECT INITCAP('HELLO WORLD') FROM DUAL;

20、--SELECT 语句 DQL -SELECT 语句是用来查询数据的DQL语句
--查询EMP指定字段的值

SELECT NAME,JOB,DEPTNO FROM EMP

21、DQL必须包含的部分是select子句与FROM子句,select用来确定查询的字段可以使用的字段有表的字段,函数,表达式from子句用来确定查询的表SELECT中使用表达式查看每个员工的年薪

SELECT NAME,SALARY*12 FROM EMP

22、字符串函数,连接字符串


SELECT CONCAT(NAME, SALARY) FROM EMP 

23、


SELECT CONCAT(CONCAT(NAME,':'),SALARY) FROM EMP

24、连接字符串还有一种简单的方式:“||”

SELECT NAME || ':' || SALARY FROM EMP

25、LENGTH(ch)函数,获取字符长度

SELECT NAME,LENGTH(NAME) FROM EMP

26、TRIM/"LTRIM"(ch)/"RTRIM"(ch)去除字符串两边的指定字符

从符合条件前后都存在e,中间取得字符串

SELECT TRIM('e' FROM 'eseltese') 
FROM dual;

从se后截取得到字符串

SELECT LTRIM('eseselitsese','se')
FROM dual;

27、LPAD/RPAD补位函数要求显示指定内容指定位数,若不满足则补充若干指定字符以达到显示的长度

SELECT NAME,RPAD(SALARY,6,'$') 
FROM EMP;

28、--SUBSTR截取字符串。截取给定字符串,从指定位置开始截取指定个字符。在数据库中,下标从1开始计算

在题中从第四个字符之后开始,取得四个字符

SELECT SUBSTR('Thinking in java',4,4) FROM dual;

29、"INSTR"(ch1, ch2[n,m]),查找ch2在ch1中的位置,n为从指定位置开始查找,可以不写,m为第几次出现,可以不写n,m不写默认值为1

SELECT INSTR('Thinking in java','in',4,2)
FROM dual;

30、

SELECT NAME,SALARY,DEPTNO 
FROM EMP
WHERE SUBSTR(NAME,1,1)='l'

31、--数字函数1."ROUND"(n, [m]),对n进行四舍五入,保留到小数点后m位,m可以不写,不写默认为0 保留到整数位1位 10 位。

SELECT ROUND(45.678,2) FROM dual;

SELECT ROUND(45.678,0) FROM dual;

SELECT ROUND(45.678,-1)FROM dual;

32、2."TRUNC"(n1 n2)函数,与ROUND用法一致只是不再进行四舍五入,而是直接截取

SELECT TRUNC(45.678, 2) FROM dual;

SELECT TRUNC(45.678, 0) FROM dual;

SELECT TRUNC(45.678, -1) FROM dual;

33、"MOD"(n1, n2)函数是求余

SELECT NAME,SALARY,MOD(SALARY, 1000)
FROM EMP;

34、CElL() 和 FLOOR()向上取整与向下取整

1、celL向上取整

SELECT CEIL(45.678) FROM dual;

2、FLOOR向下取整

SELECT FLOOR(45.678) FROM dual;

35、日期类型  DATE:7个字节。保存世纪、年月日时分秒
--TIMESTAMP:时间戳,比DATE多4个字节,可以
--保存秒以下的精度,前7个字节与DATE一致
--SYSDATE:对应一个内置函数,返回一个表示
--当前系统时间的DATE类型值
--SYSTIMESTAMP :同样的,返回的是表示当前系统
--时间的时间戳类型的值

SELECT SYSDATE FROM DUAL;

SELECT SYSTIMESTAMP FROM DUAL;

36、--"TO_DATE"(ch, fmt)按照给定的日期格式将字符串转换为DATE类型

SELECT TO_DATE('1998-11-01 23:22:11', 
'YYYY-MM-DD HH24:MI:SS')
FROM DUAL;

37、在日期格式字符串中,凡不是英文,符号和数字的其他字符都要用双引号括起来

SELECT TO_DATE('1998年11月01日 23:22:11',
'YYYY"年"MM"月"DD"日" HH24:MI:SS')
FROM DUAL;

38、DATE是可以比较大小的,越晚的越大,查看1989年以后出生的员工

SELECT NAME,BIRTH FROM EMP
WHERE BIRTH > TO_DATE
('1989-01-01','YYYY-MM-DD');

39、DATE之间可以做加减法,差值为相差的天数查看每个员工至今活了多少天?

SELECT NAME,TRUNC(SYSDATE - BIRTH)
FROM EMP

40、89年到现在多少天了?

SELECT TRUNC(SYSDATE - TO_DATE('1998-01-01','YYYY-MM-DD'))
FROM DUAL;

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值