http://www.tcpschool.com/mysql/mysql_basic_update
WHERE
MySQL의 조건문
여러가지 문법을 수행할 때 특정한 조건을 주는 역할을 한다.
하나의 조건을 사용할 때에는
WHERE 컬럼명 = 조건
과 같이 사용하면 되고
AND, OR, NOT, LIKE 등등이 있는데, 더 자세한 문법은 연산자 파트에서 하기로 하고 우선 단순하게 사용하기로 한다.
UPDATE
UPDATE문을 이용해서 조건에 맞는 데이터를 수정할 수 있다.
UPDATE 테이블명
SET 컬럼명1 = 데이터값1, 컬럼명2 = 데이터값2, ...
WHERE 컬럼명 = 데이터값
id가 5인 name = '테스트'인 값을 변경해보자
UPDATE user
SET name = '븨나네'
WHERE id = 5;
DELETE
DELETE문을 이용해서 조건에 맞는 데이터를 삭제할 수 있다.
DELETE FROM 테이블이름
WHERE 컬럼명 = 데이터값
이번엔 UPDATE문에서 쓰인 테이블에서 name = '임꺽정' 인 데이터를 지워보자
DELETE FROM user WHERE name = '임꺽정';
DELETE문으로 데이터를 삭제하고나서 새로운 값을 추가하면 id가 자동으로 재정렬되는 것이 아니라 기존에 추가되었던 id 이후 번호로 추가가 된다.
여기서 AUTO_INCREMENT는 자동으로 초기화되지 않는다는 점을 알 수 있다.
따라서 순서대로 다시 id를 정렬하려면 초기화 과정을 진행해야한다.
id 재정렬
set @cnt = 0;
update 테이블이름 set 테이블이름.해당컬럼이름 = @cnt := @cnt+1;
id를 다시 순서대로 insert하기
ALTER TABLE 테이블명 AUTO_INCREMENT=추가하려는번호;
name = '테스트2', birth_day = '2022-02-02'와 name = '테스트3', birth_day = '2022-02-02' 추가
정상적으로 추가되는 것을 확인할 수 있다.
SELECT
다양한 방법으로 테이블을 조회할 수 있는 SELECT문은 위에서 데이터들을 조회하기 위해 많이 사용해왔다.
기본 구조는 다음과 같다.
SELECT 컬럼명
FROM 테이블명
WHERE 조건;
테이블의 모든 데이터 조회
SELECT * FROM 테이블명;
필드명을 입력하는 곳에 *
를 넣으면 모든 테이블의 컬럼을 조회할 수 있다.
특정 데이터 조회(WHERE)
위에서 언급했듯이 WHERE절에 다양한 연산자를 이용하여 더 자세하게 데이터를 조회할 수 있다.
SELECT * FROM user
WHERE name = '테스트';
이번엔 id가 5보다 크면서 birth_day가 2022-02-23인 데이터를 조회해보자
SELECT * FROM user
WHERE id > 5 AND birth_day = '2020-02-23';
birth_day가 2022-02-23인 데이터는 id가 7인 데이터밖에 없었으므로 같은 결과가 출력된다.
특정 컬럼만을 선택
SELECT name, birth_day FROM user;
SELECT 다음에 *
대신 특정 컬럼명을 입력하면 해당 테이블의 특정 컬럼만 가져올 수 있다.
쉼표(,)로 여러개의 컬럼을 한번에 명시할 수 있다.
중복되는 값 제거(DISTINCT)
만약 같은 필드에 중복되는 값을 가지는 레코드가 있다면, DISTINCT 키워드를 사용하여 그 값이 한 번만 선택되도록 설정할 수 있다.
기존 필드에는 중복되는 값이 없으므로 중복되는 값을 추가하여 진행하였다.
SELECT DISTINCT name FROM user;
name이 중복되는 값을 제외하고 출력한다.
마지막에 추가되었던 '테스트'가 제외된 것을 확인할 수 있다!
선택한 결과를 정렬(ORDER BY)
이번엔 특정한 기준으로 데이터를 정렬해서 출력하는 방법이다.
실제로 테이블이 정렬되는 것이 아니라 출력할 때만 정렬하는 것이므로 헷갈리지 말 것!
기본 정렬은 오름차순이고 ASC 키워드로 직접 오름차순으로 명시할 수도 있다.
또, DESC는 내림차순 정렬이다.
종종 헷갈리는데 오름차순은 작은 수 -> 큰 수 순서이고, 내림차순은 큰 수-> 작은 수 순서이다
SELECT * FROM user
ORDER BY birth_day DESC;
birth_day 컬럼 기준으로 내림차순을 해보자.
birth_day 컬럼을 보면 내림차순으로 성렬된 것을 확인할 수 있다.
별칭(alias)을 붙여 조회
컬럼명에 특정한 별명을 붙여서 조회할 수도 있다.
별칭은 복잡한 테이블명이나 컬럼명을 좀 더 보기 쉽게 만들어주는 역할을 한다.
// 필드명에 별칭 붙이기
SELECT 필드명 AS 별칭
FROM 테이블명;
// 테이블명에 별칭 붙이기
SELECT 필드명
FROM 테이블명 AS 별칭;
name과 birth_day 컬럼에 각각 '이름'과 '생일'이라는 별칭을 붙여주었다.
별칭 역시 테이블 자체를 변경하는 것이 아니라 조회하는 순간의 결과만 바꿔주는 점을 잊지 말자
SELECT name AS '이름', birth_day AS '생일' FROM user;
보통은 별칭으로 한글을 안붙이는 것 같지만 눈에 쉽게 보여서 공부하기 좋게 표현해보았다!
기본 문법인 create, alter, drop, insert, update, delete, select의 정리가 끝났다.
MySQL과 Spring boot를 연동하고나서 자주 사용하게 될 기본 문법들이고, 한번 삽질까지 제대로 했으니 꾸준히 복습하면서 까먹지 않도록 하자...
'Study > Database' 카테고리의 다른 글
[MySQL] 제약 조건 (0) | 2022.03.02 |
---|---|
[MySQL] 연산자와 함수 (0) | 2022.03.01 |
[MySQL] 타입: 숫자, 문자열, 날짜와 시간 (0) | 2022.03.01 |
[MySQL] MySQL 문법: 1 (0) | 2022.02.20 |
[MySQL] MySQL : 시작하기 (0) | 2022.02.14 |