아침에 알고리즘 해설 듣고 10시부터 4시까지 SQL, DB 특강을 들었다.
강의노트가 꽤 길어서 기대를 했었는데...
강의 중간에 튜터님도 에러를 해결하지 못해 우왕좌왕하는 모습을 보여... 집중을 하기가 힘들었다. (강의 준비가 제대로 된 건지 의심이 간다...)
dbeaver, workbench 같은 GUI 프로그램을 실무에서 주로 사용하셔서 명령어를 많이 잊어버리셨다고 했는데... 그래도 명령어를 배웠기 때문에 정리해보려고 한다.
-- 데이터 베이스 생성
CREATE DATABASE sparta_test
-- 테이블 사용
USE sparta_test.student;
-- 학생 테이블 생성
CREATE TABLE student(
id int PRIMARY KEY AUTO_INCREMENT
-- AUTO_INCREMENT 자동 증가 기능을 수행하는 키워드.
-- 기본적으로 AUTO_INCREMENT의 시작 값은 1이며 새 레코드마다 1 씩 증가한다.
,
name varchar(50) NOT NULL
,
email varchar(50) UNIQUE
);
-- 지역 테이블 생성
CREATE TABLE sparta_test.city(
id int PRIMARY KEY AUTO_INCREMENT
,
name varchar(50) NOT NULL
);
-- 학생테이블 수정(city_id) 추가 및 외래키 등
ALTER TABLE sparta_test.student ADD COLUMN city_id int NOT null
,
ADD CONSTRAINT `fk_city_table_id`
FOREIGN KEY student(city_id) REFERENCES city(id);
-- 도시 데이터 생성
INSERT
INTO
city (name)
VALUES
('서울'),
('도쿄'),
('뉴욕'),
('상하이'),
('파리')
INSERT
INTO
student (name)
VALUES
('김민수'),
('한동주'),
('우태현')
-- 학생 이메일 업데이트
UPDATE
student
SET
email = 'hjd@naver.com'
WHERE
id = 5
-- 학생 검색 (이메일)
SELECT
*
FROM
student s
WHERE
email IS null
-- 학생 데이터 삭제
DELETE FROM student
WHERE id = 1;
-- 전체 학생 조회
SELECT * FROM student s
-- 전체 도시 조회
SELECT * FROM city c
(결국 인프런 SQL 강의 추가로 결제함 ^-^...)
데이터 타입, 길이
를 가지게 되는 것INSERT INTO <TABLE 명>
(컬럼명, 컬럼명, ...)
VALEUS (값, 값, ...)
-- 특정 테이블에 레코드를 추가 (컬럼과 값)
UPDATE <TABLE 명>
SET <컬럼명> = 값, <컬럼명> = 값, ...
WHERE <조건식>
-- 특정 컬럼의 내용을 수정
-- WHERE 조건을 설정하지 않으면 특정 컬럼명의 모든 값이 변경됨
-- (SQL은 집합 명령어이기 때문)
DELETE <테이블명>
WHERE <조건식>
-- 특정 테이블의 조건에 해당하는 컬럼 삭제