[ 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