基本的 sql 语句
DESCRIPTION
基本的 SQL 语句. 目标. 列出 SELECT 语句的功能 执行基本的 select 语句 区分 SQL 语句和 SQL*PLUS 命令. select 语句的功能. Projection 投影. Selection 选择. Table 1. Table 1. Join 联结. Table 2. Table 1. 基本 select 语句. select 确定处理哪些列 from 确定处理哪些表 DISTINCT 禁止重复 column|expression 选定的列或者表达式 alias 别名. - PowerPoint PPT PresentationTRANSCRIPT
-
SQL
-
SELECT
select
SQLSQL*PLUS
-
selectSelection Projection Table 1Table 2Table 1Table 1Join
-
selectselectfrom DISTINCT column|expressionalias SELECT *|{[DISTINCT] column|expression [alias],...}FROM table;
-
SQL
-
fromMultiply *Divide /Subtract -Add +DescriptionOperator
-
SELECT EMPNO, SAL, SAL + 300FROM EMP;SAL+300 EMP
-
SELECT EMPNO, SAL, 12*SAL+100FROM EMP;SELECT EMPNO, SAL, 12*(SAL+100)FROM EMP;
-
"NOT NULLPRIMARY KEY)
-
AS
-
SELECT ENAME AS , JOB FROM EMP;
-
||SELECTENAME||EMPNO AS "Employees"FROM EMP;SELECT ENAME ||' is a '||EMPNO AS "Employee Details"FROM EMP;
-
SELECT DEPTNOFROM emp;SELECT DISTINCT DEPTNOFROM emp;
-
SQLPLUS DESCRIBE emp
-
WHEREWHEREFROM
SELECT *|{[DISTINCT] column|expression [alias],...}FROM table;
-
DD-MON-RRSELECT EMPNO, ENAME, JOB, DEPTNOFROM empWHERE DEPTNO = 90 ;SELECT EMPNO, ENAME, JOB, DEPTNOFROM empWHERE ENAME = KING ;
-
Not equal to
Between two values (inclusive)BETWEEN ...AND...Match any of a list of values IN(set)Match a character pattern LIKEIs a null value IS NULLLess than
Equal to=MeaningOperator
-
select empno, ename, job, sal, deptno from emp where sal < 2000;
select empno, ename, job, sal, deptno from emp where sal between 1000 and 2000;
select empno, ename, job, sal, deptno from emp where deptno in (20,30);
select empno, ename, job, sal, deptno from emp where ename like 'K%';%_
select empno, ename, job, comm, deptno from emp where comm is NULL;
-
Returns TRUE if the condition is falseNOTReturns TRUE if either component condition is trueORReturns TRUE if both component conditions are trueANDMeaningOperatorselect empno, ename, job, sal, deptno from emp where sal < 3000 and ename like 'J%';
select empno, ename, job, sal, deptno from emp where sal < 3000 and ename not like 'J%';
-
select empno, ename, job, sal, deptno from emp where sal < 3000 or ename like K%';
select empno, ename, job, sal, deptno from emp where sal < 3000 and ename not in ('WARD','KING');
-
1234IS [NOT] NULL LIKE [NOT] IN5[NOT] BETWEEN6NOT7AND8OR
-
select empno, ename, job, sal, deptno from emp where ename = 'KING' or deptno = 20 and sal < 2000;
-
ORDER BY ORDER BYASCDESCORDER BYSELECTORDER BY select empno, ename, sal from emp order by sal;select empno, ename, sal, deptno from emp where deptno=30 order by sal;select empno, ename, sal*12 year, deptno from emp order by year;
-
select empno, ename, sal, deptno from emp order by sal,deptno;
select empno, ename, sal, deptno from emp order by deptno,sal;
ORDER BYSELECT
-
3000SQLlabl. sql7782100030002030"Employee""Monthly Salary1981AE
-
SQL
SELECT
-
SQLSQL: SQLOracle SQL
-
:
-
LOWER (column / expression)UPPER (column / expression) INITCAP (column / expression) CONCAT(column1 / expression1 , column2 / expression2)SUBSTR(column / expression, m [,n])m nm nLENGTH(column / expression)
-
DD-MON-RROracle47121199991231
SYSDATE SYSDATESYSDATESYSDATEDUALSYSDATE
select sysdate from dual;
-
24
-
'08-SEP-95'NEXT_DAY ('01-SEP-95','FRIDAY')'28-FEB-95'LAST_DAY ('01-FEB-95')19.6774194MONTHS_BETWEEN ('01-SEP-95','11-JAN-94')29-FEB-96'ADD_MONTHS (31-JAN-96',1)ResultFunction
-
NUMBERCHARACTERTO_CHARTO_NUMBERDATETO_CHARTO_DATE
-
TO_CHAR fm
select ename, to_char(hiredate,'YYYY-MM-FMDD') from emp;TO_CHAR(date, 'format_model')
-
F3(F2(F1(col,arg1),arg2),arg3)Step 1 = Result 1Step 2 = Result 2Step 3 = Result 3
-
NVL (exprl, expr2)NVL2 (exprl, expr2, expr3)NULLIF (exprl, expr2)COALESCE (exprl, expr2, ,exprn)
-
SELECT
-
:---
WHERE
select empno, ename, dname from emp,dept;
-
WHERE
SELECT table1.column, table2.columnFROM table1, table2WHERE table1.column1 = table2.column2;
-
EMPDEPTNODEPTDEPTNOEMPDEPTDEPTNO
-
nn-1
EMP,DEPT,LOCATIONS
-
ANDWHEREKINGWHERE
select empno, ename, dname from emp,dept where emp.deptno=dept.deptno and emp.ename=KING;
-
select ename,grade from emp,salgrade where emp.sal between losal and hisal;empSALSALGRADE
-
EMPSMITH
select worker.ename || ' works for ' || manager.ename from emp worker, emp manager where worker.MGR=manager.empno;
-
GROUP BYHAVING
-
AVGCOUNTMAXMINSUM
-
Maximum salary in EMPLOYEES table
-
EMPAverage salary in EMPLOYEES table for each department
-
HAVINGHAVING1.2.3.HAVING
-
HAVINGHAVINGgroup_condition HAVINGOracle1.2.3.HAVINGHAVINGGROUP BYGROUP BYHAVINGSELECT
-
HAVINGOracleOracleHAVINGSELECT ename, empno, salFROM empWHERE sal = (SELECT MIN(sal) FROM emp);800
-
SELECT empno, enameFROM empWHERE sal = (SELECT MIN(sal) FROM emp GROUP BY deptno);
-
Select empno, ename, salFrom empWhere sal > ANY (select MIN(sal) from emp group by deptno )OracleSelect empno, ename, salFrom empWhere sal in (950, 800, 1300)
-
DML(Data Manipulation Language )
-
INSERTtablecolumn value
-
()INSERT INTO EMP (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO)
VALUES (7935, 'SCOTT', 'CLERK', 7782, '15-1-82', 1400, 0, 10);INSERT
-
INSERTNUMBER
-
VALUESNULLVALUESNULL VALUES( )INSERT INTO EMP (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, DEPTNO)
VALUES (7936, 'SCOTTB', 'CLERK', 7782, '15-1-82', 1500, 10);
-
SYSDATEINSERT INTO EMP (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, DEPTNO)
VALUES (7937, 'SCOTTB', 'CLERK', 7782, SYSDATE, 1520, 10);INSERT INTO EMP (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, DEPTNO)VALUES (7938, 'SCOTTC', 'CLERK', 7782, TO_DATE('2011-11-2','YYYY-MM-DD'), 1520, 10);
-
INSERTVALUESINSERTINSERT INTO BONUS
SELECT ENAME, JOB, SAL, SAL FROM EMP WHERE ENAME='SCOTT';
-
INSERTINSERTINTOVALUESINSERT INTO (SELECT EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO FROM EMP WHERE DEPTNO = 20)VALUES (7939, 'SCOTT6', 'CLERK', 7782, '15-1-82', 1400, 0, 10)
-
WITH CHECK OPTION WITH CHECK OPTIONINSERTUPDATEDELETE WITH CHECK OPTION20 SELECT10
INSERT INTO (SELECT EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO FROM EMP WHERE DEPTNO = 20 WITH CHECK OPTION)VALUES (7940, 'SCOTT6', 'CLERK', 7782, '15-1-82', 1400, 0, 10)
-
UPDATEtable column value condition
-
WHERE WHERE UPDATE EMP SET ENAME = 'SNOWFLY' WHERE EMPNO = 7938;
-
79387782UPDATE EMPSET JOB = (SELECT JOB FROM EMP WHERE EMPNO = 7782), SAL = (SELECT SAL FROM EMP WHERE EMPNO = 7782)WHERE EMPNO = 7938;
-
table
condition
WHERE WHEREDELETE FROM EMPWHERE ENAME = 'SCOTTB';
-
DELETEDELETE FROM EMP WHERE ENAME = (SELECT ENAME FROM BONUS)
-
DMLOracleSQL
-
DML SQL-COMMITROLLBACK-DDLDCL-SQL*Plus-
-
COMMIT ROLLBACK COMMITROLLBACK
-
SQL
-
-DDL-DCL-SQL*Plus,COMMITROLLBACK SQL*PIUS
-
COMMIT ROLLBACK SELECTDMLDML
-
COMMIT
-
ROLLBACK
-
--
-
Oracle
-
---DML--DDL
-
1-30 A-Za-z0-9_$ # Oracle
-
CREATE TABLE CREATE TABLE [schema.]table
(column datatype [DEFAULT expr] [, ...])
-
DEFAULT
SQL... hiredate DATE DEFAULT SYSDATE, ...
-
Oracle---Oracle Server-
-
CREATE TABLE AS subquery
CREATE TABLE COPY_EMPASSELECT * FROM EMP;
-
ALTER TABLE ALTER TABLE:
-
ALTER TABLE
-
DROP TABLEDROP TABLEDROP ANY TABLEDDLDROP TABLEDROP TABLE COPY_EMP;
-
rename copy_emp to copy2_emp;
-
TRUNCATE TABLE --TRUNCATE,DELETE
-
DDL
-
-NOT NULL-UNIQUE-PRIMARY KEY-FOREIGN KEY-CHECK
-
OracleSYS_Cn
---
-
constraint_name constraint_type
-
NOT NULL
-
UNIQUE
-
PRIMARY KEY PRIMARY KEY
PRIMARY KEY
-
PRIMARY KEY
-
FOREING KEY
INSERT INTO (SELECT EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO FROM EMP WHERE DEPTNO = 20)VALUES (7939, 'SCOTT6', 'CLERK', 7782, '15-1-82', 1400, 0, 10)INSERT INTO (SELECT EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO FROM EMP WHERE DEPTNO = 20 WITH CHECK OPTION)VALUES (7940, 'SCOTT6', 'CLERK', 7782, '15-1-82', 1400, 0, 10) SELECT INSERTUPDATEDELETE JHDML
Oracle DMLSELECT(DML)OracleDMLDML DML DML DDLCREATE TABLEDCL) CREATE TABLE COPY_EMPASSELECT * FROM EMP;rename copy_emp to copy2_emp;TRUNCATEDELETETRUNCATE(DDL)TRUNCATE
OracleSYS_CnnUSER_CONSTRAINTSCREATE TABLE EMP (EMPNO NUMBER(4) CONSTRAINT PK_EMP PRIMARY KEY,ENAME VARCHAR2(10),JOB VARCHAR2(9) NOT NULL,MGR NUMBER(4),HIREDATE DATE constraint hiredate NOT NULL,SAL NUMBER(7,2),COMM NUMBER(7,2),DEPTNO NUMBER(2) CONSTRAINT FK_DEPTNO REFERENCES DEPT);
PRIMARY KEYPRIMARY KEYPRIMARY KEYUNIQUEDEPARTMENTSDEPARTMENT_ID!J PRIMARY KEY DEPT_ID_PKPRIMARY KEYUNIQUEFOREIGN KEY (DEPARTMENT_IDEMPLOYEES (DEPARTMENTS (DEPARTMENT_IDNULLREFERENCES: