Oracle入门,oracle基础语法
SQL
|--关系型数据库
|-数据库是企业信息系统的核心
|--关系型数据库是使用最广泛的
|-建立在关系理论模型上的一种产品 |-关系-表
|-Oracle/MySQL/SQL-S/DBII/SYBASE
|--数据库的访问-SQL(
标准
excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载
查询语言)
|-第四代语言(只描述任务-文本
|-传递SQL给数据库
|-非编程模式: SQL PLUS
|-编程模式: JDBC
Sqlplus只能本地连接
telnet 172.164.0.6 远程连接
openlab/open123 用户名/密码 然后即可登录
sqlplus esd1011/esd1011 本地连接 用户名/密码
desc s_emp (describe"描述" table-name)
clear screen清屏
exit 退出
每行显示的长度 set linesize 300 //
set pagesize 30 //每页显示的行数
select count(*) from emp;//查询emp表中有多少条记录 select count(*) from
emp,dept;
cho $ORACLE_SID 查看数据库名称 // 大小写敏感 e
双引号只能用来表示别名 单引号用来表示字符串 //查看s_emp表结构
SQL语法
DDL和DML
|-DDL 据库定义语言,创建,修改,删除数据结构
|-DML 数据操作语言,更新操作(增删改).查询操作
基本查询语法:
select LAST_NAME,SALARY from s_emp where SALARY<1000;
//先将两个字段取出来,形成一个虚拟的表(视图),在这个表里再使用过滤条件 select FIRST_NAME from s_emp |- select 字段名称 from 字段来源 //查询多个字段信息 |- select 字段名称,字段名称 from 字段来源 |-select LAST_NAME,SALARY from s_emp select(查询)
select LAST_NAME || FIRST_NAME from s_emp;
select LAST_NAME || ‘,’ || FIRST_NAME from s_emp;
select LAST_NAME || ‘,’ || FIRST_NAME from as Name from s_emp; //as name
给前两个字段起一个别名name
select LAST_NAME,SALARY*12 as "YEAR SALARY" from s_emp; //如果别名有空格,要用双引号 " "
select LAST_NAME,SALARY/4+50 as "YEAR SALARY" from s_emp; // SALARY/4+50 周薪加50 可以直接用 + - * /
select LAST_NAME,SALARY/4+50 as "WINTER WEEK SALARY" from s_emp
where (SALARY/4+50)>400 and (SALARY/4+50)<500 ;
//可以进行复合运算 两个条件表达式和一个逻辑表达式 条件表达式先算 // ‘,’
打印出, // ||将两个字段串成一个字段
select LAST_NAME,SALARY/4+50 as "WINTER WEEK SALARY" from s_emp
where (SALARY/4+50)>400 and (SALARY/4+50)<500
order by LAST_NAME asc ; //按照LAST_NAME 排序 增序(默认asc)
select LAST_NAME,SALARY/4+50 as "WINTER WEEK SALARY" from s_emp
where (SALARY/4+50)>400 and (SALARY/4+50)<500
查询完成后进行 order by SALARY desc; //按照SALARY降序排序
特殊值处理
select LAST_NAME,SALARY,nvl(COMMISSION_PCT,0) as COMM_PCT from s_emp; //nvl将空值转化为0 nvl是单行函数 //nvl(A,B) A是什么类型,B就
要是什么类型 比如(num,0)
select LAST_NAME,SALARY,SALARY*nvl(COMMISSION_PCT,0)/10 as COMM_PCT from s_emp
order by COMM_PCT;
select distinct SALARY from s_emp; //distinct去除重复
条件表达式 逻辑表达式(字符串,日期均可用条件表达式) (AND OR NOT)
select LAST_NAME,SALARY from s_emp where LAST_NAME = ‘Ngao’; //
查询带有Ngao这个人的工资
select LAST_NAME,SALARY from s_emp where LAST_NAME <‘Ngao’;//
查询名字大于Ngao的人的工资
select LAST_NAME,SALARY from s_emp where SALARY <1000 or SALARY>2000; //查询工资小于1000或者大于2000的人 select
LAST_NAME,SALARY from s_emp where SALARY != 1400;
select LAST_NAME,SALARY from s_emp where SALARY >1000 and SALARY <2000;
select LAST_NAME,SALARY from s_emp where SALARY between 1000 and 2000; //between连续的数据,查询1000-2000工资的人 select
LAST_NAME,SALARY from s_emp where LAST_NAME in (‘Jack’,’Tim’,’
Rose’,’Biri’); //查询( )里几个人的工资 单行函数
LOWER(小写) UPPER(大写) INITCAP(首字母大写)
select lower(LAST_NAME) from s_emp; CONCAT连接字符串 select
concat(concat(FIRST_NAME,LAST_NAME),LAST_NAME) as name from s_emp;
//将名和姓连接起来 可以嵌套 select substr(LAST_NAME,2,3) as NAME from
String’,1,3) 取得子字符串 s_emp; //2是起始位置 3是取得的长度 SUBSTR(‘
str //1是起始位置 3是取得的长度 LENGTH select length(LAST_NAME) as len from s_emp; //查询LAST_NAME的长度
处理数字的函数
ROUND(四舍五入)
|-(45.923,2) |-(45.923,0) 45.92 46 50 四舍五入到十位 |-(45.923,-1) |-
(45.923,2) |- (45.923) TRUNC(截断) 45.92 45 40 |- (45.923,-1)
select SALARY,SALARY/22 as DAILY_SALARY ,
round(SALARY/22,2) as ROUND_SALARY,
trunc(SALAY/22,2) as TRUNC_SALARY from s_emp;
日期函数
在数据库中,日期是用数字表示的