SQL学习记录脚本

发布 2022-09-21 01:41:28 阅读 8123

select job from emp;

-distinct 剔除重复列。

select distinct job from emp;

-在消除重复列时,如果要同时查询多列。

-则必须保证所有都重复才能消除。

select distinct empno,job from emp;

-orcale中的链接字符串操作用"||表示。如果要加入一些显示信息的话,-所有的其他固定信息要使用"'"括起来。

select '编号是:'|empno||'的雇员','姓名是:'|ename,'工作是 :'job from emp;

-在程序中支持+、-的语句。

-**中sal*12的意义不明确,所以最好给这个运算结果起个别名,但。

-在起别名的时候一定要回避中文。

select ename ,sal*12 income from emp;

-限定查询。

select * from emp where sal>1500;

-不为空的表示 is not null,为空的表示是 is null

select * from emp where comm is not null;

select * from emp where comm is null;

select * from emp where sal>1500 and comm is not null;

-在程序中,通过括号表示一组的条件。

select * from emp where not (sal>1500 and comm is not null);

select * from emp where sal>1500 or comm is not null;

select * from emp where sal>1500 and sal<3000;

select * from emp where sal between 1500 and 3000;

-日期表示的时候要加"'"between and 支持日期。

select * from emp where hiredate between to_date('1981-1-1','yy-mm-dd') and to_date('1981-12-31','yy-mm-dd');

-oracle对大小写敏感。

select * from emp where ename='smith';

-指定了范围,可以使用 in 操作符。

select * from emp where empno in (7369,7499,7521);

-若不在此范围内,可以使用 not in 操作符。

select * from emp where empno not in (7369,7499,7521);

-in 操作符还可以用在字符串的信息上。

select * from emp where ename in ('smith','allen','ward');

-如果在查询范围内加入额外信息,不影响程序执行。

select * from emp where ename in ('smith','allen','ward','asdfasdf');

-在like中使用两种通配符,"%可以匹配任意长度的内容,"_可以匹配一个长度的内容。

select * from emp where ename like '_m%';

-使用like时,如果没有指定关键字,则查询全部。

select * from emp where ename like '_

-like可以在任何地方使用。

select * from emp where hiredate like '%81%';

select * from emp where sal like '%5%';

-在oracle中,不等号有两种表现形式"<>

select * from emp where empno !=7369;

-使用order by 对查询结果进行排序(升asc,降desc),默认为asc

select * from emp order by sal asc;

select * from emp order by sal desc;

-排序放在整个sql语句的最后执行。

select * from emp order by sal desc,hiredate asc;

-单行函数。

-1.字符函数。

select upper('smith') from dual;

select * from emp where ename=upper('smith');

select lower('hello world') from dual;

select initcap('hello world') from dual;

select initcap(ename) from emp;

-字符串除了使用"||连接之外,还可以使用concat()函数进行连接操作。

select concat('hello ',world') from dual;

-字符串截取,字符串长度,字符串替换。

-在oracle函数中,substr()函数的截取点是从0还是从1开始的,-从0和从1开始效果是一样的,oracle比较智能。

select substr('hello',1,3) 字符串截取,length('hello') 字符串长度,replace('hello','o','l') 字符串替换。

from dual;

-显示所有雇员姓名和姓名后的三个字符。

select ename ,substr(ename,length(ename)-2) from emp;

-substr()函数可以采用倒着截取的方式,只要输入的位置是负数,就可以倒着进行。

select ename ,substr(ename,-3,3) from emp;

-2.数值函数。

-四舍五入:round();截断小数位trunc();取模mod()

select round(789.536) from dual;

-保留两位小数。

select round(789.536,2) from dual;

-直接对整数进行四舍五入。

select round(789.536,-2) from dual;

-trunc不保留小数,也不进行四舍五入。

select trunc(789.536) from dual;

select trunc(789.536,2) from dual;

select trunc(789.536,-2) from dual;

-去模。select mod(10,3) from dual;

-3.日期函数。

-日期 - 数字 = 日期;日期 + 数字 = 日期; 日期 - 日期 = 数字(天数);

-显示雇员进入公司的星期数。

select sysdate from dual;

select empno,ename,round((sysdate-hiredate)/7) from emp;

-months_between():求出给定日期范围的月数。

-last_day():求出给定日期的最后一天日期。

select empno,ename, months_between (sysdate,hiredate) from emp;

select add_months(sysdate,4) from dual;

select next_day(sysdate,'星期一') from dual;

select last_day(sysdate) from dual;

-4.转换函数。

-to_char:转换成字符串;

-to_number:转换成数字;

-to_date:转换成日期。

-利用to_char()函数进行拆分,拆分的时候必须指定拆分的通配符:

-年:y,年是四位数字,所以用yyyy表示。

-月:m,月是两位数字,所以使用mm表示。

-日:d,日是两位数字,所以使用dd表示。

select empno,ename,to_char(hiredate,'yyyy') year,to_char(hiredate,'mm') month,to_char(hiredate,'dd') day

from emp;

-使用to_char()进行日期显示的转换功能。

select ename, to_char(hiredate,'yyyy-mm-dd') from emp;

-fm可以去掉前导0

select ename, to_char(hiredate,'fmyyyy-mm-dd') from emp;

-可以使用to_char()进行数字格式化。

select ename,to_char(sal,'99,999') from emp;

-希望数字可以明确的表示区域,可以使用以下两种符号:

-$ 表示美元;l local的缩写,一本地语言进行金额显示。

select ename,to_char(sal,'$99,999') from emp;

select ename,to_char(sal,'l99,999') from emp;

-to_number

select to_number('123')+to_number('123') from dual;

-to_date

select to_date('2010-12-31','yyyy-mm-dd') from dual;

-通用函数。

select empno,ename ,(sal+comm)*12 from emp;

-nvl函数,可以将一个指定的null值变成指定的内容。

-如果需要进行计算的时候,对于null必须使用nvl()函数进行一个转换的操作。

select empno,ename,nvl(comm,0),(sal+nvl(comm,0))*12 from emp;

SQL学习

distinct 用于返回唯一不同的值。从 company 列中仅选取唯一不同的值,我们需要使用 select distinct 语句。order by 语句。order by 语句用于根据指定列对结果集进行排序,默认为升序排序,desc为降序排序。以字母顺序显示公司名称 以逆字母顺序显示 以逆字母...

sql学习

53学习笔记 sql server总结 基本涵盖sql的所有操作 sqlserver总结 基本涵盖sql的所有操作ddl databasedefinitionla dml databasemanipulation dcl databasecontrollangu dtm databasetrasac...

SQL学习

sql备份和还原。sql备份。1 sql数据库恢复模型。1 完全恢复模型。1 备份时要备份数据库的数据文件和日志文件。2 还原时使用数据库的备份的数据文件副本和全部日志信息来恢复数据库。3 能还原全部数据,并可以将数据库恢复到任意指定的时刻。4 为保证实现即时点恢复,对数据库的所有 作都将完整地记入...