[ DB / Oracle ] 데이터 조회 (SELECT)
2024. 1. 14. 15:04ㆍ· LANGUAGE/└ Database
환경 : DBeaver
(참고) 데이터 조회에 사용될 테이블 및 데이터
-- Create a new sequence and table
CREATE SEQUENCE music_seq START WITH 1;
CREATE TABLE music (
music_id NUMBER PRIMARY KEY, --번호
music_title VARCHAR2(200) NOT NULL CHECK(REGEXP_LIKE(music_title, '^[^%^]+$')), --음악 제목
artist_name VARCHAR2(100) NOT NULL, --가수 이름
release_date char(10) NOT NULL, -- 발매일
genre VARCHAR2(50) NOT NULL, -- 장르
duration_minutes NUMBER(3) NOT NULL, -- 노래 길이
album_name VARCHAR2(150), -- 앨범 제목
price NUMBER(5,2) NOT NULL CHECK(price >= 0) --가격
);
-- Optionally delete existing data
-- DELETE FROM music;
DROP SEQUENCE music_seq;
DROP TABLE music;
-- Insert data (8 ea)
INSERT INTO music(music_id, music_title, artist_name, release_date, genre, duration_minutes, album_name, price) VALUES (music_seq.nextval, 'Bohemian Rhapsody', 'Queen', '1975-10-31', 'Rock', 6, 'A Night at the Opera', 1.99);
INSERT INTO music(music_id, music_title, artist_name, release_date, genre, duration_minutes, album_name, price) VALUES (music_seq.nextval, 'Billie Jean', 'Michael Jackson', '1983-01-02', 'Pop', 4, 'Thriller', 1.49);
INSERT INTO music(music_id, music_title, artist_name, release_date, genre, duration_minutes, album_name, price) VALUES (music_seq.nextval, 'Shape of You', 'Ed Sheeran', '2017-01-06', 'Pop', 3, '÷', 1.29);
INSERT INTO music(music_id, music_title, artist_name, release_date, genre, duration_minutes, album_name, price) VALUES (music_seq.nextval, 'Stairway to Heaven', 'Led Zeppelin', '1971-11-08', 'Rock', 8, 'Led Zeppelin IV', 2.49);
INSERT INTO music(music_id, music_title, artist_name, release_date, genre, duration_minutes, album_name, price) VALUES (music_seq.nextval, 'Dancing Queen', 'ABBA', '1976-08-15', 'Disco', 4, 'Arrival', 1.79);
INSERT INTO music(music_id, music_title, artist_name, release_date, genre, duration_minutes, album_name, price) VALUES (music_seq.nextval, 'Sweet Child o'' Mine', 'Guns N'' Roses', '1987-06-15', 'Rock', 5, 'Appetite for Destruction', 2.29);
INSERT INTO music(music_id, music_title, artist_name, release_date, genre, duration_minutes, album_name, price) VALUES (music_seq.nextval, 'Despacito', 'Luis Fonsi ft. Daddy Yankee', '2017-01-13', 'Reggaeton', 3, 'Vida', 1.99);
INSERT INTO music(music_id, music_title, artist_name, release_date, genre, duration_minutes, album_name, price) VALUES (music_seq.nextval, 'Imagine', 'John Lennon', '1971-10-11', 'Rock', 3, 'Imagine', 1.49);
(+) 발매일을 char(10) 로 받아 기입하였음
[ 전체 데이터 조회 ]
SELECT * FROM music;
SELECT music.* FROM music;
(+) 테이블명.* 로 조회하는 것이 좋음
→ 테이블이 많아질 수록 조회하는 것이 어려워지기 때문에, 검색하고자 하는 테이블 명을 기입해주는 것을 추천
[ 노래 제목만 조회 ]
SELECT music_title FROM music;
(+) 해당 칼럼명을 입력
[ 노래 제목과 노래 길이만 조회 ]
SELECT music_title, duration_minutes FROM music;
(+) ,(콤마)를 이용하여 여러개의 칼럼을 조회할 수 있음
[ 항목 계산 가능 ]
- 노래 제목과 노래 제목의 길이(글자 수)를 조회
SELECT music_title, LENGTH(music_title) FROM music;
(+) 타이틀의 제목과 제목의 길이 출력, LENGTH() 사용
새로운 LENGTH(MUSIC_TITLE) 이 생성 되었음
- 별칭 추가
SELECT music_title "노래 제목" FROM music;
(+) 별칭에 띄어쓰기를 포함하는 경우 " "(따옴표) 사용
띄어쓰기 없는 경우 그냥 입력 가능
- 발매 년도만 조회하고 싶은 경우
SELECT
music_title "노래 제목",
SUBSTR(release_date, 1, 4) "발매 년도"
FROM music;
(+) SUBSTR(항목, 시작위치, 글자 수) 를 사용
- 시작은 0이 아닌 1부터
- to_date()를 사용한 경우 년도를 추출하는 명령어를 사용하면 됨. (EXTRACT() 사용)
개인 공부 기록용입니다:)
728x90
'· LANGUAGE > └ Database' 카테고리의 다른 글
[ DB / Oracle ] 데이터 조회(SELECT)에 조건(WHERE) 추가(2) (0) | 2024.01.16 |
---|---|
[ DB / Oracle ] 데이터 조회(SELECT)에 조건(WHERE) 추가 (2) | 2024.01.15 |
[ DB / Oracle ] sql 실습 (1) | 2024.01.13 |
[ DB / Oracle ] 날짜 데이터 (date / timestamp) (0) | 2024.01.13 |
[ DB / Oracle ] 시퀀스 옵션 'NOCACHE' (0) | 2024.01.12 |