Oracle 10g学习笔记(三)——SQL语言基础1_sql语言基础第一章
Oracle 10g学习笔记(三)——SQL语言基础1由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“sql语言基础第一章”。
content:
SQL语言概述、分类
各种语言常见语句写法
常用查询语句的使用
常用系统函数及其应用
分组语句
模糊查询
表的连接
子查询
结构化查询语言是学好任何一个关系型数据库的前提 语言分类
数据定义语言DDL
CREATE 创建表 创建数据库 创建函数 创建过程 CREATE TABLE abc(a varchar2(10), b char(10));ALTER 修改表的结构
ALTER TABLE abc ADD c number;
DROP 删除表 删除字段 删除数据库
DROP TABLE abc;
删除一个字段
ALTER TABLE abc DROP COLUMN c;
数据控制语言DCL
GRANT
把scott用户的dept表授权给tt用户
GRANT SELECT ON dept TO tt;
SELECT * FROM scott.dept;
REVOKE
解除授权
REVOKE SELECT ON dept FROM tt;
数据操纵语言DML
SELECT
SELECT * FROM dept;
INSERT
INSERT INTO abc(a,b)VALUES('ABC','XY');
赋值个数和字段个数必须相等,且对应数据类型要相同
DELETE
清空表的所有数据
DELETE FROM abc
DELETE FROM abc WHERE a='abc';
UPDATE
UPDATE abc SET b='ttt';
UPDATE abc SET b='yyy' WHERE a='abc';
常用的系统函数
1、字符
length,ltrim,replace,rtrim,substr,trim
查看ABCDEFG包含几个字符
SELECT LENGTH('ABCDEFG')FROM dual;
查看ABCDEF汉字包含几个字符
SELECT LENGTH('ABCDEF汉字')FROM dual;
查看字节数
SELECT LENGTHB('ABCDEF汉字')FROM dual;
去掉左边空格
SELECT LTRIM(' ABCD')FROM dual;
去掉右边空格字符(空字符串)
SELECT RTRIM('ABCD ')FROM dual;
去掉左右空格字符
SELECT TRIM(' ABCD')FROM dual;
可变长字段varchar和定长字段char区别:
可变长字段可以节省未用到的空间
定长字段占用字段空间,未用到的使用空格填充,取定长字段时最好结合使用TRIM函数
定义字符型字段尽可能定义成可变长字段,避免不必要的存储,有利于数据的正确查询截取字符串
SELECT SUBSTR('abcdefgh',2,3)FROM dual;
左取3个
SELECT SUBSTR('abcdefgh',1,3)FROM dual;
右取3个
SELECT SUBSTR('abcdefgh',LENGTH('abcdefgh'-3+1,3)FROM dual2、日期
sysdate,current_date,next_day
查看系统时间
SELECT sysdate FROM dual;
设定时间格式
ALTER SESSION SET NLS_DATE_FORMAT='dd-mon-yyyy hh:mi:';SELECT CURRENT_DATE FROM dual;
查看某日期后的星期几是几号
SELECT NEXT_DAY(sysdate,'星期三')FROM dual;
3、转换
to_char,to_date,to_number
将日期转换成字符
SELECT sysdate FROM dual;
SELECT TO_CHAR(sysdate,'yyyy-mm-dd hh24:mi:')FROM dual;将字符转换成日期
SELECT TO_DATE('12-3月-08)FROM dual;
将字符转换成数字
SELECT TO_NUMBER('22')FROM dual;
4、聚集函数
sum,svg,min,max,count,decode,nvl
求和
SELECT sum(price)FROM books;
求平均值
SELECT avg(price)FROM books;
查看某个字段的行数,当某个字段为空值时将不被统计
SELECT COUNT(price)FROM books;
查看表记录行数
SELECT COUNT(*)FROM books;
聚集函数多为条件但不能与where语句结合SELECT * FROM books WHERE price>20;
SELECT user FROM dual;
decode函数为同值字段计数
SELECT SUM(DECODE(SEX,'男',1,0))男人数, SUM(DECODE(SEX,'女',1,0))女人数 FROM member;
空值处理
为空值做标识 使用函数处理空值
SELECT a1, nvl(a2,'未输入')a2 FROM member;
SELECT * FROM aa WHERE a2 IS NULL;
SELECT * FROM aa WHERE a2 IS NOT NULL;
升序排列
SELECT * FROM aa ORDER BY a1 ASC
降序排列
SELECT * FROM aa ORDER BY a1 DESC
让重复数据只显示其中一条,不影响数据库的值 SELECT DISTINCT a1 FROM aa;
显示全部数据(SELECT默认查询效果)SELECT ALL a1 FROM aa;