- 데이터 타입 이해하기
- 데이터베이스와 테이블의 기본 구조
- 테이블 수정 및 업데이트 방법
- 데이터 삽입 및 조회 기초
1. MySQL + HeidiSQL 설치
2. 데이터 타입
문자형 | CHAR(n) |
VARCHAR(n) | |
TEXT |
숫자형 | TINYINT |
SMALLINT | |
MEDIUMINT | |
INT | |
BIGINT | |
DECIMAL(n,d) |
날짜형 | DATE |
DATETIME | |
TIME | |
YEAR |
3. DataBase/ Table
unnamed에서 오른쪽 클릭 > 새로 생성 > DB > test 생성
CREATE, ALTER, DROP, TRUNCATE
CREAT TABLE 테이블명
- customers 테이블 생성
CREATE TABLE customers(
customer_number INT,
customer_name VARCHAR(50),
phone VARCHAR(50)
);
※ NOT NULL : 무조건 데이터를 가지고 있어야 한다는 제약조건
※ 세미콜론 안쪽에 커서 놓고 shift ctrl F9 : 현재 쿼리 실행 / F9: 전체 쿼리 실행
※ 새로고침 > test DB에 customers 생성됨
insert into customers
- customers T 안에 데이터 넣기
INSERT INTO customers
(customer_number, customer_name, phone)
VALUEStest
(1, '김영희', '010-1234-5678'),
(2, '박영희', '010-1234-5678'),
(3, '권영희', '010-1234-5678')
;
DELETE FROM where ~ : D 삭제, where 생략 시 모든 D 삭제
TRUNCATE : T 초기화
UPDATE SET where ~ : T 수정
ALTER TABLE RENAME ~ : T명 변경
ADD ~ : 컬럼명 추가
MODIFY ~ : 컬럼 D 타입 변경
CHANGE ~ : 컬럼명 변경, D 타입 변경
DROP ~ : 컬럼 삭제
4. 데이터를 T에 넣는 방법
- IMPORT CSV FILE TO TABLE
① C: 에 exercise1.csv 파일 생성 (경로에 한글이 포함되지 않게 하도록 ex. 바탕화면)
② CSV 파일 가져오기
인코딩: mb4:UTF-8, 필드 종결자: , , DB : test 로 수정
T : <새 테이블 만들기> → CSV 파일 컬럼대로 내용 작성
가져오기! > 오류: LOCAL에서 D 가져오는 것 허락 안했기 때문
확인: OFF
SHOW GLOBAL VARIABLES LIKE 'local_infile';
허용으로 변경:
SET GLOBAL LOCAL_infile = TRUE;
확인: ON
- 누군가 만든 DB 자체를 가져오기
① 'MYSQLTUTORIALSAMPLE DB'에 접속 > MYSQLSAMPLEDATABASE 다운
② 파일 - 'sql 파일 불러오기' - mysqlsampledatabase
③ F5
④ 'classicmodels' DB 생성 확인
4. 데이터 불러오기 (SELECT * FROM)
select 컬럼명 from
*는 모든 컬럼을 가져오는 것을 뜻함
※ SQL에서 테이블 이름이나 컬럼 이름을 지정할 때 일반적으로 백틱을 사용하거나 따옴표를 전혀 사용하지 않는다
SELECT * FROM newcustomers
;
SELECT customer_name, phone FROM newcustomers
;
ALIAS (별칭)
SELECT 컬럼명 AS 별칭 FROM 테이블명;
- SELECT 구문에서 별칭을 사용하는 경우, 컬럼명 바꾸기 위해 사용
- 서브쿼리에서는 테이블 등에 별칭 부여 가능
컬럼의 합을 별칭으로 표현
SELECT 이름, 국어, 영어, 수학, 영어+수학
FROM ex1
;
SELECT 이름, 국어, 영어, 수학, 영어+수학 AS 영수
FROM ex1
;
LIMIT / OFFSET
: 주로 결과 집합의 특정 부분을 제한하거나 건너뛸 때 사용
LIMIT: 반환되는 레코드 수를 제한하는 데 사용 (처음 5개: LIMIT 5)
SELECT * FROM exercise1 LIMIT 5
;
SELECT * FROM exercise1 LIMIT 2,2
;
SELECT * FROM exercise1 LIMIT 3 OFFSET
1;
DISTINCT : T 안에 같은 데이터 중복되는 경우 제외
SELECT DISTINCT 수학 FROM exercise1
;