SQL 기본 문법 이해 (CRUD)

1. SQL 기본 문법 (CRUD)의 개념과 쓰임 정리 

CRUD는 대부분의 컴퓨터 소프트웨어가 가지는 기본적인 데이터 처리 기능인 Create(생성), Read(읽기), Update(갱신), Delete(삭제)를 묶어서 일컫는 말이다. SQL 정보를 조작하는 데 있어 CRUD는 기본적으로 쓰이는 명령어로 그 쓰임과 사용 방법에 대해 알아야 한다.

CRUD 조작 SQL
Create 생성 INSERT INTO 테이블명 VALUES 값
Read(또는 Retrieve) 읽기(또는 인출) SELECT 값 FROM 테이블명
Update 갱신 UPDATE 테이블명 SET 수정할 컬럼명 = '수정값'
Delete(또는 Destroy) 삭제(또는 파괴) DELETE FROM 테이블명 WHERE 조건

 

1. 데이터 생성 (CREATE) 

1) 테이블 전체에 대응하는 값을 모두 넣는 경우

INSERT INTO 테이블명 VALUES(값1, 값2, 값3, ...);

2) 테이블 특정 컬럼에 대응하는 값만 넣는 경우

INSERT INTO 테이블명 (컬럼1, 컬럼2, 컬럼3, ...) VALUES (값1, 값2, 값3, ...);

2. 데이터 읽기 (READ)

1) 테이블 전체 컬럼의 데이터 모두 읽기

SELECT * FROM 테이블명;

2) 테이블 특정 컬럼의 데이터만 읽기

SELECT 컬럼1, 컬럼2 FROM 테이블명;

3) 테이블 특정 컬럼의 데이터를 검색하되 표시할 컬럼명도 다르게 하기

SELECT 키존컬럼이름 AS 바꿀컬럼이름 FROM 테이블명;

4) 조건에 맞는 데이터만 검색하기 

  • WHERE 조건문으로 조건 검색
  • 논리연산자 (AND, OR) 사용 가능
SELECT * FROM 테이블명 WHERE 컬럼1 < 5 or 컬럼2 < 10
  • LIKE 통해 부분적으로 일치 데이터 추출 가능 
    • 개수와 상관 없이 모두 찾을 경우 '%' 한번  사용
    • 특정 개수 만큼 다른 경우를 찾을 경우 '_' 해당 글자수만큼 사용
SELECT * FROM 테이블명 WHERE 컬럼1 LIKE '홍%'
SELECT * FROM 테이블명 WHERE 컬럼1 LIKE '홍___'

5) 데이터 정렬해서 읽기

  • ORDER BY 정렬할 컬럼명 DESC 혹은 ASC
  • DESC는 내림차순 ASC는 오름차순
SELECT * FROM 테이블명 ORDER BY DESC
SELECT * FROM 테이블명 ORDER BY ASC

6) 결과 중 일부만 데이터 가져오기 

  • LIMIT N; : 첫 행부터 N개 추출
  • LIMIT N M; : N행부터 M개 추출 
SELECT * FROM 테이블명 LIMIT 100, 3;

 

3. 데이터 수정 (UPDATE)

1) 보통 WHERE 조건문과 함께 쓰여 특정한 조건에 맞는 데이터만 수정하는 것이 일반적인 사용법

UPDATE 테이블명 SET 수정할 컬럼명 = '수정할 컬럼값' WHERE 특정 칼럼 = '값';

2) 특정 조건에 따라 변하는 컬럼 값을 다수 설정 가능

UPDATE 테이블명 SET 수정할 컬럼명1 = '수정할 컬럼값1', 수정할 컬럼명2 = '수정할 컬럼값2'  WHERE 특정 칼럼 = '값';

4. 데이터 삭제 (DELETE) 

1) 보통 WHERE 조건문과 함께 쓰여서, 특정한 조건에 맞는 데이터만 삭제하는 경우가 많음

DELETE FROM 테이블명 WHERE 특정 컬럼 = '값';

