실습환경
: Windows 10 Pro, Oracle DB 11g Express Edition , Oracle SQL Developer,
예제 예시: 홍형경 저 - 누구나 쉽게 SQL
CREATE TABLE emp_table ( emp_id NUMBER NOT NULL, emp_name VARCHAR2(100) NOT NULL, gender VARCHAR2(10) NULL, age NUMBER NULL, hire_date DATE NULL, etc VARCHAR2(300) NULL, PRIMARY KEY (emp_id) );
INSERT INTO 테이블 명
VALUES (값1, 값2, ...);INSERT INTO emp_table (emp_id, emp_name, gender, age, hire_date) VALUES (1, '홍길동', '남성', 33, '2018-01-01'); INSERT INTO emp_table (emp_id, emp_name, gender, age, hire_date) VALUES (2, '김유신', '남성', 44, '2018-02-01'); INSERT INTO emp_table (emp_id, emp_name, gender, age, hire_date) VALUES (3, '강감찬', '남성', 55, '2018-03-01'); INSERT INTO emp_table (emp_id, emp_name, gender, age, hire_date) VALUES (4, '신사임당', '여성', 66, '2018-04-01'); COMMIT;
SELECT 컬럼1, 컬럼2, ...
FROM 테이블명
WHERE 조건
ORDER BY 정렬순서(ASC(기본 오름차순), DESC);SELECT * -- 테이블 확인 FROM emp_table;
SELECT * FROM subway_statistics WHERE station_name = '잠실(216)' AND (boarding_time = 7 OR boarding_time = 9);
SELECT * FROM subway_statistics WHERE station_name LIKE '잠실%'; -- '잠실'로 시작하는 단어를 조회 SELECT * FROM subway_statistics WHERE station_name LIKE '잠실(%'; -- 정확히 '잠실'만 찾음
SELECT * FROM subway_statistics WHERE station_name = '잠실(216)' AND boarding_time IN (7, 9); -- IN연산자는 검색할 값을 괄호로 묶어 콤마로 구분한다.
SELECT * FROM subway_statistics WHERE station_name LIKE '잠실%' AND passanger_number BETWEEN 500 AND 1000;
: 오름차순(ASC, 생략가능), 내림차순(DESC)
SELECT * FROM subway_statistics ORDER BY station_name; -- 가나다 순 정렬 됨.
SELECT * FROM subway_statistics WHERE station_name LIKE '잠실%' ORDER BY 1, 2, 3, 4, 5, 6; -- 1번 컬럼, 즉 seq_id 오름차순 정렬. 가장 먼저 명시한 컬럼 우선순위. 여기서 첫번째 컬럼이 키값이 아니고 중복 값이 존재한다면 ORDER BY 절에 두번째로 명시한 2번 컬럼 기준으로 정렬됨. 여기선 사실 ORDER BY 1로 명시해도 같은 결과를 얻을 수 있음.
내용이 보기 편합니다. 감사해요!!