oracle中的建表语句:
create table users(
Id number(4) primary key,
Name varchar(10),
--varchar定长的字符写数据类型
Password varchar2(10),
--varchar2变长的字符型数据类型
Sex char(2),
--char定长的数据类型
Addr varchar(20),
Birthday date,
--date日期型数据类型
Salary number(8,2)
--number不带小数点的数值型类型
--number(8,2)数据表的总长度是8位,小数点后占2位
);
oracle中的查询语句:
select * from emp; --从emp表中查询所有信息
--desc emp;查询语句,只能在命令行模式下使用,命令行模式下的sql语句必须有封号
oracle中的sql语句大小写不敏感,可单行或多行书写,关键字不能跨多行或缩写,一般关键字大写,其他小写
--从表中查询部分子段
select empno,ename,sal,comm from emp;
--sql*plus默认显示:
date和character型数据左对齐;number型数据右对齐
--在查询过程中,对于数据型的数据,可以执行+,-,*,/运算
--乘法和除法的优先级高于加法和减法,同级运算的顺序是从左到右,表达式中使用括号可以改变优先级的运算顺序
--可以给查询字段起别名,有不同的方式,可以不用“”,可以用as,可以不用as
--如果别名中使用特殊字符,或者是强制大小写敏感,或有空格时,都需加双引号
select empno 员工,ename 员工姓名,sal "月薪",sal * 12 "年薪",comm "奖金",(sal * 12 + comm) "年收入" from emp;
--在算术表达式中出现null,得到的结果就是null,null不等于0
--用双竖线可以将两列或多列查询结果合并到一起
select empno,ename,empno||ename||job "员工信息" from emp;
--在连接表达式中出现null,就是原来的字符型数据
select empno || ‘的经理是‘ || mar "从属关系" from emp; --例如查询结果的第九行
--空值是指不可用、未分配的值,空值不等于0或空格,任意类型都可以支持空值,包括空值的任何表达式都等于空,包括空值的连接表达式等于与空字符连接,也就是原来的字符串
--强制改变字段的大小写必须加双引号,不然还是会默认大写
select empno "EmpNo" from emp;
--文本字符串是一个包括在select查询列表中的字符,表达式或数字;日期和字符写文本字符串必须用单引号;每返回一条记录文本字符串被显示一次
--对于日期型的数据可以使用+,-运算
1.一个日期+或-一个数值就是加减一个天数,得到一个新的日期
2.两个日期的数据相减,得到的是两者之间相差的天数
--两个日期型的数据不能相加,日期型的数据不能进行乘除运算
select empno,ename,hiredate "雇用日期",(hiredate + 90)"转正日期" from emp;
--sysdate取得当前的日期
select empno,ename,(sysdate - hiredate)/365 "工作的年限" from emp;
--to_char(hiredate,‘yyyy‘)提取雇用日期中的年份,to_char(hiredate,‘mm‘)提取月份,to_char(hiredate,‘dd‘)获取日
select ename,to_char(hiredate,‘dd‘) from emp;
--去除重复的数据
select distinct deptno from emp;
--去除多列重复的数据
select distinct job deptno from emp;
--使用where子句对数据进行过滤
--例如查询部门编号是10的数据
select * from emp where deptno = 10;
select * from emp where ename = ‘SMITH’;--必须与表中的数据想同,包括大小写,必须有单引号
--对于日期型的数据,格式是敏感的,使用日期型数据的格式是DD-MM-YYYY(日-月-年)
select * from emp where hiredate = ‘20-2月-1981‘;
--改变当前会话中的日期格式
alter session set nls date fomat = ‘YYYY-MM-DD HH:MI:SS‘;
--where的其他比较运算符
select * from emp where sal >= 2000;
select * from emp where sal !=3000 或select * from emp where sal <> 3000;
--逻辑运算符:and 或 && :如果组合的条件是true,返回true; or 或|| :如果组合条件之一是true,返回true; not 或 !: 如果组合条件是false,返回true
--使用between...and
select * from emp where sal between 2000 and 3000
select * from emp where sal >2000 and sal < 3000
--使用in
select * from emp where job in (‘manager‘,‘clerk‘)
--在oracle中使用or来代替||的功能
select * from emp where job = ‘manager‘ or ‘clerk‘
--like用于字符型数据的查询,可以执行模糊查询
select * from emp where ename like ‘*A*‘
--%表示0个或多个任意的字符
select * from emp where ename like ‘A%‘
--"_"表示一个字符
select * from emp where ename like ‘_A%‘ --查找名字第二个字母是A的人的信息
select * from emp where ename like ‘%%%‘ --相当于查找全部
select * from emp where ename like ‘%\%%‘ escape ‘\‘
--对于空值要使用is null进行比较
select * from emp where comm is null
--使用not运算符
select * from emp where sal not between 2000 and 3000;
--对查询后的数据进行排序,使用order by 子句,默认是asc升序排列,也可使用desc进行降序排列
select * from emp where sal > 2000 order by sal;
select * from emp where sal >2000 order by sal desc;
--可以按照多个字段进行排序
select * from emp order by deptno sal; --当前一个数据相同时,用后面的进行排序
--使用字段别名进行排序
select empno,ename,(sal * 12) "年薪" from emp order by "年薪";
数据库对象的命名规则:1.必须以字母开头;2.可包括数字(0-9)和三个特殊字符(#_$);3.不要使用oracle的保留字;4.同一用户下的对象不能同名,即使是不同的对象类型
原文:https://www.cnblogs.com/qiuqiu1005/p/11628160.html