728x90
<데이터베이스 언어>
- DDL (데이터 정의어): 데이터베이스 생성 (스키마 표현)
SQL 명령어 | 기능 |
CREATE | 데이터베이스 구조 생성 (객체 생성) |
ALTER (ALTER ~ ADD) | 데이터베이스 구조 수정 (릴레이션 스키마 수정) |
ALTER (ALTER ~ DROP) | 데이터베이스 구조 수정 (릴레이션 스키마 수정) |
ALTER (ALTER ~ MODIFY) | 데이터베이스 구조 수정 (릴레이션 스키마 수정) |
DROP | 데이터베이스 구조 삭제 (객체 삭제) |
<DDL 실습>
<테이블 생성>
- CREATE TABLE 테이블 이름 ();
- INT: 숫자 자료형
- VARCHAR(숫자): 문자열 자료형
- TINYINT: 작은 숫자 자료형
- DATE: 날짜 자료형
CREATE TABLE people(
person_id INT,
person_name VARCHAR(10),
age TINYINT,
birthday DATE
);
<결과>
<테이블 수정>
- 테이블 이름 변경: ALTER TABLE 테이블 이름 RENAME TO 수정할 테이블 이름
- 컬럼 수정: CHANGE COLUMN 컬럼 이름 수정할 컬럼이름 데이터 타입
-- 테이블 이름 수정
ALTER TABLE people RENAME TO friends,
-- 컬럼 자료형 변경
CHANGE COLUMN person_id person_id TINYINT,
-- 컬럼 이름 변경
CHANGE COLUMN person_name person_nickname VARCHAR(10),
-- 컬럼 삭제
DROP COLUMN birthday,
-- 컬럼 추가
ADD COLUMN is_married TINYINT AFTER age;
<결과>
<테이블 삭제>
DROP TABLE friends;
<결과>
- 제약사항 걸어서 테이블 생성
CREATE TABLE people (
person_id INT AUTO_INCREMENT PRIMARY KEY,
person_name VARCHAR(10) NOT NULL,
nickname VARCHAR(10) UNIQUE NOT NULL,
age TINYINT UNSIGNED,
is_married TINYINT DEFAULT 0
);
- INT AUTO_INCREMENT: 자동으로 숫자를 입력 (1부터 시작)
- INT AUTO_INCREMENT PRIMARY KEY으로 해줘야 함
- VARCHAR(10) NOT NULL: 글자수 10 제한, NULL 금지
- UNSIGNED: 컬럼에서 음수를 포함하지 않는다
<결과>
<데이터 삽입>
- INSERT INTO people (컬럼이름1, 컬럼이름2) VALUES (입력할 값1, 입력할 값2);
INSERT INTO people
(person_id, person_name, age, nickname)
VALUES
(1, '홍길동2', 24, '반이오타1')
(2, '홍길동2', 24, '반이오타2')
(3, '홍길동2', 24, '반이오타3')
(4, '홍길동2', 24, '반이오타4');
<결과 확인>
SELECT * FROM people;
CREATE TABLE user(
user_id INT(11) AUTO_INCREMENT NOT NULL,
user_name VARCHAR(100) NOT NULL,
user_telno VARCHAR(50) NULL,
PRIMARY KEY(user_id)
);
** PRIMARY KEY(): 다른 항목과 절대로 중복되어 나타날 수 없는 단일 값(unique)
- PRIMARY KEY()
- 다른 항목과 절대로 중복되어 나타날 수 없는 단일 값(unique)
- null(아무런 값이 없는 상태) 값을 가질 수 없음
CREATE TABLE user_prod(
sal_no INT(11) AUTO_INCREMENT NOT NULL,
user_id INT(11),
prod_id INT(11),
sal_date DATE,
sal_count INT(11),
PRIMARY KEY(sal_no),
FOREIGN KEY(user_id) REFERENCES user(user_id),
FOREIGN KEY(prod_id) REFERENCES prod(prod_id)
);
- FOREIGN KEY() REFERENCES 테이블 이름 user (): 한 테이블을 다른 테이블과 연결해주는 역할
- FOREIGN KEY 제약 조건을 설정할 때 참조되는 테이블의 필드는 반드시 UNIQUE나 PRIMARY KEY 제약 조건이 설정
<데이터 수정>
- UPDATE 테이블 명 SET 업데이트할 칼럼 = 값 WHERE 조건식;
UPDATE prod set cust_id = 1 WHERE prod_id = 1;
<데이터 삭제>
- 제약이 걸린 데이터 삭제할 때는 참조된 데이터를 먼저 지워야 함.
DELETE FROM cust WHERE cust_id = 1;
>> 참조된 데이터가 있어서 문구가 뜸 (데이터를 먼저 지우고 테이블을 삭제해야 함)
'프로그래밍 언어 > SQL' 카테고리의 다른 글
데이터베이스 언어 정리 (DDL / DML / DCL) (2) - DML / DCL 편 (0) | 2024.02.04 |
---|---|
SQL 함수 간단 실습 :: 서브쿼리 (비상관 커리, 상관 커리) (0) | 2024.01.26 |
SQL 함수 간단 실습 :: JOIN (내부 조인, 외부 조인, 셀프 조인) (0) | 2024.01.25 |
SQL 함수 간단 실습 :: 시간/날짜 관련 함수 (0) | 2024.01.24 |
SQL 함수 간단 실습 :: 문자열 관련 함수 (0) | 2024.01.23 |