Query

김유정·2023년 11월 16일

데이터베이스

목록 보기
2/6

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 조건
  • => 컬럼들의 전체를 가져오겠다
    from user user 테이블에서
# 테이블 전체 조회
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` = '사냥하기';
profile
열심히 하자

0개의 댓글