Mysql - CRUD 작업하기(2)

hyunnu·2021년 10월 9일
0
post-thumbnail
  • 쿼리는 DB에 질의를 통해 원하는 데이터를 조회, 수정, 입력, 삭제의 작업을 할 수 있게 해주는 명령어이다.
  • 쿼리에는 보통 CRUD라는 용어가 있다.
C: create를 뜻하며 생성한다는 의미를 가진다. 주로 insert문이 이에 해당한다.
R: read를 뜻하며 어떤 데이터를 읽는다는 의미를 가지며, Select문이 이에 해당한다.
U: update를 뜻하며 말 그대로 수정을 뜻하고, Update문이 이에 해당한다. 
D: delete를 뜻하며 삭제를 의미하고, Delete문이 이에 해당한다.

Create

INSERT INTO 테이블(컬럼명) VALUES (값들)

INSERT INTO user(name, age, married, comment) VALUES ('david', 27, 0, '자기소개1');

Read

SELECT 컬럼 FROM 테이블명

단순 테이블 전체 컬럼으로 전체 데이터 조회

SELECT * FROM user;

선택적인 컬럼으로 전체 데이터 조회

SELECT name, married FROM user;
SELECT name as userName FROM user; //as는 생략가능 가독성을 위해 써줄 때가 있음

조건을 이용한 데이터 조회

SELECT * FROM user WHERE 조건

조건의 종류

  • and
SELECT name, age FROM user WHERE married = 1 AND age > 30;
  • or
SELECT id, name FROM user WHERE married = 0 OR age > 30;
  • between
SELECT * FROM user WHERE age BETWEEN 28 AND 30;
  • in
SELECT * FROM user WHERE id in (1,2,3);
=== SELECT * FROM user WHERE id = 1 or id = 2 or id = 3;
  • like/ilike
SELECT * FROM user WHERE name like %david%;

문자열을 포함하는 양쪽으로 어떤 문자가 와도 상관없이 조회 가능
ilike의 경우는 모든 문자를 소문자로 변경해서 검색한다. like는 대소문자를 구분하는 반면
ilike는 모든문자를 소문자로 변환해서 검색하기 때문에 대소문자를 구분하지 않는다.

  • is null, is not null
SELECT * FROM user WHERE name is not null;

name컬럼이 null값이 아닌 로우만 조회하겠다는 의미이다.
is not null 대신 is null 을 사용하면 name컬럼이 null인 데이터만 조회가 가능하다.

정렬을 이용해서 데이터 찾기

order by로 특정 컬럼값 순서대로 정렬 가능
desc 는 내림차순, asc 는 오름차순

SELECT id, name FROM user ORDER BY age DESC;

LIMIT, OFFSET

LIMIT으로 조회할 개수 제한

SELECT id, name FROM user  ORDER BY age DESC LIMIT 1;
OFFSET으로 앞의 로우들 스킵 가능 (OFFSET 2면 세 번째 것부터 찾음)

SELECT id, name FROM user ORDER BY age DESC LIMIT 1 OFFSET 1;

-- 테이블 NAME : TEST --

필드이름 | 타입


id | int(11) auto_increment not null
name | varchar(10)
email | varchar(30)


INSERT

INSERT into 테이블명 values()

  • 레코드를 삽입하는 명령어
INSERT into 테이블명 values('','정현우','aaa@gmail.com');
INSERT into 테이블명 id, name values('','정현우');

ALTER

  • 각종 정보를 수정

테이블 이름 수정

alter table test rename test1; 
rename table test to test1; 

-> test란 테이블 이름을 test1으로 바꾼다

필드 추가

alter table test add content text

-> content 란 필드를 추가

필드 삭제

alter table test drop content   

-> content 필드를 삭제

필드 이름 수정

alter table test change name myname 

-> name 필드를 myname으로 수정

필드 타입 수정

alter table test modify name varchar(30)   

-> name 필드를 타입을 varchar(30)으로 바꿈

UPDATE

UPDATE 테이블명 SET 컬럼 = 새값 WHERE 조건

  • 데이터베이스에 있는 데이터를 수정하는 작업
  • 데이터를 업데이트시 주의해야 할 점은 꼭 WHERE 절이 들어가야 한다는 점
UPDATE user SET comment = '안녕하세요 데이빗입니다' WHERE id = 1

DELETE

DELETE FROM 테이블명 WHERE 조건

DELETE FROM user WHERE id = 2;
  • DELETE문도 마찬가지로 where절을 꼭 확인하자
profile
Data Engineer / Back-End Developer

0개의 댓글