TIL#62 Database 쿼리문

Dasom·2020년 9월 12일
0

database

목록 보기
1/15

DDL (Data Define Language)

데이터베이스의 Schema(형태)를 정의할 수 있는 쿼리문.CREATE , ALTER , DROP 이 대표적인 쿼리문이다. 데이터를 구성하는 논리적인 구조(데이터베이스 또는 테이블)를 추가하고 수정하고 삭제할 수 있다. 또한 메타데이터(데이터에 대한 데이터)를 다루는 쿼리문이라고 할 수 있다.

CREATE

CREATE DATABASE mysql_practice; mysql_practice 라는 데이터베이스를 생성
SHOW DATABASES; 현재 MySQL에 저장되어 있는 데이터베이스를 보는 명령어

USE mysql_practice; 데이터베이스에 접근하는 명령어
SHOW tables; 현재 데이터베이스 안에 저장되어 있는 테이블들을 보는 명령어

artists table 생성


id INT NOT NULL AUTO_INCREMENT id 칼럼을 정수, Null을 허락하지 않으며 값을 자동증가하게 설정
name VARCHAR(100) NOT NULL name 칼럼을 100의 크기를 가지는 문자열, Null을 허락하지 않음
PRIMARY KEY (id) 이 테이블의 PK를 id로 설정

DESC artists; Description 을 축약해놓은 명령어. 테이블의 정보를 보여준다

songs table 생성


외래키를 사용할 때는 FOREIGN KEYREFERENCES 두가지 옵션을 사용해서 원하는 컬럼을 외래키로 만들고 참조할 테이블과 컬럼을 순서대로 적어준다.

artist_id 를 보면 Key에 Mul 이 들어있다. 다른 테이블의 기본키를 참조하는 외래키는 Multiple이라는 뜻으로 Mul 로 쓰이며 여러 행이 동일한 값을 가질 수 있다는 것을 의미한다.

DML(Data Manipulation Language)

데이터를 조작하는 쿼리문들을 뜻한다. INSERT , UPDATE , DELETE 가 대표적인 쿼리문들이다.

INSERT


INSERT INTO atrists (name) VALUES ('Radio Head');
INSERT INTO 뒤에는 테이블 이름을 쓰고 컬럼값은 소괄호로 감싸준다. VALUES 뒤에는 실제로 넣을 값을 소괄호로 감싸준다.

SELECT * FROM artists; 테이블의 모든 컬럼을 조회한다는 의미이다. 여기서는 artists 테이블의 모든 컬럼을 조회한다.

UPDATE

테이블에 들어간 데이터를 수정하기 위해서 사용한다.

UPDATE 다음에 수정할 테이블을 기입하고 SET 다음에 새롭게 업데이트할 데이터를 넣는다. WHERE 는 프로그래밍 언어의 if 문이라 생각하면 된다. artists 테이블의 id가 2인 데이터에 대해서 'Pink Floyd'로 UPDATE를 하겠다는 의미이다.

DELETE

테이블의 이름과 WHERE문으로 조건을 걸어준다.

DQL(Data Query Language)

데이터를 쿼리하는데 사용되는 SQL문을 뜻한다. Query의 사전적 의미는 묻다, 질문하다 라는 뜻이다. 데이터베이스 서버에게 데이터를 달라고 요청하는 것 으로 해석할 수 있다. 실제로 프론트/백엔드 간의 소통을 위한 API를 구현할 때, 데이터베이스에 저장된 데이터를 쿼리해서 가져온 데이터를 응답으로 보내주는 경우가 많다.

SELECT

SELECT 문이 대표적인 쿼리문이다. 테이블에 저장된 데이터를 꺼내오는 핵심 쿼리문이다.

artists 테이블과 1:N 관계이다. artists_id 에는 해당하는 artists의 id 값을 넣어주었다. id 3번값인 '새소년'은 Delete 되었기 때문에 새로 'MC the max' 를 추가하여서 id 4가 되었다.

원하는 컬럼만 표시해 달라는 쿼리문도 작성할 수 있다.
SELECT songs.title FROM songs; songs테이블에 들어간 노래제목만 뽑아내고 싶을때 쓴다.

SELECT songs.title, songs.lyrics FROM songs; 제목과 가사를 함께 보고 싶을 때 쓴다.

WHERE

WHERE문은 조건을 걸어줄 수 있다.
SELECT songs.lyrics FROM songs WHERE songs.title = '별';
별이라는 노래의 가사가 궁금할 때 쓴다.

WHERE + LIKE

LIKE 문은 특수문자를 사용해서 문자열을 검색한다.

SELECT songs.title, songs.lyrics FROM songs WHERE songs.lyrics LIKE '%좋은기억만%';
songs.lyrics 에 '좋은 기억만' 이 포함된 데이터를 쿼리

SELECT songs.title, songs.lyrics FROM songs WHERE songs.title LIKE 'All%';
songs.title 이 'All' 로 시작하는 데이터 쿼리

SELECT songs.title, songs.lyrics FROM songs WHERE songs.lyrics LIKE '%in there?)';
songs.lyrics 에 'in there?)'로 끝나는 데이터 쿼리

profile
개발자꿈나무🌲

0개의 댓글