--BINARY_FLOAT 和 BINARY_DOUBLE是从10g开始新引入的两种数据类型,优点:
--更小的存储空间:NUMBER需要22bytes,它们只需要5和9bytes
--更大的数据表示范围:
--更快的运算速度:它们是基于硬件的,而NUMBER是基于软件的
--操作的返回值是相同的数据类型。
--当你使用Exit离开SQLPLUS时,会自动进行一次提交操作;
--比较用any和all的区别
SELECT * FROM customers
WHERE customer_id > ANY (2,3,4);
SELECT * FROM customers
WHERE customer_id > ALL (2,3,4);
--在使用NOT IN子句的时候,列表中不能包括NULL,如果使用会返回空集
SELECT * FROM customers WHERE customer_id NOT IN (2,3,4,NULL);
--AND操作的优先级大于OR操作
SELECT * FROM customers
WHERE (dob > '01-1月-1970') OR
(customer_id < 2 AND phone LIKE '%1211');
--使用define命令定义的变量,只在当前会话中有效;
使用单行函数
- 字符函数
- 数字函数
- 转换函数
- 日期函数
- 正则表达式函数
--字符函数
SELECT ASCII('a'),ASCII('A'),ASCII('z'),ASCII('Z') FROM dual;
SELECT CHR(97),CHR(65),CHR(122),CHR(90) FROM dual;
SELECT CONCAT(first_name,last_name) FROM customers;
SELECT product_id,INITCAP(DESCRIPTION) FROM products;
--查看指定的字符串在某个字符串中的位置
SELECT NAME, INSTR(NAME,'Science') FROM products WHERE product_id = 1;
--从字符串的第1个字符开始,查找e出现第二次所在的位置
SELECT NAME, INSTR(NAME,'e',1,2) FROM products WHERE product_id = 1;
--查询字符串的长度
SELECT NAME, LENGTH(NAME) FROM products;
--大小写转换函数
SELECT UPPER(first_name),LOWER(last_name) FROM customers;
--左填充函数和右填充函数
SELECT RPAD(NAME,30,'.'),LPAD(price,8,'*')
FROM products;
--去左空格,右空格和左右空格函数
SELECT LTRIM(' hello gail seymour'),
RTRIM('hi,fanmig! d abcabc','abc'),
TRIM('0' FROM '00 fanming! 0')
FROM dual;
--null值取代函数
SELECT customer_id,NVL(phone,'Uknow phome number') FROM customers;
SELECT customer_id,NVL2(phone,'Konw','Unkonw') FROM customers;
--根据发音相同的进行查找
SELECT * FROM customers
WHERE SOUNDEX(last_name) = SOUNDEX('whyte');
--字符串截断函数
SELECT SUBSTR(NAME,2,7) FROM products;