2) 테이블에 지정된 모든 데이터를 삭제할 수도 있음 (하지만 기본적으로 기능 제한되어 있음)

DELETE FROM 테이블명;

MYSQL 데이터 타입 종류와 특징

1. 데이터 타입을 선택하는 방법 

: 일반적으로 데이터를 저장하고 표현하는 데 문제가 없는 데이터 타입 중 가장 작은 Byte를 차지하는 데이터 타입을 골라야 한다. 보통 작은 데이터 타입일수록 디스크나 메모리, CPU 캐시에 더 적은 공간을 사용하기 때문에 더 빠른 처리가 가능하기 때문이다. 하지만 데이터 값을 너무 작게 추정해 데이터 타입의 범위를 벗어나는 데이터가 있는 경우 역시 주의해야 한다. 스키마 내 데이터 타입의 범위를 늘리는 작업은 매우 어렵고 시간도 많이 소요되기 때문이다. 

 

  기본적인 용량 외에도 데이터를 처리하는 데 소요되는 CPU 크기를 고려해 데이터 타입을 선정해야 한다. 문자 비교보다는 정수 비교가 소요가 더 적고, 날짜와 시간을 문자열로 지정하는 것보다 날짜 타입으로 적는 것이 더 효율적이듯 데이터 타입별 특성을 이해하고 쓰임에 맞게 설계해야 한다. 또한  저장 공간의 낭비를 줄이기 위해 NULL을 꼭 저장해야 되는 경우가 아니라면 컬럼은 되도록 NOT NULL로 정의한다.

2. 데이터 타입의 종류와 특징 

1) 문자형 데이터 타입

데이터 유형 정의
CHAR(n) 고정 길이 데이터 타입(최대 255byte)- 지정된 길이보다 짦은 데이터 입력될 시 나머지 공간 공백으로 채워진다.
VARCHAR(n) 가변 길이 데이터 타입 (최대 65535byye) 지정된 길이보다 짧은 데이터 입력될 시 나머지 공간은 채우지 않는다.
TINYTEXT(n) 문자열 데이터 타입 (최대 255byte)
TEXT(n) 문자열 데이터 타입 (최대 65535byte)
MEDIUMTEXT(n) 문자열 데이터 타입 (최대 16777215byte)
LONGTEXT(n) 문자열 데이터 타입 (최대 4294967295byte)
JSON JSON 문자열 데이터 타입 - JSON 형태의 포맷을 꼭 준수해야 한다.

2) 숫자형 데이터 타입

데이터 유형
signed
unsinged
byte
정의
TINYINT(n)
0 ~ 255
1
정수형 데이터 타입
SMALLINT(n)
0 ~ 65535
2
정수형 데이터 타입
MEDIUMINT(n)
0 ~ 16777215
3
정수형 데이터 타입
INT(n)
0 ~ 4294967295
4
정수형 데이터 타입
BIGINT(n)
-9223372036854775808
~ 9223372036854775807
0 ~ 18446744073709551615
8
정수형 데이터 타입 - 무제한 수 표현할 수 있다.
DECIMAL
(길이, 소수)
전체자리수(precision)와 소수점자리수(scale)를 가짐
  • DECIMAL(5)의 경우: -99999 ~ 99999
  • DECIMAL(5, 1)의 경우: -9999.9 ~ 9999.9
  • DECIMAL(5, 2)의 경우: -999.99 ~ 999.99
가변
고정 소수형 데이터 타입
FLOAT
(길이, 소수)
-3.402823466×1038 ~ 3.402823466×1038
4
부동 소수형 데이터 타입(4byte)
DOUBLE
(길이, 소수)
-1.7976931348623157×10308 ~ 1.7976931348623157×10308
8
부동 소수형 데이터 타입(8byte)

3) 날짜형 데이터 타입

