본문 바로가기
학원에서 배운 것/DBMS MySQL

MySQL 기초 리마인드 정리

by 쿠리의일상 2023. 3. 15.

전에 배웠던 내용을 리마인드 겸 정리한다.

 

쿼리문 (Query)

  • 대소문자 구분 X
  • `(벡텍) : 중간에 공백이 있는 개체의 이름을 사용하고자 할 때 사용
  • * : 모든 것을 지칭
  • ' ', " " : 문자열을 묶어서 사용
  • 구분자는 , 를 사용
  • 한줄 주석은 --, 여러줄 주석은 /* */

 


기본적으로 쿼리문 실행은 cmd + enter

모든 쿼리문 실행 시 첫번째 번개모양 아이콘

블록으로 지정해준 쿼리문만 실행하려면 두번째 번개모양 아이콘 사용

 

 


MySQL 데이터 타입 정리
데이터 타입 데이터 크기
TINYINT[(M)] 1바이트 -128~127
SMALLINT[(M)] 2바이트 -32768~32767
INT 4바이트
BIGINT 8바이트
FLOAT 실수
VARCHAR[길이] 가변길이 문자열 데이터 타입
CHAR[길이] 고정길이 문자열 데이터 타입

 

 

 

 

SELECT 구문 - 테이블 결과 출력

  • SELECT 컬럼명 FROM (스키마명.)테이블명 WHERE 조건;

같지 않음은 != 이 아닌, <> 을 사용해준다.

 

  • ORDER BY 컬럼명 : 오름차순
  • ORDER BY 컬럼명 ASC : 오름차순
  • ORDER BY 컬럼명 DESC : 내림차순

 

  • BETWEEN A AND B : A와 B 사이의 범위 안에 드는 데이터
  • AND : 그리고 / OR : 또는

 

UPDATE 구문 - 테이블 데이터 수정

  • UPDATE 테이블명 SET 속성1=`값`, ... WHERE 조건;

 

테이블 생성 쿼리문

  • CREATE TABLE 테이블명 ( ... );

명령어가 아니어도 가능

테이블 전체 복사 : CREATE TABLE 테이블명 (SELECT * FROM 복사해줄 테이블명);

일부 컬럼 복사 : CREATE TABLE 테이블명 (SELECT 복사할컬럼명 FROM 복사해줄테이블명);

 

INSERT 구문 - 테이블 데이터 추가

  • INSERT INTO 테이블명(컬럼명, 컬럼명, ...) VALUES(값1, 값2, ...);
  • 컬럼에 따른 값이 따로 들어가지 않으면 NULL 이 들어감

 

DELETE 구문 - 테이블 행 삭제

  • DELETE FROM 테이블명 WHRER 조건;

 

 

ALTER TABLE 구문 - 테이블 컬럼 추가/삭제

  • ALTER TABLE 테이블명 ADD 컬럼명 자료형; -> 컬럼 추가
  • ALTER TABLE 테이블명 DROP 컬럼명; -> 컬럼 삭제

 

색인 생성 

  • CREATE INDEX 인덱스명 ON 테이블명(컬럼명);

 

 

가상 테이블 View

데이터베이스에 존재하는 일종의 가상 테이블을 View 라고 한다. 실제로 데이터를 저장하고 있진 않다.

여러 테이블을 번거롭게 들러서 확인해야 할 때 혹은 SELECT 문을 겹겹이 사용하여 어려운 쿼리문으로 조회를 수행해야할 때 번거로움을 줄여주기 위해 사용되지만 다른 테이블이나 다른 뷰에 있는 데이터를 보여주는 역할만 수행한다.

 

  • CREATE VIEW 뷰이름 AS SELECT 컬럼명, ... FROM 테이블명;

 

 

 

스토어드 프로시저

두 개 이상의 SQL문을 하나로 묶어서 사용할 수 있게 해주는 기능

// 1. 프로시저 생성
delimiter $$
create procedure `프로시저명` ()
begin
~~~~~~~~~쿼리문
end $$
delimiter ;

// delimiter는 구문 문자를 의미(문법의 끝을 나타내는 역할) // delimiter $$ ~ end $$ ~ delimiter ;
// 2. 프로시저 콜
call `프로시저명` ();

트리거

테이블에 부탁되어 insert, update, delete 작업이 발생되면 자동으로 무언가 실행되게 할 수 있는 기능

create trigger 트리거명
(before/after) (insert/update.delete) -- 조건
on 테이블명
for each row
begin
    쿼리문
end $$

조건을 +해서 추가해주면 원하는 기능을 입력 가능하다.

위의 예시의 경우, after delete 후, deleteuserbackuptable 에 insert into해주는 구문이다.

 

 

 

그외 추가 용법들

1. like~% 이름이 특정 문자로 시작되는 데이터 검색

2. distinct 범주를 조회, 중복된 것은 하나만 남긴다