1. INSERT
한 행 추가
INSERT INTO 테이블명(컬럼명1, 컬럼명2, 컬럼명3, ...)
VALUE (값1, 값2, 값3, ...)
또는
INSERT INTO 테이블명(컬럼명1, 컬럼명2, 컬럼명3, ...)
VALUES (값1, 값2, 값3, ...)
한번에 여러행 추가
INSERT INTO 테이블명(컬럼명1, 컬럼명2, 컬럼명3, ...)
VALUES
(값1, 값2, 값3, ...),
(값1, 값2, 값3, ...),
(값1, 값2, 값3, ...)
sample)
desc `user`;
select * from `user`;
-- 한 행 추가
insert into `user`
( -- id 컬럼은 auto_increment이므로 추가하지 않는다.
`name`,
`yyyymmdd`,
`hobby`,
`email`,
`introduce`, -- nullable 컬럼인 경우 꼭 넣지않아도 된다
`createdAt`, -- 기본값이 current_timestamp이므로 넣지않아도 현재시간으로 들어간다.
`updatedAt`)
value
(
'김유정',
'19960409',
'독서,노래,영화',
'kyj@naver.com',
'안녕하세요.\n저는 누구일까요?',
now(), -- 현재시간을 넣을 때는 now 함수 사용
now()
);
-- 여러 행 추가
insert into `user`
(`name`, `yyyymmdd`, `hobby`, `email`, `introduce`, `createdAt`, `updatedAt`)
values
('김꾸꾸', '20190126', '멍때리기, 장난치기', 'kkk@gmail.com', '김꾸꾸입니다', now(), now()),
('신바다', '20201127', '사냥하기', 'ggggg@naver.com', '나랑 놀아줄 집사 모집합니다', now(), now()),
('신바다', '19980506', '컴퓨터하기', 'aaaa@aaa.com', '게임 더 하겠습니다', now(), now());
2. SELECT
테이블 전체 조회
SELECT *
FROM 테이블명
또는
SELECT 컬럼명1, 컬럼명2, ...
FROM 테이블명
조건에 일치하는 데이터 조회
SELECT 컬럼명1, 컬럼명2, ...
FROM 테이블명
WHERE 조건
테이블명 별칭(Alias) 지정
SELECT *
FROM 테이블명 AS 별칭
컬럼명 별칭(Alias) 지정
SELECT 컬럼명1 AS 별칭1, 컬럼명2 AS 별칭2
FROM 테이블명
특정 컬럼 중복값 제거
SELECT DISTINCT 컬럼명1
FROM 테이블명
데이터 전체 개수 조회
SELECT COUNT(*) FROM 테이블명
3. UPDATE
컬럼명이 값인 데이터 수정
UPDATE 테이블명
SET 컬럼명1=값1, 컬럼명2=값2, ...
WHERE 컬럼명=값
4. DELETE
모든 데이터 삭제(마지막으로 추가된 id부터 다시 추가됨)
DELETE
FROM 테이블명
모든 데이터 삭제(초기화 - id 1부터 추가됨)
TRUNCATE TABLE 테이블명
조건에 해당하는 데이터 삭제
DELETE
FROM 테이블명
WHERE 조건
- => 컬럼들의 전체를 가져오겠다
fromuseruser 테이블에서
# 테이블 전체 조회
select from `user`;
select `id`, `name`, `yyyymmdd`, `hobby`, `email`, `introduce`, `createdAt`, `updatedAt`
from `user`;
-- 테이블명에 별칭 붙이기 workbench 프로그램에서 보기에 바뀌는 건 없음
select from `user` AS `person`;
-- 컬럼 명에 별칭 붙이기 조회 후 컬럼명이 변경되어 보임
select `id`, `name` AS `이름`, `yyyymmdd` AS '생년월일', `hobby` AS 취미, `email`, `introduce`, `createdAt`, `updatedAt`
from `user`;
-- 특정 컬럼 중복값 제거 예) 동명이인 제거
select distinct `name` from `user`;
-- 데이터의 개수(행) 조회 이나 1 이나 성능상 차이가 없다(아무거나 쓰기)
select count() from `user`;
select count(1) from `user`;
select count(`introduce`) from `user`; -- introduce 컬럼의 값이 null이 아닌 행만 카운팅
select from `user`;
-- 조건에 일치하는 데이터 조회
# id가 3번인 데이터(행) 조회
select from `user` where `id` = 3;
# 이름이 '신바다'인 사용자의 생년월일 조회 값은 주황색 ''
select `yyyymmdd` from `user` where `name` = '신바다';
# 이름이 '신바다'가 아닌 사용자의 데이터 조회
select from `user` where `name` != '신바다';
# 데이터의 생성일이 특정일 이후인 데이터들 조회
select from `user` where `createdAt` '2023-11-16 170000';
# 자기소개가 없는 (null)인 데이터 조회 = ★★★ = 아님 주의 ★★★
select from `user` where `introduce` is null;
# 자기소개가 있는 (null)이 아닌 데이터 조회 = ★★★ = 아님 주의 ★★★
select from `user` where `introduce` is not null;
# id가 1, 3, 4번인 데이터 조회
select from `user` where `id` in (1, 3, 4);
# 논리연산자
# id가 3번이거나 4번인 데이터 조회
select from `user` where `id` = 3 or `id` = 4;
# 이름이 '신바다'이면서 취미는 '사냥하기'인 데이터 조회
select from `user` where `name` = '신바다' and `hobby` = '사냥하기';