반응형
SQL Statement 정리
■ Create 문
- 테이블(Table), 인덱스(Index), 시퀀스(Sequence) 만들기
- 각 객체 만들기
◆ 테이블 만들기
문법
CREATE TABLE 테이블명 (
필드명 필드형 [ not null ]
[ , 필드명 필드형 [ not null ] ]** )
필드명 필드형 [ not null ]
[ , 필드명 필드형 [ not null ] ]** )
(필드형 = 필드 데이터형) (필드 = 컬럼)
필드 데이터형 | 설명 |
char(문자수) | 문자열 |
text(문자수) | 문자열 |
int | 정수 |
real | 실수 |
unit | 부호없는 정수 |
date | 날짜 |
time | 시간 |
money | 고정소수점 두 자리 사용 |
사용예
CREATE TABLE Customer (
CustomerId int not null,
Name char(20) not null,
NickName char(20) not null,
Address text(200))
CustomerId int not null,
Name char(20) not null,
NickName char(20) not null,
Address text(200))
◆ 인덱스 만들기
문법
CREATE [ UNIQUE ] INDEX 인덱스명 ON 테이블명 (
필드명 [ , 필드명 ] ** )
필드명 [ , 필드명 ] ** )
사용예
CREATE UNIQUE INDEX CustomerIndex ON Customer (CustomerId)
CREATE INDEX CustomerIndex2 ON Customer (Name, NickName)
CREATE INDEX CustomerIndex2 ON Customer (Name, NickName)
◆ 시퀀스 만들기
문법
CREATE SEQUENCE ON 테이블명 [ STEP 스텝값 ] [ VALUE 초기값 ]
사용예
CREATE SEQUENCE ON SEQ_TEST STEP 1 VALUE 5
SELECT _seq FROM SEQ_TEST
SELECT _seq FROM SEQ_TEST
■ DROP 문
- 테이블(Table), 인덱스(Index), 시퀀스(Sequence) 없애기
- 테이블이 지원지면 관련된 인덱스와 시퀀스도 함께 없어짐
문법
DROP TABLE 테이블명
DROP INDEX 인덱스명 FROM 테이블명
DROP SEQUENCE FROM 테이블명
DROP INDEX 인덱스명 FROM 테이블명
DROP SEQUENCE FROM 테이블명
사용예
DROP TABLE Customer
DROP INDEX CustomerIndex FROM Customer
DROP SEQUENCE FROM Customer
DROP INDEX CustomerIndex FROM Customer
DROP SEQUENCE FROM Customer
■ INSERT 문
- 테이블에 데이터를 입력
- 필드명을 쓰지않으면 모든 필드에 데이터를 입력
문법
INSERT INTO 테이블명 VALUES (필드값, [필드값])
INSERT INTO 테이블명 (필드명 [, 필드명]) VALUES (필드값 [, 필드값])
INSERT INTO 테이블명 (필드명 [, 필드명]) VALUES (필드값 [, 필드값])
사용예
INSERT INTO Customer ( name, nick_name)
VALUES ( '이기자', '나이겨')
INSERT INTO Customer VALUES ( 1, '이기자', '나이겨', '지구촌 한국 마을')
VALUES ( '이기자', '나이겨')
INSERT INTO Customer VALUES ( 1, '이기자', '나이겨', '지구촌 한국 마을')
■ UPDATE 문
- WHERE 절로 갱신할 데이터 선택해서 선택된 테이블의 데이터를 갱신
- 필드명을 쓰지않으면 모든 필드에 데이터를 입력
문법
UPDATE 테이블명 SET 필드명 = 필드값 [ , 필드명 = 필드값 ]**
WHERE절
WHERE절
사용예
UPDATE Customer SET NickName='나막가' WHERE CustomerId = 111
UPDATE Customer SET NickName='ㅎㅎㅎ' Address = '해왕성촌' WHERE CustomerId = 111
UPDATE Customer SET NickName='ㅎㅎㅎ' Address = '해왕성촌' WHERE CustomerId = 111
■ DELETE 문
- WHERE 절로 삭제할 데이터 선택해서 선택된 테이블의 데이터를 삭제
문법
DELETE FROM 테이블명
WHERE절
WHERE절
사용예
DELETE FROM Customer WHERE CustomerId = 111
컬럼명 변경
ALTER TABLE dept RENAME COLUMN name TO deptName;
컬럼 타입수정
ALTER TABLE dept MODIFY ( deptName varchar2(100) [NULL]|[NOT NULL] );
컬럼 삭제
ALTER TABLE dept DROP COLUMN deptName;
컬럼 추가
ALTER TABLE dept ADD ( address varchar2(100) default '' );
컬럼의 제약조건 삭제
ALTER TABLE userTable DROP PRIMARY KEY:
ALTER TABLE userTable DROP CONSTRAINT userTb_fk_userid;
외래키 추가
ALTER TABLE [테이블이름] ADD CONSTRAINT [외래키이름] FOREIGN KEY ([필드이름]) REFERENCES [참조테이블이름](참조필드이름);
ALTER TABLE userTable ADD CONSTRAINT [userid_fk] FOREIGN KEY (userid) REFERENCES org_user_tb(userid)
■ SELECT 문
http://blueung.tistory.com/category/
데이터검색
이번 장에서 배울 내용은 데이터 검색어인 SELECT구문입니다. SELECT문은 사용자가 사용하게 되는 가장 흔하고 가장 중요한 SQL의 기본 명령어입니다. 그럼 지금부터 SELECT의 간단한 기본 문형을 통하여 사용자가 원하는 데이터를 검색하는 방법에 대하여 알아볼까요? | ||||||||||||||||||||||
|
||||||||||||||||||||||
|
1. select 구문의 기본 문형
기본적으로 하나의 SELECT문이 구성되기 위해서는 SELECT와 FROM절이 반드시 있어야 합니다. |
|||||||||||||||
|
|||||||||||||||
|
|||||||||||||||
SQL 명령어의 작성방법은 다음과 같습니다. | |||||||||||||||
|
|
테이블에 있는 모든 데이터를 검색하고 싶은 경우에는 SELECT뒤에 *를 기술함으로써 나타낼 수 있습니다. | ||||
예제로 익히기 |
|||||
|
|
||||
|
|
S_DEPT 테이블에서 모든 데이터를 출력하시오. | |
ID NAME REGION_ID ----- ------------ ---------- 101 총무부 1 102 영업부 1 103 영업부 2 104 영업부 3 105 영업부 4 106 영업부 5 110 기획부 1 111 기획부 2 112 기획부 3 113 기획부 4 118 인사부 1 11 rows selected. |
|
테이블의 특정 칼럼의 데이터를 검색하고 싶은 경우에는 SELECT절 뒤에 칼럼을 콤마(,)로 구별하여 나열합니다. 이 때 나타나는 순서는 SELECT뒤에 기술한 칼럼의 순서대로 결과가 나타납니다. |
||||||||||||||
예제로 익히기 |
|||||||||||||||
|
|||||||||||||||
|
|||||||||||||||
|
|
데이터를 나타낼 때 산술 연산을 한다거나 출력되는 방식을 변경하고 싶으면 산술 표현식을 사용할 수 있습니다. 산술 표현식에 사용되는 연산자의 종류에는 더하기(+), 빼기(-), 곱하기(*), 나누기(/), 괄호(( ))가 있습니다. |
||||||||
예제로 익히기 |
|||||||||
|
|
||||||||
|
|||||||||
|
|||||||||
|
|
검색결과를 나타낼때 칼럼에 대한 ALIAS를 지정하여, 나타나는 칼럼의 HEADING을 바꾸어 줄 수 있습니다. ALIAS는 특별히 산술연산을 수행하는 경우에 유용하게 사용할 수 있습니다. AS라는 단어는 생략할 수 있으며, ALIAS를 영문으로 부여한 경우에 대소문자를 구별하거나, ALIAS가 두 단어로 구성된 경우는 반드시 이중 따옴표(“ ” )를 써야 합니다. |
|||||
예제로 익히기 |
||||||
|
|
|||||
|
||||||
|
||||||
많은 경우에 칼럼에 대한 HEADING이 사용자가 쉽게 이해하도록 되어 있지 않기 때문에, 칼럼에 대한 ALIAS를 지정하여 검색된 결과를 보다 쉽게 이해하도록 하는데 사용합니다. |
|
합성 연산자(||)를 사용하여 칼럼을 다른 칼럼이나 값과 연결하여 하나의 칼럼으로 출력할 수 있습니다. |
||||||||||||||
예제로 익히기 |
|||||||||||||||
|
|
||||||||||||||
|
|||||||||||||||
|
|||||||||||||||
|
|
SELECT를 한 경우에 기본적으로 테이블에 중복행들이 있더라도 모든 행들에 대하여 결과가 나타납니다. 이 때 DISTINCT라는 키워드를 사용하여 중복되는 행들을 제거할 수 있습니다. |
|||||||||||||||||||||
예제로 익히기 |
|
|||||||||||||||||||||
|
|
|||||||||||||||||||||
|
||||||||||||||||||||||
|
||||||||||||||||||||||
|
||||||||||||||||||||||
|
||||||||||||||||||||||
|
2. 정렬순서의 지정(order by)
ORDER BY 절을 사용함으로써 나타나는 데이터를 정렬할 수 있습니다. 만약 사용자가 데이터가 나타나는 순서를 지정하지 않으면 기본적으로 데이터는 테이블에 입력되어 있는 순서대로 표시되지만, 같은 SELELCT문에 대하여 Oracle Server에서 처음의 검색결과와 다음의 검색결과를 항상 똑같이 보여주는 것은 아닙니다. 따라서 사용자가 검색한 데이터를 특정순서로 지정하고 보고 싶으면 ORDER BY절을 기술하여야 합니다. ORDER BY절은 사용할때는 SELECT구문의 가장 마지막에 위치하여야 합니다. |
||||
|
||||
|
|
예제로 익히기 | |||
|
||||
SQL>SELECT name, salary*18 연봉, title 2 FROM s_emp 3 ORDER BY salary*18 DESC ; |
||||
NAME 연봉 TITLE --------- --------- ------------- 박구곤 90000 사장 이은선 63000 영업부장 김심선 57600 인사부장 손명성 54000 기획부장 서의홍 54000 총무부장 김석우 47700 영업대표이사 . . . 25 rows selected. |
||||
만약 사용자가 데이터가 나타나는 순서를 지정하지 않으면 기본적으로 데이터는 테이블에 입력되어 있는 순서대로 표시되지만, 같은 SELELCT문에 대하여 Oracle8 Server에서 처음의 검색결과와 다음의 검색결과를 항상 똑같이 보여주는 것은 아닙니다. ORDER BY절에는 칼럼명, 표현식, 위치, ALIAS 등 여러 가지 방법으로 순서를 지정할 수 있습니다. 앞의 예제와 똑같은 결과를 얻으면서 표현을 달리하여 나타내 보십시오. |
||||
|
||||
SQL>SELECT name, salary*18 연봉 , title 2 FROM s_emp 3 ORDER BY 연봉 DESC ; |
||||
SQL>SELECT name, salary*18 연봉 , title 2 FROM s_emp 3 ORDER BY 2 DESC ; |
||||
여러 가지 칼럼에 대하여 순서를 지정하고 싶으면 ORDER BY절에 정렬 순서를 주고 싶은 칼럼을 콤마로 구별하여 기술하면 됩니다. 이 때 ORDER BY절에 칼럼을 지정했다고 해서 반드시 그 칼럼이 SELECT뒤에 기술되어야 하는 것은 아닙니다. |
||||
|
||||
SQL>SELECT name, salary*18 연봉 , title 2 FROM s_emp 3 ORDER BY 연봉 DESC, name ; |
||||
NAME 연봉 TITLE -------------- ----- ------------ 박구곤 90000 사장 이은선 63000 영업부장 . . . 김정미 43200 과장 신종필 43200 영업대표이사 이기철 43200 사원 . . . 25 rows selected. |
3. 특정형의 조건 검색(where)
|
사용자는 자신이 원하는 데이터만을 검색하여 보기를 원하는 경우, SELECT구문에서 WHERE절을 기술함으로써 원하는 조건에 맞는 데이터만 나타낼 수 있습니다. SELECT문에 WHERE 절을 기술하는 경우에는 반드시 FROM절 다음에 기술 하여야 합니다. |
|
|
||
|
||
WHERE절을 사용함으로써 조건에 맞는 특정 행을 선택할 수 있습니다. 기본적인 SELECT문은 SELECT와 FROM의 두 키워드만 있으면 구성이 되지만 일반적인 경우에 사용자들이 테이블에 있는 모든 데이터를 다 검색하여 볼 필요는 없습니다. |
|
WHERE절에 사용되는 연산자의 3가지 부류 | |||||||||||||||||||||||||||||
그럼, WHERE절에 사용하는 연산자의 부류를 알아봅시다. | ||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||
|
논리 연산자의 사용의 예를 통해 논리 연산자를 알아봅시다. 우선순위를 알아봅시다. | |||||||||||||
|
||||||||||||||
SQL>SELECT name , salary , dept_id 2 FROM s_emp 3 WHERE (dept_id = 110 OR dept_id =113) 4 AND salary >= 2000 ; |
||||||||||||||
NAME SALARY DEPT_ID ------------- -------- ------ 손명성 3000 110 전지영 2400 110 이상헌 2300 113 최순철 2300 113 이기철 2400 110 |
||||||||||||||
|
||||||||||||||
※ 연산자의 우선순위 | ||||||||||||||
|
|
논리 비교 연산자의 사용예를 살펴봅시다. | ||||||||||||||||||
|
|||||||||||||||||||
SQL> SELECT name, start_date , dept_id 2 FROM s_emp 3 WHERE start_date < '01-JAN-91' ; |
|||||||||||||||||||
NAME START_DATE DEPT_ID -------- ------------- ------- 박구곤 03-MAR-90 118 손명성 08-MAR-90 110 서의홍 07-APR-90 101 김심선 04-MAR-90 118 김정미 14-MAY-90 111 신기웅 07-APR-90 112 . . . 10 rows selected. |
|||||||||||||||||||
|
|
BETWEEN ~ AND ~ | |||
|
|
|||
|
||||
SQL>SELECT name , salary 2 FROM s_emp 3 WHERE salary BETWEEN 1000 AND 1500; |
||||
NAME SALARY ------------ ------ 서정주 1200 이용호 1100 |
||||
위의 문제와 똑같은 결과를 얻는 SELECT 구문은 다음과 같습니다. | ||||
SQL>SELECT name , salary 2 FROM s_emp 3 WHERE salary >= 1000 AND salary <= 1500; |
|
IN | ||||
|
|
||||
SQL>SELECT name, title , dept_id 2 FROM s_emp 3 WHERE dept_id IN (110,113) ; |
|||||
NAME TITLE DEPT_ID -------- ------- --------- 손명성 기획부장 110 전지영 과장 110 이상헌 과장 113 최순철 과장 113 이기철 사원 110 구원상 사원 110 . . . 9 rows selected. |
|||||
위의 문제와 똑같은 결과를 얻는 SELECT 구문은 다음과 같습니다. | |||||
SQL>SELECT name, title , dept_id 2 FROM s_emp 3 WHERE dept_id = 110 OR dept_id = 113 ; |
|
LIKE | |||
|
% 는 0개서부터 여러 개까지의 문자열을 나타내는 와일드카드 (wildcard)이고 _ 는 단 하나의 문자를 나타내는 와일드카드입니다. 와일드 카드를 일반문자처럼 쓰고 싶은 경우에는 ESCAPE 옵션을 사용합니다. |
|||
|
||||
WHERE name LIKE '%X\_Y%' ESCAPE '\' | ||||
|
||||
SQL>SELECT name, start_date , title 2 FROM s_emp 3 WHERE start_date LIKE '%91' ; |
||||
NAME START_DATE TITLE ----------- ------------ ------------- 이은선 17-JUN-91 영업부장 전지영 18-JAN-91 과장 최순철 27-FEB-91 과장 김석우 18-FEB-91 영업대표이사 신종필 09-OCT-91 영업대표이사 서정주 09-FEB-91 사원 . . . 11 rows selected. |
||||
위의 문제와 똑같은 결과를 얻는 SELECT 구문은 다음과 같습니다. | ||||
SQL>SELECT name, start_date , title 3 WHERE star BETWEEN '01-JAN-91' AND '31-DEC-91' ; |
|
IS NULL | ||||
|
|
||||
SQL>SELECT id , name , credit_rating 2 FROM s_customer 3 WHERE sales_rep_id IS NULL ; |
|||||
ID NAME CREDIT_RA ------ ------------- ------- 207 고정환 양호 |
|
어떤 경우에는 사용자가 원치 않은 데이터를 조건식을 통하여 제외하는 경우가 있습니다. 이 때 각 연산자에 부정식을 써서 데이터를 제거할 수 있습니다. |
||||||||||||||||||
|
|||||||||||||||||||
|
4. SQL*PLUS의 기능
|
SQL*PLUS 명령어는 Oracle 데이터베이스와 연관되어 작용하는 명령어는 아니며, 사용자가 보다 효율적으로 SQL을 활용할 수 있도록 환경을 제공하는 Oracle에서 만든 일종의 TOOL입니다. 그럼 지금부터 다양한 SQL*PLUS명령어를 활용하여 명령어를 편집하거나, 환경을 설정하는 각 종 기능을 살펴볼까요? |
||||||||||
SQL*PLUS 명령어의 기본부류는 다음과 같습니다. | |||||||||||
|
|||||||||||
그럼 지금부터 하나씩 자세히 알아볼까요? |
|
버퍼에 있는 명령어 편집하기 | |||||||||||||||||
종류에는 다음과 같은 것들이 있습니다. | ||||||||||||||||||
|
||||||||||||||||||
편집 명령어에 대한 사용의 예 | ||||||||||||||||||
SQL>SELECT name , dept-id 2 FROM s_emp ; SELECT name , dept-id * ERROR at line 1: ORA-00904: invalid column name SQL>c/-/_ 1* SELECT name , dept_id SQL>list 1 SELECT name , dept_id 2* FROM s_emp SQL>run 1 SELECT name , dept_id 2* FROM s_emp NAME DEPT_ID --------------- ------- 박구곤 118 손명성 110 이은선 102 서의홍 101 김심선 118 전지영 110 . . . 25 rows selected. |
|
파일에 있는 명령어 편집하기 | |||||||||||
종류에는 다음과 같은 것들이 있습니다. | ||||||||||||
|
||||||||||||
편집 명령어에 대한 사용의 예 | ||||||||||||
SQL>SELECT name,salary 2 FROM s_emp ; SQL> save a Created file a SQL>!vi a.sql SELECT name,salary FROM s_emp / ~ "a.sql" 3 줄, 32 자 vi 편집 명령어를 이용하여 WHERE salary >= 3000을 추가한후 저장하고 나옴 SQL> start a NAME SALARY ------------- --------- 박구곤 5000 손명성 3000 이은선 3500 서의홍 3000 김심선 3200 |
|
SQL*PLUS를 사용한 환경설정은 SET명령어로 기술하게 됩니다. | ||||||||||||||||
문형은 다음과 같습니다. | |||||||||||||||||
|
|||||||||||||||||
환경변수의 종류는 다음과 같은 것들이 있습니다. | |||||||||||||||||
|
|||||||||||||||||
|
|||||||||||||||||
SET 명령어에 대한 사용의 예 | |||||||||||||||||
SQL>SET HEADING OFF SQL>SET COLSEP '+' SQL>SET TIMING ON SQL>SET PAUSE '엔터키를 누르세요' SQL>SELECT name, dept_id 2 FROM s_emp ; 엔터키를 누르세요 박구곤 + 118 손명성 + 110 이은선 + 102 . . . 안은경 + 103 김석우 + 104 엔터키를 누르세요 박성규 + 105 신종필 + 106 이기철 + 110 . . . 25 rows selected. Elapsed: 00:00:19.70 |
|
칼럼의 HEADING나 폭, 표시형식을 바꾸는 경우에는 COLUMN명령어를 사용할 수 있습니다. | ||||||||||||||||
문형은 다음과 같습니다. | |||||||||||||||||
|
|||||||||||||||||
옵션의 종류는 다음과 같습니다. | |||||||||||||||||
|
|||||||||||||||||
COLUMN명령어에 대한 사용의 예 | |||||||||||||||||
SQL>COL name HEADING ‘사원이름’ FORMAT A10 SQL>COL salary FORMAT $9,999,999 SQL>COL salary CLEAR |
|||||||||||||||||
|
|
&변수 사용 | ||||||||||||||||||
사용자가 원하는 데이터를 사용할 때마다 입력하고 싶은 경우에 치환변수를 사용할 수 있는데 사용 시에는 &기호를 이용합니다. | |||||||||||||||||||
&기호의 사용의 예 | |||||||||||||||||||
SQL>SELECT id,name,dept_id 2 FROM s_emp 3 WHERE dept_id = Enter value for 부서번호: 112 old 3: WHERE dept_id = &부서번호 new 3: WHERE dept_id = 112 ID NAME DEPT_ID ------ ----------- ------- 8 신기웅 112 20 윤정숙 112 21 장현철 112 |
|||||||||||||||||||
|
|
ACCEPT를 사용한 변수 | |||||||||
사용자가 SELECT구문을 사용하기 전에 미리 변수를 설정해 놓는 경우에 ACCEPT를 사용할 수 있습니다. | ||||||||||
문형은 다음과 같습니다. | ||||||||||
|
||||||||||
|
||||||||||
ACCEPT에 대한 사용의 예 | ||||||||||
SQL>ACCEPT p_salary NUMBER PROMPT ‘급여 입력 :’ SQL>ACCEPT pswd CHAR PROMPT 'Password : ' HIDE |
|
그 외의 다른 SQL*PLUS명령어는 다음과 같은 것들이 있습니다. | ||||||
|
|||||||
DESC는 특정 테이블에 대한 칼럼명, 데이터 타입 등을 표시하는 SQL*PLUS명령어로 다음과 같이 사용할 수 있습니다. |
|||||||
SQL> DESC s_dept Name Null? Type ---------- ---------- ------- ID NOT NULL NUMBER(7) NAME NOT NULL VARCHAR2(25) REGION_ID NUMBER(7) |
|||||||
HELP명령어를 이용하여 도움말을 지원받을 수 있는데 어떤 항목들이 제공되는지 전체를 참조하는 명령어는 HELP TOPICS입니다. (Oracle7에서는 HELP INDEX입니다.) |
|||||||
help topics | |||||||
SQL>help select | |||||||
|
|||||||
SQL> help select SELECT ------ Use this command to retrieve data from one or more tables, object tables, views, object views, or snapshots. SELECT [ DISTINCT | ALL ] { * | { [ schema. ]{ table | view | snapshot } .* | expr [ [ AS ] c_alias ] } [, { [ schema. ]{ table | view | snapshot } .* | expr [ [ AS ] c_alias ] } ] ... FROM { [ schema. ] { table [ PARTITION ( partition_name ) | @dblink ] | [ view | snapshot ] [ @dblink ] } [ t_alias ] | [ THE ] ( subquery ) [ t_alias ] | TABLE ( nested_table_column ) . . . |
|
SELECT 기본 구문의 4가지 절 | |||||||||||||
|
||||||||||||||
WHERE절에서 사용하는 연산자의 종류 | ||||||||||||||
|
사원테이블에서 각 직책들이 무엇이 있는지를 나타내시오. 단, 같은 직책에 대해서는 한번만 표시하시오. |
|||
SELECT DISTINCT title FROM s_emp; |
|||
사원테이블에서 커미션을 받는 사원에 대한 사번, 급여, 커미션을 나타내시오. 단, 사번에 대한 오름차순 정렬을 하시오. |
|||
SELECT id,salary,commission_pct FROM s_emp WHERE commission_pct IS NOT NULL ORDER BY id ; |
|||
부서번호가 110번이나 113번인 사원들중에서 급여가 200만원이상인 사람에 대한 이름, 직책, 급여, 부서번호를 나타내시오. |
|||
SELECT name , title , salary , dept_id FROM s_emp WHERE dept_id IN (110,113) AND salary >= 2000 ; |
|||
DISTINCT의 Keyword의 역할로 옳은 것은? | |||||||||
테이블에서 중복된 행을 구별한다. | |||||||||
칼럼이 가진 유일한 값을 구별한다. | |||||||||
테이블에서 중복된 칼럼을 제거한다. | |||||||||
테이블에서 중복된 행을 제거한다. | |||||||||
|
|||||||||
다음과 같은 SQL문이 있다. | |||||||||
SELECT id , (2*cost)/(2*sale_price) +10 price FROM product ; 만약 product 테이블에 있는 cost와 sale_price 칼럼이 1보다 다 크다면 이 경우 ()를 제거하면 그 결과는 어떻게 될까? |
|||||||||
문장은 Syntax eror가 발생한다. | |||||||||
아까와 같은 결과값이 나온다. | |||||||||
price 값은 더 작게 계산된다. | |||||||||
price값은 더 크게 계산된다. | |||||||||
|
|||||||||
다음 중 결과값이 다르게 출력되는 하나는 어느 것인가? | |||||||||
WHERE dept_id =110 OR dept_id = 113 AND salary >= 2000 | |||||||||
WHERE (dept_id =110 OR dept_id = 113) AND salary >= 2000 | |||||||||
WHERE dept_id =110 AND salary >= 2000 OR dept_id = 113 AND salary >= 2000 |
|||||||||
WHERE dept_id IN(110, 113) AND salary >= 2000 | |||||||||
|
|||||||||
다음과 같은 SELECT문의 결과 출력되는 데이터는? | |||||||||
SELECT name FROM s_emp WHERE name LIKE '_a%'; | |||||||||
a로 시작하는 이름 | |||||||||
a나 A로 시작하는 이름 | |||||||||
두번째 문자가 a인 이름 | |||||||||
위치에 상관없이 a를 포함하는 이름 | |||||||||
|
|||||||||
다음 중 S_EMP 테이블에서 commission_pct 칼럼이 null인 경우만 검색하는 경우 옳은 것은 ? |
|||||||||
SELECT name, commission_pct FROM s_emp WHERE commission_pct = NULL ; |
|||||||||
SELECT name, commission_pct FROM s_emp WHERE commission_pct IS NULL ; |
|||||||||
SELECT name, commission_pct FROM s_emp WHERE commission_pct = '' ; |
|||||||||
SELECT name, commission_pct FROM s_emp WHERE commission_pct = 0 ; |
|||||||||
|
|||||||||
다음 SELECT 문장에서 Column Header로 출력되는 것은? | |||||||||
SELECT id , name "Employee" FROM s_emp; | |||||||||
id, employee | |||||||||
Id, Employee | |||||||||
ID, Employee | |||||||||
ID, EMPLOYEE | |||||||||
|
|||||||||
select a||' ' ||b||' '||c "Item Amount" 인 경우의 헤더의 개수는 ? | |||||||||
1개 | |||||||||
2개 | |||||||||
3개 | |||||||||
4개 | |||||||||
|
|||||||||
다음과 같은 문장에서 ORDER BY 절과 같은 결과를 갖는 구문은? | |||||||||
SELECT id, name, salary FROM s_emp ORDER BY id, name, salary DESC; |
|||||||||
ORDER BY 1 DESC, 2,3 | |||||||||
ORDER BY 1,2, DESC 3 | |||||||||
ORDER BY 1 ASC ,2 ,3 | |||||||||
ORDER BY 1 ASC , 2, 3 DESC | |||||||||
|
반응형
'DataBase' 카테고리의 다른 글
[Sqlite] 1. Sqlite 특징 (0) | 2011.04.08 |
---|---|
[Sqlite] 0. SQLite 소개 (0) | 2011.04.08 |
특정조건에 해당하는 앞에서 원하는 만크만 얻어오기 (0) | 2011.03.27 |
[SQLite] PRIMARY KEY 중복 생성 (0) | 2011.03.04 |
데이터베이스 정규화 (0) | 2009.10.31 |
댓글