데이터 유형
정의
DATE
날짜(년도, 월, 일) 형태의 기간 표현 데이터 타입(3byte)
TIME
시간(시, 분, 초) 형태의 기간 표현 데이터 타입(3byte)
DATETIME
날짜와 시간 형태의 기간 표현 데이터 타입(8byte)
TIMESTAMP
날짜와 시간 형태의 기간 표현 데이터 타입(4byte) -시스템 변경 시 자동으로 그 날짜와 시간이 저장된다.
YEAR
년도 표현 데이터 타입(1byte)
LONGTEXT(n)
문자열 데이터 타입(최대 4294967295byte)
JSON
JSON 문자열 데이터 타입 - JSON 형태의 포맷을 꼭 준수해야 한다.

 

 

'SQL' 카테고리의 다른 글

[SQL] SQL 기본 문법 이해 (CRUD)  (1) 2023.01.19
[SQL] 데이터베이스 및 테이블 기본 조작어  (0) 2023.01.11
[SQL] SQL 관련 기본 개념 정리  (0) 2023.01.10

데이터베이스 및 테이블 기본 조작어

1. 데이터베이스 & 테이블의 기본 조작어 정리 

CRUD 조작 SQL
Create 생성 CREATE
Read(또는 Retrieve) 읽기(또는 인출) SHOW
Update 갱신 ALTER
Delete(또는 Destroy) 삭제(또는 파괴) DROP

 

2. 데이터베이스 기본 조작어

1. 데이터베이스 생성

CREATE DATABASE 데이터베이스명;



2. 현재 데이터베이스 상황 조회 

SHOW DATABASES;

3. 데이터 베이스 사용 (지정)

USE 데이터베이스명;

4. 데이터 베이스 삭제

  • IF EXISTS 명령어 사용 시 있으면 '삭제하고 없으면 그대로 진행할 것'으로 명령해 에러 방지
DROP DATABASE IF EXISTS 데이터베이스명;

3. 테이블 기본 조작어

1. 테이블 생성 

  • create table product(컬럼 정보);
  • 컬럼 정보는 아래 규칙을 따라 작성해야 한다. 
    • <컬럼명>  +  <데이터 타입> 을 기본 골자로 작성한다. (해당 정보만 있어도 등록 가능하다.)
    • UNSIGNED/ NOT NULL/ AUTO_INCREMENT 등의 부가 명령어를 뒤에 추가한다. 
    • 테이블에 반드시 지정되어야 하는 PRIMARY KEY를 마지막 줄에 작성한다. (혹은 해당 컬럼에서 지정 가능) 
CREATE TABLE 테이블명(
	컬럼1 데이터타입 기타설정내용
	컬럼2 데이터타입 기타설정내용    
	컬럼3 데이터타입 기타설정내용
    PRIMARY KET(컬럼1) 
);

2. 테이블 전체 상황 및 특정 테이블 조회 

1) 전체 테이블 상황 조회

SHOW TABLES;

2) 특정 테이블 상황 조회

DESC 테이블명;

3. 테이블 구조 수정

1) 테이블에 새로운 컬럼 추가

ALTER TABLE 테이블명 ADD COLUMN [추가할 컬럼명][추가할 컬럼 데이터][컬럼 기타 특징];

2) 테이블 컬럼 타입 변경

ALTER TABLE 테이블명 MODIFY COLUMN [수정할 컬럼명][변경할 컬럼타입][변경할 컬럼 기타 특징];

3) 테이블 컬럼 이름 변경

ALTER TABLE 테이블명 CHANGE COLUMN [기존 컬렴명][변경할 컬럼명][변경할 컬럼타입];

4. 테이블 삭제

  • IF EXISTS 명령어 사용 시 있으면 '삭제하고 없으면 그대로 진행할 것'으로 명령해 에러 방지
DROP TABLE IF EXISTS 테이블명;



'SQL' 카테고리의 다른 글

[SQL] SQL 기본 문법 이해 (CRUD)  (1) 2023.01.19
[SQL] MYSQL 데이터 타입 종류와 특징  (0) 2023.01.17
[SQL] SQL 관련 기본 개념 정리  (0) 2023.01.10

SQL 관련 기본 개념 정리

1. RDBMS (Relational Database Management Sysyem) 이해 

1) DB(Database)에 대한 이해 

