- SQL CRUD2020년 11월 04일 19시 38분 45초에 업로드 된 글입니다.작성자: sue24
SQL CRUD 기본 명령어들을 소개한 다음에
CRUD를 이용한 간단한 실습을 준비했습니다.
1. Create
C에는 INSERT INTO가 있다.
INSERT INTO <테이블 이름> (컬럼 이름, 컬럼 이름)
VALUES (컬럼 값, 컬럼 값),
(컬럼 값, 컬럼 값),
(컬럼 값, 컬럼 값);
이런 식으로 테이블에 데이터를 삽입해준다.
2. Read
저장된 데이터를 조회하고 검색하는 방법은 SELECT!
SELECT <조회할 컬럼> FROM <테이블 이름>;
조회할 컬럼은 ,를 사용해서 여러 개를 동시에 조회할 수 있고,
테이블의 모든 컬럼을 조회하려면 *를 사용한다.
테이블의 컬럼 순서와 무관하게
조회할 때 기재한 컬럼 순서대로 결과가 출력된다.
(*를 사용하면 테이블의 컬럼 순서대로 나온다.)
WHERE clause
Where 문은 R, U, D 세 개 모두에서 자주 쓰인다.
조회, 갱신, 삭제 대상을 좀 더 구체화시킬 수 있다.
Where 문은 대소문자를 구분하지 않는다.
people이라는 테이블에서 name 컬럼의 값이 Egg인 데이터를 조회하고자 할 때,
- SELECT * FROM people WHERE name='Egg';
- SELECT * FROM people WHERE name='EGG';
위의 두 문장은 같은 결과를 출력한다.
WHERE문은 FROM 뒤에 와야 한다.
WHERE문이 FROM 앞에 오면 에러가 난다.
컬럼별로 비교를 하는 조건을 쓸 수도 있다.
SELECT name FROM people WHERE people_id=age;
Aliases
출력된 결과를 좀 더 보기 쉽게 하기 위해서 쓴다.
저장된 데이터 자체를 변경하는 것이 아니라 보일 때만 다르게 출력하는 방법이다.
SELECT people_id AS id, name FROM people;
people 테이블에서 people_id 컬럼과 name 컬럼을 조회하는데,
people_id 컬럼은 id 컬럼이라고 출력한다.
SELECT name AS 'call me' FROM people;
위와 같이 조회할 컬럼명 바로 뒤에 AS를 쓰고 출력할 컬럼명을 쓴다.
여러 개를 조회할 때에는 AS문을 쓴 뒤에 바로 ,와 함께 다음 컬럼을 쓰면 된다.
변경할 이름이 한 단어이면 ''안에 안 넣어도 되지만
두 단어 이상이라면 ''안에 넣어야 한다.
3. Update
비밀번호 바꾸기, 프로필 사진 바꾸기 등
기존의 데이터를 변경할 때 사용한다.
UPDATE <테이블 이름> SET <변경할 내용> WHERE <조건>;
SET과 WHERE의 순서를 바꾸면 에러가 난다.
cats라는 테이블의 breed 컬럼의 값이 Tabby인 데이터의 age 컬럼 값을 14로 바꾸는 SQL 문은 다음과 같다.
UPDATE cats SET age=14 WHERE breed='Tabby';
중요한 것은 미리 기존의 데이터를 확인 후 업데이트를 하는 것이다.
이는 삭제를 할 때 역시 마찬가지인데,
업데이트나 삭제를 하고 나면 다시 되돌릴 수 없기 때문이다.
SELECT 구문과 필요하다면 WHERE 구문까지 활용해서 미리 확인을 한 뒤 변경을 하는 것이 좋다.
4. Delete
DELETE는 SELECT와 비슷하다.
DELETE FROM <테이블 이름> WHERE <조건>;
테이블의 데이터 중 조건에 해당하는 데이터만 지우는 문장이 위와 같고,
DELETE FROM <테이블 이름>;
이 문장은 테이블 전체를 지운다.
DROP과 다른 점이라면
DROP은 아예 테이블이 사라지는 것이지만
DELETE로 테이블을 지우면 테이블의 내용은 사라지고 테이블 자체는 남는다.
DELETE로 테이블을 지운 뒤 SELECT로 테이블 조회를 하면
Empty set이라는 응답을 한다.
DB 생성부터 삭제까지
책 정리하기 프로젝트!
- book_db 데이터베이스 생성하기
- books 테이블 생성하기
컬럼: book_id(primary key, not null), title(text), genre(text), score(number) - 책 데이터 넣기
- 모든 책 조회하기
- score가 4점 이상인 책 조회하기
- 소설을 조회하는데 book_id만 빼고 조회하기
- 모든 시의 score를 5점으로 변경하기
- 하나의 sql문으로 book_id가 5 이상인 책의 장르를 소설로 바꾸고 score를 3점으로 변경하기
- score가 3점 이하인 책을 삭제하기
- books 테이블 delete
- books 테이블 drop
- book_db 삭제하기

1번을 다 하고 나면 이렇게 book_db를 사용하고 있다고 떠야 합니다 - SHOW DATABASES;
CREATE DATABASE book_db;
USE book_db;
SELECT database(); - CREATE table books(
book_id INT NOT NULL PRIMARY KEY AUTO_INCREMENT
,title VARCHAR(100)
,genre VARCHAR(100)
,score INT
);
DESC books;
만약 테이블을 만들 때 프라이머리 키 컬럼에 auto_increment를 깜빡했다면?
(깜빡해봤다가 알게 되는 새로운 커맨드....)
ALTER TABLE <테이블 이름> MODIFY COLUMN <컬럼 이름> <컬럼 타입> AUTO_INCREMENT;
컬럼 이름과 컬럼 타입까지 써 주니까 primary key도 써 줘야겠지? 해서 써 주면
이미 프라이머리 키가 있다고 에러가 난다..
컬럼 타입은 아마 AUTO_INCREMENT라서 써 줘야 하는 것 같고..(컬럼 타입 안 써줘도 에러..) - INSERT INTO books (title, genre, score)
VALUES ('girls be ambitious', 'novel', 5)
,('sapiens', 'science', 5)
,("lab's temp", 'science', 5)
,('like netflix', 'business', 2)
,('pure love', 'novel', 1)
,('her', 'poetry', 3)
,('ant', 'novel', 4); - SELECT * FROM books;
- SELECT * FROM books WHERE score>=4;
- SELECT title, genre, score FROM books WHERE genre='novel';
이렇게 하나의 컬럼을 뺀 나머지 컬럼을 조회할 때
컬럼 이름을 다 명시해 줘야 되는 걸까 궁금해서 찾아봤는데
제가 찾은 한도 내에서는 일일이 명시해 줘야 된다고 하더라고요 - UPDATE books SET score=5 WHERE genre='poetry';
- UPDATE books SET genre='novel', score=3 WHERE book_id>=5;
- DELETE FROM books WHERE score<=3;
- DELETE FROM books;
- DROP TABLE books;
- DROP DATABASE book_db;
이렇게 하면 실습까지 끝!!
'SQL' 카테고리의 다른 글
데이터모델링의 이해 (0) 2022.03.17 44회 SQLD (0) 2022.03.15 SQL 더 나은 SELECT를 위하여 (0) 2020.11.08 SQL string functions (0) 2020.11.07 SQL 기본 (0) 2020.11.02 다음글이 없습니다.이전글이 없습니다.댓글