SQL:结构化查询语言
分为如下三块:
DML:数据操作语言----------------增删改查
DDL:数据定义语言----------------创建表,修改表,创建,删除索引,添加,修改,删除列长度
DCL:数据控制语言----------------commit,rollback,控制数据的访问
plsql developer修改编辑器背景颜色:tools---preference-=interface user=-fonts
查看一个表里面都有那些字段和字段属性:desc employees;
SQL> desc employees;
Name Type Nullable Default Comments
-------------- ------------ -------- ------- --------
EMPLOYEE_ID NUMBER(6)
FIRST_NAME VARCHAR2(20) Y
LAST_NAME VARCHAR2(25)
EMAIL VARCHAR2(25)
PHONE_NUMBER VARCHAR2(20) Y
HIRE_DATE DATE
JOB_ID VARCHAR2(10)
SALARY NUMBER(8,2) Y
COMMISSION_PCT NUMBER(2,2) Y
MANAGER_ID NUMBER(6) Y
DEPARTMENT_ID NUMBER(4) Y
注意:plsql语言大小写不敏感,可以换行写,关键字不能换行写,不能被缩写
1:基本sql的select语句
1):查询表里面所有的列:select * from employees;
2):查询其中的某几列:select EMPLOYEE_ID,FIRST_NAME from employees;
数字和日期可以使用算数运算符:+ - * /(先乘除,后加减,有小括号先算小括号);日期只能做+ ,-,不能做*,/
SQL> select 8*8 from dual;
8*8
64
----------
SQL> SELECT EMPLOYEE_ID,FIRST_NAME,12*SALARY+10000,HIRE_DATE+1 FROM EMPLOYEES;
EMPLOYEE_ID FIRST_NAME 12*SALARY+10000 HIRE_DATE+1
----------- -------------------- --------------- -----------
100 Steven 298000 1987/6/18
101 Neena 214000 1989/9/22
102 Lex 214000 1993/1/14
103 Alexander 118000 1990/1/4
104 Bruce 82000 1991/5/22
SQL> SELECT SYSDATE,SYSDATE-1,SYSDATE+1 FROM DUAL;
SYSDATE SYSDATE-1 SYSDATE+1
----------- ----------- -----------
2016/4/7 23 2016/4/6 23 2016/4/8 23
=============================================================
空值不同于0,凡是空值参与的运算结果都为null
比如:若kpi为null,则salary*(1+kpi)结果都为null
=============================================================
SQL> select employee_id as id,first_name "LAST NAME",salary sl FROM EMPLOYEES;
ID LAST NAME SL
------- -------------------- ----------
100 Steven 24000.00
101 Neena 17000.00
102 Lex 17000.00
连接符:把列与列,列与字符,链接在一起,用 || 表示;可以用来合成列
QL> select last_name||'的工资是:'||salary from employees;
LAST_NAME||'的工资是:'||SALAR
---------------------------------------------------------------------------
King的工资是:24000
Kochhar的工资是:17000
De Haan的工资是:17000
Hunold的工资是:9000
Ernst的工资是:6000
Austin的工资是:4800
Pataballa的工资是:4800
Lorentz的工资是:4200
Greenberg的工资是:12000
sql中除了别名是使用双引号,其他像字符串,日期都是使用单引号
默认情况下,查询会返回全部行,包括重复行,distinct放置的位置有要求
SQL> select distinct last_name,department_id from employees;
LAST_NAME DEPARTMENT_ID
------------------------- -------------
Kochhar 90
Lorentz 60
Chen 100
Urman 100
sql与sqlplus区别
sql:一种语言,关键字不能缩写
sqlplus:一种工具,oracle特有的特性之一,关键字可以缩写(desc,ed)
浙公网安备 33010602011771号