드디어 SQL로 DB 실습을 진행해 볼것이다!! ( 매우 신난다!!! ☆: .。. o(≧▽≦)o .。.:☆ )

ALTER USER ‘계정명’@’%’ IDENTIFIED BY ‘비밀번호’;
SHOW DATABASES;
SHOW TABLES;
SHOW CREATE TABLE 테이블명;
DESC 테이블명; /* = DESCRIBE 테이블명; */
① DB(스키마 생성) -> ② 기본 작업 DB 지정 -> ③ 테이블 생성 -> ④ 데이터 입력 순으로 DB를 구축한다!
간단한 예시로 아래와 같은 테이블을 생성해보자!
| 학번 | 이름 | 학년 | 학과 |
|---|---|---|---|
| 100 | 박시은 | 3 | 경영 |
| 300 | 한송비 | 1 | 컴공 |
| 200 | 고하언 | 3 | 산경 |
| 200 | 해하준 | 4 | 정통 |
# 1
CREATE DATABASE student
# 2
USE student;
# 3
CREATE TABLE 학생(
학번 INT,
이름 VARCHAR(5),
학년 TINYINT,
학과 VARCHAR(7)
);
# 4
INSERT INTO 학생 VALUES(100, "박시은", 3, "경영");
INSERT INTO 학생 VALUES(300, "한송비", 1, "컴공");
INSERT INTO 학생 VALUES(200, "고나언", 3, "산경");
INSERT INTO 학생 VALUES(200, "해하준", 4, "정통");
# 5. 테이블 확인!
SELECT * FROM 학생;

🐈 이제 자세히 알아보도록 하자!
형식
CREATE DATABASE 데이터베이스이름;
형식
USE 데이터베이스이름;

형식
CREATE TABLE 테이블이름(
{열이름 데이터타입}+
);
예시 1
CREATE TABLE 테이블이름(
번호 INT,
제목 VARCHAR(30),
가격 INT);
예시 2
CREATE TABLE [ IF NOT EXISTS ] 테이블이름 // 0
( {열이름 데이터타입 [NOT NULL | NULL] [DEFAULT 값],}+ // 1
[CONSTRAINT 이름] [PRIMARY KEY (열이름_리스트),] // 2
{[CONSTRAINT 이름] [UNIQUE (열이름_리스트),]}* //
{[CONSTRAINT 이름] [FOREIGN KEY(열이름_리스트) // 3
REFERENCES 기본테이블[(열이름_리스트)] //
[ON DELETE 옵션] //
[ON UPDATE 옵션] ,]} * //
{[CONSTRAINT 이름] [CHECK(조건)]}* // 4
);
예시3
CREATE TABLE ENROL // 1
( Sno INT NOT NULL, // 2
Cno CHAR(6) NOT NULL, //
Grade INT, //
PRIMARY KEY(Sno, Cno), // 3
FOREIGN KEY(Sno) REFERENCES STUDENT(Sno) // 4
ON DELETE CASCADE // 5
ON UPDATE CASCADE ), // 6
CHECK( Grade >= 0 AND Grade <= 100 ); // 7
형식
INSERT INTO 테이블이름
VALUES (열_값_리스트);
예시
INSERT INTO 테이블이름
VALUES (2500, `아이스 아메리카노`, 3);
| 데이터 타입 | 설명 |
|---|---|
| TINYINT | 1바이트 정수 (-128 ~ 127) |
| SMALLINT | 2바이트 정수 (-32,768 ~ 32,767) |
| MEDIUMINT | 3바이트 정수 (-8,388,608 ~ 8,388,607) |
| INT, INTEGER | 4바이트 정수 (-2,147,483,648 ~ 2,147,483,647) |
| BIGINT | 8바이트 정수 (-9223372036854775808 ~ 9223372036854775807) |
| 데이터 타입 | 설명 |
|---|---|
| FLOAT | 4바이트 실수 |
| DOUBLE, REAL | 8바이트 실수 |
| 데이터 타입 | 설명 |
|---|---|
| DECIMAL[(M[,D])], NUMERIC[(M[,D])], DEC[(M[,D])], FIXED[(M[,D])] | M: 전체 자리수(최대 65; 기본값 10), D: 소수점 아래 자리수(최대 30; 기본값 0) ex. DECIMAL(5, 2) → -999.99 ~ 999.99 |
| 데이터 타입 | 설명 |
|---|---|
| CHAR (길이) | 길이=문자 수. 고정길이문자열(0 ~ 255; 기본값 1) 남은 부분 공백으로 채움. |
| VARCHAR (길이) | 가변길이문자열(0 ~ 65535) |
| Value | CHAR(4) | 저장공간 | VARCHAR(4) | 저장공간 |
|---|---|---|---|---|
| ‘’ | ‘ ’ | 4B | ‘’ | 1B |
| ‘ab’ | ‘ab ’ | 4B | ‘ab’ | 3B |
| ‘abcd’ | ‘ abcd’ | 4B | ‘abcd’ | 5B |
| ‘abcdefg’ | ‘abcd’ | 4B | ‘abcd’ | 5B |
| 데이터 타입 | 설명 |
|---|---|
| DATE | 날짜 (YYYY-MM-DD) |
| TIME | 시간 (hh:mm:ss) |
| DATETIME | 날짜+시간 (YYYY-MM-DD hh:mm:ss) |
| TIMESTAMP | 날짜+시간 (YYYY-MM-DD hh:mm:ss)'1970-01-01 00:00:00' UTC을 기점으로 지난 시간을 초로 저장.레코드가 INSERT/UPDATE될 때 자동으로 현재 날짜/시간로 변경됨 |
| YEAR | 연도 (YYYY) |
| 데이터 타입 | 설명 |
|---|---|
| TINYBLOB | Binary Large Object. 최대 255B |
| BLOB | Binary Large Object. 최대 65,535B |
| MEDIUMBLOB | Binary Large Object. 최대 16,777,215B |
| LONGBLOB | Binary Large Object. 최대 4,294,657,295B |
| 데이터 타입 | 설명 |
|---|---|
| TINYTEXT | 텍스트 데이터. 최대 255B |
| TEXT | 텍스트 데이터. 최대 65,535B |
| MEDIUMTEXT | 텍스트 데이터. 최대 16,777,215B |
| LONGTEXT | 텍스트 데이터. 최대 4,294,657,295B |