03-1 기본 중에 기본 SELECT ~ FROM ~ WHERE
- 데이터베이스 만들기
- DROP DATABASE db_name
- 데이터베이스를 삭제하는 문장
- CREATE DATABASE db_name
- 데이터베이스를 새로 만드는 문장
- USE db_name;
- 사용할 데이터베이스를 지정하는 문장
- 쿼리를 새로 열거나 다른 DB를 사용하겠다고 명시하지 않으면 해당 DB에서 계속 수행된다.
- DROP DATABASE db_name
- 주석
- — (하이픈 2개 연속)
- 하이픈 2개 이후에 한 칸을 띄우고 설명 작성하기
- 테이블 생성하기
- CREATE TABLE table_name ( column_name 데이터 형식 AUTO_INCREMENT NOT NULL PRIMARY_KEY, … );
- 테이블 생성하는 문장
- AUTO_INCREMENT
- 순번 자동 입력 (1, 2, 3… 자동 증가)
- CREATE TABLE table_name ( column_name 데이터 형식 AUTO_INCREMENT NOT NULL PRIMARY_KEY, … );
- 데이터 입력하기
- INSERT INTO table_name VALUES (’내용’, 1);
- 데이터 입력하는 문장
- CHAR, VARCHAR, DATE 형은 작은 따옴표로 값을 묶어주기
- INT 형은 작은 따옴표 없이 그냥 넣기
- AUTO_INCREMENT 형은 NULL 값을 넣어주면 자동으로 순번 증가하면서 입력
- INSERT INTO table_name VALUES (’내용’, 1);
- 데이터 조회하기
- SELECT * FROM table_name;
- 해당 테이블 데이터 전체 조회
-
- 는 모든 것을 의미
- 데이터 조회 기초 문장
SELECT column_name FROM table_name WHERE 조건식 GROUP BY column_name HAVING 조건식 ORDER BY column_name LIMIT 숫자
- SELECT column_name FROM table_name;
- 해당 열 데이터 가져오기
- 여러 개의 열을 가져오고 싶으면 콤마로 구분하기
- 열 이름에 별칭을 정하고 싶으면 열 이름 다음에 지정하고 싶은 별칭 입력, 별칭에 공백 있으면 큰 따옴표로 묶어서 작성
- SELECT column_name FROM table_name WHERE 조건식;
- 결과에 특정 조건을 추가해서 출력
- 조건식은 열 이름 = 값 의 형태로 값이 문자형은 작은 따옴표로 묶어주고, 숫자는 필요없음
- SELECT * FROM table_name;
- 조건식
- 관계 연산자
- , <, ≥, ≤, =
- 숫자로 표현된 데이터의 범위 지정
- ex) WHERE column_name ≤ 166;
- , <, ≥, ≤, =
- 논리 연산자
- AND, OR
- ex) WHERE column_name ≥ 165 AND column_name2 > 6;
- AND, OR
- BETWEEN ~ AND
- 범위에 있는 값 구하기
- ex) WHERE column_name BETWEEN 160 AND 170; (160~170인 열 구하기)
- IN()
- 문자형 데이터 중 하나에 포함되는지 비교할 때 사용 (OR)
- ex) WHERE column_name IN(’경기’, ‘서울’, ‘강릉’);
- LIKE
- 문자열의 일부 글자 검색시 사용
- %는 무엇이든 허용, _는 한 글자와 매치
- ex) WHERE column_name LIKE ‘__나라’;
- 관계 연산자
- 서브 쿼리
- SELECT 안에 또 다른 SELECT가 들어가는 것
- 조건식 작성할 때 사용
- ex) WHERE column_name > (SELECT column_name FROM table_name WHERE column_name2 = ‘대한민국’);
03-2 좀 더 깊게 알아보는 SELECT 문
- ORDER BY
- 결과 출력 순서 조절
- ORDER BY column_name 형태
- 기본값은 ASC(오름차순), 내림차순은 DESC 입력
- 콤마로 여러 개의 열 정렬 지정 가능, 첫 번째 정렬 동일 시 다음 열로 정렬
- LIMIT
- 출력하는 개수 제한, 중간부터 출력도 가능
- LIMIT 시작, 개수 형태
- ex) LIMIT 0, 3 (0번째부터 3건)
- ex) LIMIT 3, 2; (3번째부터 2건)
- DISTINCT
- 조회된 결과에서 중복된 데이터 1개만 남긴다.
- DISTINCT를 열 이름 앞에 써주면 된다.
- SELECT DISTINCT column_name FROM table_name 형태
- GROUP BY
- 데이터를 그룹화 해주는 기능
- 집계 함수
- GROUP BY와 함께 사용
- 함수 종류
- SUM(), AVG(), MIN(), MAX(), COUNT(), COUNT(DISTINCT)
- SELECT SUM(column_name) FROM table_name GROUP BY column_name2; 형태
- 별칭 사용 같이 하면 좋음 (큰 따옴표)
- COUNT(*)은 모든 행의 개수를 세고, COUNT(column_name)은 NULL 제외한 행 개수를 센다.
- HAVING
- 집계 함수에 조건을 제한하는 것, GROUP BY 절 다음에 나와야 한다.
- 조건으로 집계 함수도 사용 가능
- ex) HAVING SUM(columm1*column2) > 1000;
03-3 데이터 변경을 위한 SQL 문
- INSERT
- 데이터 입력
- INSERT INTO table (column1, column2 …) VALUES (값1, 값2); 형식
- 열은 생략이 가능하나, 값을 넣을 때 테이블 정의했던 열 순서와 개수와 동일해야 한다.
- AUTO_INCREMENT
- 열을 정의할 때 1부터 증가하는 값을 자동 입력
- 해당 열은 꼭 PRIMARY KEY로 지정해야 한다.
- ex) CREATE TABLE table_name (column INT AUTO_INCREMENT PRIMARY KEY);
- 데이터 입력 시 해당 열은 NULL 값으로 넣으면 자동으로 값이 넣어진다.
- 어느 숫자까지 증가 되었는지 확인 시 SELECT LAST_INSERT_ID(); 로 확인
- 시작 값 변경 시 ALTER TABLE table_name AUTO_INCREMENT=시작값; 으로 변경
- 증가 값 변경 시 SET @@auto_increment_increment=증가값; 으로 변경
- 시스템 변수
- MySQL에서 자체적으로 가지고 있는 설정값이 저장된 변수
- 변수명 앞에 @@가 붙고, 값 확인 시 SELECT @@시스템변수 로 실행하기
- 시스템 변수 종류가 알고 싶으면 SHOW GLOBAL VARIABLES 실행하기
- INSERT INTO ~ SELECT
- 다른 테이블의 데이터 값을 가져와서 해당 테이블에 한번에 값을 입력
- INSERT INTO table_name (column1, column2) SELECT column3, column4 FROM table_name2; 형태
- DESC table_name;
- 해당 테이블의 구조 확인
- UPDATE
- 데이터 수정
- UPDATE table_name SET column1=값1, column2=값2, … WHERE 조건식;
- WHERE 절 생략시 테이블의 모든 행 값이 변경되므로 주의, 숫자 단위 변경할 때 정도 사용
- ex) UPDATE table SET column_name = column_name / 1000;
- DELETE
- 행 데이터 삭제
- DELETE FROM table WHERE 조건식; 형태
- 상위 몇 건만 삭제하려면 LIMIT 사용
- 대용량 테이블의 삭제
- DELETE
- 대용량 테이블에서는 삭제가 오래 걸린다.
- DROP
- 속도가 빠르고 테이블 자체를 삭제한다.
- TRUNCATE
- DELETE와 동일한 효과를 내지만 속도가 빠르다.
- 빈 테이블을 남긴다. (테이블의 구조를 남긴다.)
- DELETE
미션
- 기본 미션
- p.138의 확인 문제 2번 풀고 인증하기
- 다음 보기 중에서 각 문항의 빈칸에 들어갈 것을 고르세요.
- LIKE, DESC, ORDER BY, DISTINCT, ASC, AND, OR, ≥, LIMIT
- SELECT * FROM member ORDER BY height;
- SELECT * FROM member LIMIT 5, 2;
- SELECT DISTINCT phone1 FROM member;
- p.138의 확인 문제 2번 풀고 인증하기
- 선택 미션
- 데이터 입력, 삭제하는 기본 형식 작성하기
- 데이터 입력
- INSERT INTO table_name (column_name1, column_name2) VALUES (값1, 값2);
- 데이터 삭제
- DELETE FROM table_name WHERE 조건식(ex. city_name LIKE ‘New%’);
- 데이터 입력
- 데이터 입력, 삭제하는 기본 형식 작성하기
'SQL' 카테고리의 다른 글
혼자 공부하는 SQL / Chapter 07 스토어드 프로시저 (0) | 2024.02.09 |
---|---|
혼자 공부하는 SQL / Chapter 06 인덱스 (0) | 2024.02.04 |
혼자 공부하는 SQL / Chapter 05 테이블과 뷰 (1) | 2024.01.29 |
혼자 공부하는 SQL / Chapter 04 SQL 고급 문법 (0) | 2024.01.21 |
혼자 공부하는 SQL / Chapter 01~02 데이터베이스와 SQL, 실전용 SQL 미리 맛보기 (2) | 2024.01.03 |