CREAT
-- 고정길이 문자열, 가변길이 문자열(VARCHAR(가변길이 제한 10))
CREATE TABLE person (
name VARCHAR(10),
age INT -- 나이 (정수형 int)
);
TABLE을 CREATE할 때에는
CREATE TALBE 테이블명 (컬럼명 자료타입 ); 으로 생성할 수 있다.
person이라는 TABLE에 가변길이 문자열(VARCHAR)타입 길이값 10인 name이라는 컬럼과 INT형인 age라는 컬럼을 만든 코드이다.
DATABASE도 마찬가지로 생성가능하며,
CREATE DATABASE my_db;
DB명만 명시하여 간단히 생성가능하다.
여기서 고정길이, 가변길이 문자열이란?
고정길이 문자열은 생성시 명시된 길이값이 고정 되어 문자가 입력되어도 나머지 공간은 공백으로 채워지만,
반면 가변길이 문자열은 생성시 명시된 길이값은 최대길이인 것은 마찬가지지만 입력된 문자에 따라 해당문자만 입력되어 공간면에서는 유리하다.
하지만 고정보다 가변이 검색속도에서 뒤쳐지는 단점이 존재한다.
저장될 길이값이 동일하다면 CHAR를 활용하는 것이 유리하다.
INSERT INTO
생성된 테이블에 행정보를 추가 할 때 INSERT INTO를 사용하게 된다.
INSERT INTO 테이블명 (컬럼명시) VLAUES (컬럼정보입력) 으로 사용한다.
INSERT INTO person (name, age) VALUES ('홍길동', 22);
DELETE
테이블 혹은 행정보를 DELTE할 때 사용한다.
DELETE FROM 테이블명 (테이블 삭제)
DELETE FROM 테이블명 WHERE 조건 (조건에 맞는 행 삭제)
DELETE FROM book WHERE no = 4;
book테이블에 no 4 행을 삭제해줘~
PRIMARY KEY
테이블을 생성할 때 PRIMARY KEY를 생성할 수 있다.
줄여서 PK라고 부르며, 각 행을 고유하게 식별하는 데 사용한다.
고유하기에 PK는 중복되면 안되고, 변경되어서도 안되며 복잡한 정보여서도 안된다.
IF NOT EXISTS
IF NOT EXISTS 조건은 객체가 중복 생성되는 것을 방지해준다.
CREATE TABLE IF NOT EXISTS 테이블명 으로 사용가능하다.
CREATE TABLE IF NOT EXISTS book (
no INT PRIMARY KEY
, title VARCHAR(25)
, price INT
);
1. book이라는 이름의 테이블이 존재하지 않다면 생성 해 줘~
2. 컬럼으로는 no이라는 이름의 PK와 VARCHAR타입의 title, INT 타입의 price로 구성해줘~
UPDATE
UPDATE문으로 생성되어있는 정보를 수정할 수 있다.
UPDATE 테이블명 SET 새로운정보명 WHERE 조건식 으로 사용할 수 있다.
나는 홍길동을 도우너로 바꿔보려고 한다.
UPDATE person SET name = '도우너' WHERE id = 100;
ALTER
ALTER문은 기존 데이터베이스 객체의 구조를 수정하는 데 사용된다.
테이블의 컬럼을 추가할 수 있고, 컬럼을 DROP할 수도 있다.
또한 외래키 부여를 통해 상호 테이블 간 참조가 가능하도록 설정할 수도 있다.
ALTER TABLE restaurant ADD COLUMN menu VARCHAR(30);
SELECT * FROM restaurant;
ALTER TABLE restaurant DROP COLUMN menu;
-- 외래키(Foreign Key) 데이터 중복 X - > 결함이 생기지 않음
ALTER TABLE menu ADD CONSTRAINT FOREIGN KEY (restId) REFERENCES restaurant (no);
DESC menu;
FOREIGN KEY (외래키)
외래키는 두 테이블을 서로 연결하여 참조할 수 있도록 해주는 데에 사용되는 키이다.
외래키가 포함된 테이블을 자식테이블, 참조하는 테이블 외래키 값을 제공하는 테이블을 부모테이블이라한다.
ALTER TABLE 테이블명 ADD CONSTRAINT FOREIGN KEY (외래키지정컬럼) REFERENCES 부모테이블 (외래키 값 제공 컬럼);
이렇게 student테이블이 class 테이블을 참조하게끔 만들 수 있다.
돌피와 블루홀은 1번 반인 돌고래반, 네드와 가네샤는 2번 반인 코끼리반인 것을 알 수 있다.
'SQL' 카테고리의 다른 글
[MYSQL]ORDER BY (정렬),이스케이프 문자, LIMIT, OFFSET, 패턴 매칭 (0) | 2023.01.01 |
---|---|
[MYSQL]RDBMS, SQL 기본 명령문 (SELECT, DESC, AS), NULL특징 (0) | 2023.01.01 |