728x90

• 데이터 조작어(DML) : 데이터를 삽입, 조회, 수정, 삭제할 때 사용하는 명령어

(1) 삽입 : 제약조건 위반, 문자 및 날짜형 (' ')

(2) 조회 : 모든 열(*), 특정 열 이름 변경(AS)

(3) 수정 : 특정 조건 (WHERE)

(4) 삭제 : 특정 조건 (WHERE) 

 

• 실습

/* Practice 데이터 베이스 사용 */
USE Practice;

/************* 테이블 생성 (CREATE) *************/
/* 회원테이블 생성 */
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 회원테이블;

/************* 조건 위반 *************/
/* PRIMARY KEY 제약 조건 위반 */
INSERT INTO 회원테이블 VALUES (1004, '장보고', '2020-01-06', 0);

/* NOT NULL 제약 조건 위반 */
INSERT INTO 회원테이블 VALUES (1005, '장보고', NULL, 0);

/* 데이터 타이5 조건 위반 */
INSERT INTO 회원테이블 VALUES (1004, '장보고', 1, 0);



/************* 데이터 조회 *************/
/* 모든 열 조회 */
SELECT * FROM 회원테이블;

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

 

 

• 데이터 제어어(DCL) : 데이터 접근 권한 부여 및 제거할 때 사용하는 명령어

 

• 실습

/******************사용자 확인******************/
/* MYSQL 데이터베이스 사용 */
USE MYSQL;

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

/*********** 사용자 추가 *********/
/* 사용자 아이디 및 비밀번호 생성 - localhost는 local 에서 접속이 가능하다는 뜻 / 뒤에 test는 비밀번호 */
CREATE USER 'TEST'@LOCALHOST IDENTIFIED BY 'TEST';

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

/* 사용자 비밀번호 변경 */
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;

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

 

 

'Studying > SQL' 카테고리의 다른 글

데이터 조회(SELECT)  (0) 2021.09.27
SQL명령어 - 트랜젝션 제어어(TCL)  (0) 2021.09.27
SQL 명령어 - 데이터 정의어 (DDL)  (0) 2021.09.22
SQL 공부 시작하기  (0) 2021.09.21
728x90

 

 ∙ 데이터 정의어 : 테이블을 생성, 변경, 삭제할 때 사용하는 명령어

 ∙ 테이블은 각 열마다 반드시 1가지 데이터 타입으로 정의가 되어야 함.

     ☞ 데이터 타입 종류

       [ 숫자형 ]

데이터 형식 바이트 수  숫자 범위  설명
BIT 1 0 / 1 / NULL 논리형으로 참, 거짓으로 사용
INT 4 약 -21억~ +21억 정수
BIGINT 8 -2^63  ~+2^63 정수
FLOAT 4 -3.40..x 10^38 ~ 3.40..x 10^38 소수
DOUBLE 8 -1.79..x 10^308 ~ 1.79..x 10^308 소수

       [ 문자형 ]

데이터 형식 바이트 수 설명
CHAR(n) 0 ~ 8000 고정길이 문자형
NCHAR(n) 0 ~ 8000 유니코드 고정길이 문자형 *한글 0~4000자
VARCHAR(n) 0 ~ 2^31-1 가변길이 문자형 *VARCHAR(MAX) 2GB
NVARCHAR(n) 0 ~ 2^31-1 유니코드 가변길이 문자형 *NVARCHAR(MAX) 2GB

       [ 날짜형 ]

데이터 형식  바이트 수  설명
DATETIME 8 YYYY-MM-DD 시:분:초
DATE 3 YYYY-MM-DD
TIME 5 시:분:초

 

 ∙ 테이블의 각 열마다 제약조건을 정의할 수 있음.

     ☞ 제약조건

      1. PK(PRIMARY KEY) : 중복되어 나타날 수 없는 단일 값 : NOT NULL

      2. NOT NULL : NULL 허용하지 않음

 

 

 

 ∙ 실습

/* Practice 이름으로 데이터베이스 생성 */
CREATE DATABASE Practice;

/* Practice 데이터베이스 사용 */
USE Practice;

/*---------테이블 생성(Create)---------*/
CREATE TABLE 회원테이블 (
회원번호 INT PRIMARY KEY,
이름 VARCHAR(20),
가입일자 DATE NOT NULL,
수신동의 BIT
);
/* 기본키 (PRIMARY KEY) : 중복되어 나타날 수 없는 단일 값 + NOT NULL */
/* NOT NULL : NULL 허용하지 않음 */

/*회원테이블 조회('*'은 모든 열을 조회한다는 뜻)*/
SELECT * FROM 회원테이블;

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

/*회원테이블 조회('*'은 모든 열을 조회한다는 뜻)*/
SELECT * FROM 회원테이블;

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

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

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

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

 

+ Recent posts