카테고리 없음

[기본 SQL] SQL 기본 명령어

Dobby98 2023. 10. 10. 19:59

SQL 명령어

  1. 데이터 정의어 (DDL) - 테이블 생성, 변경, 삭제
  2. 데이터 조작어 (DML) - 데이터 삽입, 조회, 수정, 삭제
  3. 데이터 제어어 (DCL) - 데이터 접근 권한 부여, 제거
  4. 트랜젝션 제어어 (TCL) - 데이터조작어 (DML) 명령어 실행, 취소, 임시저장

분석가가 가장 많이 사용하는 것은 데이터 조작어

DBA (DataBase Administrator) 역할 : 데이터베이스 관리자 이며, 기업 내에서 데이터베이스를 관리

 

데이터 정의어 (DDL)

  • 테이터 정의어는 테이블을 생성, 변경, 삭제 할 때 사용하는 명령어
  • 테이블은 각 열마다 반드시 1가지 데이터 타입으로 정의 되어야 한다
  • 테이블은 각 열마다 제약 조건을 정의할 수 있습니다.
    • 중복없는 값 : PK(PRIMARY KEY)
    • NULL 허용 x : NOT NULL
CREATE DATABASE Practice;

USE Practice;

CREATE TABLE 회원테이블 (
회원번호 INT PRIMARY KEY,
이름 VARCHAR(20),
가입일자 DATE NOT NULL,
수신동의 BIT);

/* 회원테이블 조회 */
SELECT * FROM 회원테이블;

/* 테이블 열 추가*/
ALTER TABLE 회원테이블 ADD 성별 VARCHAR(2);

/* 변경된 회원 테이블 조회 */
SELECT * FROM 회원테이블;

/* 성별 열 타입 변경 */
ALTER TABLE 회원테이블 MODIFY 성별 VARCHAR(20);

/* 성별 -> 성 열 이름 변경 */
ALTER TABLE 회원테이블 CHANGE 성별 성 VARCHAR(2);

/* 테이블 명 변경 */
ALTER TABLE 회원테이블 RENAME 회원정보;


/*테이블 삭제 */
DROP TABLE 회원정보;

데이터 조작어 (DML)

  • 데이터 조작어는 데이터를 삽입, 조회, 수정, 삭제할 때 사용하는 명령어
USE Practice;

CREATE TABLE 회원테이블 (
회원번호 INT PRIMARY KEY,
이름 VARCHAR(20),
가입일자 DATE NOT NULL,
수신동의 BIT);

/***** 데이터 삽입 ******/
INSERT INTO 회원테이블 VALUES (1001, '홍길동', '2020-01-02', 1);
INSERT INTO 회원테이블 VALUES (1002, '이순신', '2020-01-03', 0);
INSERT INTO 회원테이블 VALUES (1003, '장영실', '2020-01-04', 1);
INSERT INTO 회원테이블 VALUES (1004, '유관순', '2020-01-05', 0);

SELECT * FROM 회원테이블;

/* 특정 열 조회 */
SELECT 회원번호, 이름 FROM 회원테이블;

/* 특정 열 이름을 변경해서 조회 */
SELECT 회원번호, 이름 AS 성명 FROM 회원테이블;

/***************데이터 수정**************/
/*모든 데이터 수정 */
UPDATE 회원테이블 SET 수신동의 = 0;

/*특정 데이터만 수정*/
UPDATE 회원테이블 SET 수신동의 = 1 WHERE 이름  = '홍길동';

/*********데이터 삭제*********/
/*특정 데이터 삭제*/
DELETE FROM 회원테이블 WHERE 이름 = '홍길동';

/*모든 데이터 삭제*/
DELETE FROM 회원테이블

 

데이터 제어어(DCL)

  • 데이터 제어어는 데이터 접근권한 부여 및 권한을 제한하는 명령어
/****사용자확인***/
USE MYSQL;

/**사용자 확인***/
SELECT * FROM USER;

/** 사용자 아이디 및 비밀번호 생성**/
CREATE USER 'TEST' @LOCALHOST IDENTIFIED BY 'TEST';

/* 사용자 비밀 번호 변경*/
SET PASSWORD FOR 'TEST'@LOCALHOST = '1234';

/****권한 부여 및 제거*****/
/** 권한 : CREATE, ALTER, DROP, INSERT, DELETE, UPDATE, SELECT등 **/

/* 특정 권한 부여 */
GRANT SELECT, DELETE ON PRACTICE.회원테이블 TO 'TEST'@LOCALHOST;

/* 특정 권한 제거 */
REVOKE DELETE ON PRACTICE.회원테이블 FROM 'TEST'@LOCALHOST;

/* 모든 권한 부여*/
GRANT ALL ON practice.회원테이블 TO 'TEST'@LOCALHOST;
/*모든 권한 제거*/
REVOKE ALL ON practice.회원테이블 FROM 'TEST'@LOCALHOST;

/* 사용자 삭제 */
DROP USER 'TEST'@LOCALHOST;

트랜젝션 제어어(DCL)

  • 트랜젝션 제어어는 데이터 조작어 명령어 실행, 취소, 임시저장할 때 사용하는 명령어
USE Practice;
DROP TABLE 회원테이블;

CREATE TABLE 회원테이블 (
회원번호 INT PRIMARY KEY,
이름 VARCHAR(20),
가입일자 DATE NOT NULL,
수신동의 BIT);

/*트랜젝션 시작 */
BEGIN;

/*데이터 삽입*/
INSERT INTO 회원테이블 VALUES (1001, '홍길동', '2020-01-02', 1);

SELECT * FROM 회원테이블;

/* 취소 */
ROLLBACK;

SELECT * FROM 회원테이블;

BEGIN;

INSERT INTO 회원테이블 VALUES (1001, '홍길동', '2020-01-02', 1);

COMMIT; /*실행*/
SELECT * FROM 회원테이블;

/*임시 저장지점 - ROLLBACK 지점 갱신 */
DELETE FROM 회원테이블;

BEGIN;

INSERT INTO 회원테이블 VALUES (1001, '홍길동', '2020-01-02', 1);
SAVEPOINT S1;

/* 이름 수정*/
UPDATE 회원테이블 SET 이름 = '이순신';

/*SAVE point 2*/
SAVEPOINT S2;

/*1001 회원 삭제*/
DELETE FROM 회원테이블;

SELECT * FROM 회원테이블;

/*원하는 순간으로 롤백*/
ROLLBACK TO S2;

SELECT * FROM 회원테이블;