본문 바로가기
SQL/MCM SQL 입문

1. 기초 데이터 타입 및 테이블 관리

by JeoK 2024. 1. 5.
  • 데이터 타입 이해하기
  • 데이터베이스와 테이블의 기본 구조
  • 테이블 수정 및 업데이트 방법
  • 데이터 삽입 및 조회 기초

1. MySQL + HeidiSQL 설치

2. 데이터 타입

문자형 CHAR(n)
VARCHAR(n)
TEXT
숫자형 TINYINT
SMALLINT
MEDIUMINT
INT
BIGINT
DECIMAL(n,d)
날짜형 DATE
DATETIME
TIME
YEAR

3. DataBase/ Table

DB 생성

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 생성됨

test DB > customers T
customers T

 

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 ~  : 컬럼 삭제

T 외적인 것을 수정하는 ALTER

4. 데이터를 T에 넣는 방법

  • IMPORT CSV FILE TO TABLE

① C: 에 exercise1.csv 파일 생성 (경로에 한글이 포함되지 않게 하도록 ex. 바탕화면)

excel에서 만들고 csv로 저장

② CSV 파일 가져오기

인코딩: mb4:UTF-8, 필드 종결자: , , DB : test 로 수정

T : <새 테이블 만들기> → CSV 파일 컬럼대로 내용 작성

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
;

3번부터 2개 출력

SELECT * FROM exercise1 LIMIT 3 OFFSET
1;

1개의 D 이후 3개 출력( = LIMIT1, 3)

DISTINCT : T 안에 같은 데이터 중복되는 경우 제외

SELECT DISTINCT 수학 FROM exercise1
;

중복되는 게 없다