: 데이터베이스는 구조화된 정보 또는 데이터의 조직화된 모음으로서 일반적으로 컴퓨터 시스템에 저장되어 있다. 데이터 베이스는 일반적으로 데이터베이스 관리 시스템(DBMS)에 의해 제어되는데 연결된 어플리케이션과 함께 데이터와 DBMS를 하나로 묶어 데이터베이스 시스템이라고 한다.

 

※ 데이터 베이스 유형

  • 관계형 데이터베이스
  • 객체 지형 데이터베이스
  • 분산 데이터베이스
  • 데이터 웨어하우스
  • NoSQL 데이터베이스

2)관계형 데이터베이스(RDBMS)에 대한 이해 

: 데이터베이스의 한 종류로 1980년부터 시작해 오늘날까지 가장 많이 사용되고 있다. 관계형 데이터베이스의 항목은 열과 행이 있는 테이블 집합으로 구성되고 있으며 관계형 데이터베이스는 정보의 신뢰성이 높고 데이터 분류/ 정렬/ 탐색 속도가 매우 빠르다는 특징이 있다.

 

- 2차원 테이블 형식으로 행과 열이 존재

  • 열 : 컬럼(Column) = 필드(Field) = 속성(Attribute)
  • 행 : 로우(Row) = 레코드 (Record) = 튜플 (Tuple)

- 테이블 내 정의되는 primary key와 foreign key 개념

  • Primary key : 한 테이블의 각 로우를 유일하게 실별해주는 컬럼으로 각 테이블마다 반드시 한 개 이상의 Primary Key가 존재해야 하며, 해당 컬럼은 NULL (빈 칸)을 허용하지 않고 중복되지 않아야 한다.
  • Foreign key : 다른 테이블의 컬럼 중에 기존 테이블의 행을 식별할 수 있는 키를 말한다 (엑셀의 vlookup 기능을 가능케 하는 열) 

- 데이터 베이스 스키마(Schema)

: 관계형 데이터 베이스를 사용하여 데이터를 저장할 때 가장 먼저 데이터의 공통 속성을 식별하여 컬럼으로 정의하고 테이블을 만든다. 보통의 경우 여러 개의 테이블을 만들고 각 테이블의 구조, 형식, 관계를 정의하는데 이를 스키마라고 하며 일종의 데이터 베이스 설계도로 이해할 수 있다.

 

2. SQL (Structured Query Language)

: SQL(Structured Query Language)란 관계형 데이터 베이스 관리 시스템에서 데이터를 관리하기 위해 사용되는 표준 프로그래밍 언어를 말하며, 데이터베이스와 관련된 모든 작업(스키마 생성 및 수정, 테이블 관리, 데이터 추가/수정/삭제/조회 등)을 위해 사용되고 있어 데이터베이스를 다루기 위해 반드시 알아야 한다.

 

SQL의 세 가지 종류

  • 데이터 정의 언어 (DDL, Data Definition Language)
  • 데이터 처리 언어 (DML, Data Manipulation Language)
  • 데이터 제어 언어 (DCL, Data Contral Language)

1) 데이터 정의 언어 (DDL, Data Definition Language)

  • 테이블(Table), 인덱스(Index) 등의 개체를 만들고 관리하는데 사용되는 명령
  • Create, Alter, Drop 등이 있음

2) 데이터 조작 언어 (DML, Data Manipulation Language)

  • INSERT : 테이블에 하나 이상의 데이터 추가
  • UPDATA : 테이블에 지정된 하나 이상의 데이터 수정
  • DELETE : 테이블의 데이터 삭제
  • SELECT : 테이블에 지정된 데이터 조회

3) 데이터 제어 언어 (DCL, Data Control Language)

  • GRANT : 데이터 베이스 개체(테이블, 인덱스 등)에 대한 사용 권한 설정
  • BEGIN : 트랜잭션 시작
  • COMMIT : 트랜잭션 내의 실행 결과 적용
  • ROLLBACK : 트랜댁션의 실행 취소

+ Recent posts