[Database] MySQL DML Query

게맛살맛게·2021년 12월 20일
0

DB

목록 보기
6/23

데이터 활용

SELECT

SELECT 열이름 FROM 테이블이름 [ WHERE 조건 ]
  • 모든 데이터 출력 : SELECT * FROM 테이블명
  • 열을 선택해 데이터 출력 : SELECT col1, col2, ... FROM 테이블명
  • 특정 데이터를 만족하는 데이터 출력 (WHERE절에 조건 입력)

DB 확인

TABLE 이름 정보

TABLE 상태 확인

특정 테이블 정보 확인

WHERE 조건

IS=는 다른 구문!

IS NOT

데이터가 숫자로 구성되어 있으며 연속적인 값 : Between ... And

SELECT * FROM emp WHERE sal BETWEEN 2000 AND 3000;

이산적인(Discrete) 값의 조건 : IN() 사용

select * from emp where deptno IN(20,30) 20과 30인 것들만

문자열의 내용 검색 : LIKE 사용
% : 0개 이상의 모든 문자
_ : 임의의 1개 문자
A% : A로 시작하는 모든 문자
%A : A로 끝나는 모든 문자
%A% : A가 포함된 모든 문자
A_ : A로 시작하는 두글자

Order By

기본적으로 오름차순(ASCENDING)
내림차순으로 정렬하려면 열 이름 뒤에 DESC
Order by 뒤에 여러개일때 순차적으로 비교

DISTINCT

중복된 것은 1개씩만 보여줌
SELECT DISTINCT col FROM table;
여러개 컬럼일때 모두 같아야 중복 제거

LIMIT N

출력 개수 제한 : 상위 N개만 출력


INSERT

데이터의 삽입

INSERT [INTO] 테이블[(1,2, ... )] VALUES (1,2, ...)
  • 테이블 이름 다음에 나오는 열 생략 가능
    생략할 경우 값들의 순서 및 개수가 테이블이 정의된 열 순서 및 개수와 동일해야함
  • 자동으로 증가하는 AUTO_INCREMENT
    • 1부터 증가하는 값 자동 입력
    • 적용할 열이 PRIMARY KEY 또는 UNIQUE일 때만 사용가능
    • 데이터형은 숫자 형식만 사용 가능
  • INSERT에서는 해당 열이 없다고 생각하고 입력
  • NULL 값을 지정하면 자동으로 값 입력??


UPDATE

기존에 입력되어 있는 값 변경

UPDATE 테이블이름
	SET1=1,2=2, ...
	[WHERE 조건] ;
  • WHERE절을 생략가능하나 전체 행의 내용이 변경됨


DELETE

행 단위로 데이터를 삭제

DELETE FROM 테이블이름 [WHERE 조건] ;
  • WHERE절이 생략되면 전체 데이터를 삭제

    테이블을 삭제하는 경우의 속도 비교

    DML문인 DELETE는 트랜잭션 로그 기록 작업 때문에 삭제가 느림
    DDL문인 DROPTRUNCATE문은 트랜잭션이 없어 빠름(복구 ❌)
    - 테이블 자체가 필요 없을 경우 DROP으로 삭제
    - 테이블의 구조는 남겨놓고 싶다면 TRUNCATE로 삭제

profile
IT 기술블로그

0개의 댓글