[MySQL] 기초 문법 정리 - 1
by Edward Park
Abstract
MySQL의 문법을 큰 기능별(Create, Read, Update, Delete)로 정리해 보았다. SQL은 따로 대소문자구분을 하지않으며 여기서는 명령어는 대문자를, 변수명은 소문자를 사용했다.
Create
-- Set Schema
CREATE TABLE classmates (
name TEXT,
age INTEGER,
address TEXT
);
CREATE TABLE classmates (
id INTEGER PRIMARY KEY AUTO_INCREMENT,
-- autoincrement가 지정되어있는 primary key의 경우
-- 삭제된 후 다시 데이터를 insert해도 삭제된 부분이 채워지지않는다.
name TEXT NOT NULL,
age INT NOT NULL,
address TEXT NOT NULL
);
ALTER TABLE classmates convert to character set UTF8; -- 한글사용을 위해 인코딩 변경
-- Insert data
INSERT INTO classmates
VALUES ('과메기', 23, '서울');
-- 특정 column만 채울수도 있음
INSERT INTO classmates (name, age, address)
VALUES
('바지락', 33, '울산'),
('가자미', 33, '부산'),
('가자미', 25, '김해')
;
Read
-- Read
SELECT * FROM classmates;
SELECT name, address FROM classmates;
SELECT id, name FROM classmates LIMIT 10; -- 10개만
SELECT id, name FROM classmates LIMIT 10 OFFSET 2 ; -- 3번부터 10개
SELECT DISTINCT address FROM classmates; -- 겹치지 않게 선택
-- where
SELECT id, name FROM classmates WHERE address='울산';
SELECT name FROM classmates WHERE name IS NOT NULL; -- name이 NULL이 아닌것
-- Order
SELECT * FROM users
ORDER BY age, balance DESC LIMIT 10; -- age는 asc
SELECT * FROM users
ORDER BY age DESC, balance ASC LIMIT 10;
-- 순서는 where 뒤에 order by
-- Group by
SELECT COUNT(*) FROM classmates
GROUP BY name; -- last_name 개수(COUNT(*) 반환
-- As
SELECT COUNT(*) AS name_count
FROM classmates
GROUP BY name; -- name_count로 column명 변경
Update
-- Update
UPDATE classmates SET name='갈매기' address='부산' where age=33; -- 변수명 업데이트
ALTER TABLE old RENAME TO new; -- 테이블명 변경
Delete
-- Drop table
DROP TABLE classmates
-- Delete
DELETE FROM classmates WHERE address='울산';