SELECT ~ FROM ~ WHERE문 : 데이터 조회
USE : USE 데이터베이스_이름;, SELECT문 실행을 위해 사용할 데이터 베이스 지정
USE market_db;
SELECT height 키, debut_date, addr #열 순서는 관계 없음 #지정한 순서대로 보여줌
#띄우고 작성하면 별칭 지정 가능 ex) 키
FROM member;
WHERE절: SELECT문의 조건
BETWEEN ~ AND = ≥, ≤ 숫자 범위 표현
SELECT mem_name, height
FROM member
WHERE height BETWEEN 163 AND 165;
IN ~(문자): OR과 비슷, 문자에 사용
SELECT mem_name, height
FROM member
WHERE height BETWEEN 163 AND 165;
LIKE ‘우%’: 우가 들어가는 회원, 알고자하는 값의 이름을 정확히 모를 때
LIKE ‘__핑크’: %는 글자 수 상관 x, _는 한글자 단위
ORDER BY절: 결과를 정렬해주는 역할
결과 값이나 개수에 대해서는 영향을 주지 않고, 출력되는 순서에 영향을 미침
SELECT 열 이름
FROM 테이블_이름
WHERE 조건식
GROUP BY 열_이름
HAVING 조건식
ORDER BY 열_이름
LIMIT 숫자
기본적으로 오름차순 ASC(생략 가능)이다. 내림차순 정렬을 위해 DESC로 설정할 수 있다.
여러 기준을 설정할 수 있으나, 앞에 작성된 것으로 정렬된 후 다음 조건에 따라 정렬된다.
SELECT mem_id, mem_name, debut_date, height
FROM member
WHERE height >= 164
ORDER BY height DESC, debut_date ASC;
LIMIT: 지정한 개수 만큼의 행을 볼 수 있음
Limit 3 #3개
Limit 3,2 #3번째부터 2개 #3,4번째
DISTINCT: 중복된 것은 하나만 보여줌
SELECT DISTINCT addr FROM member;
GROUP BY절: 그룹을 묶어주는 역할
회원별로 구매한 개수를 알고 싶다면? GROUP BY로 합치기!
SELECT mem_id, SUM(amount) "총 구매금액" FROM buy GROUP BY mem_id;
AVG: 평균 값을 알려줌COUNT: 행의 개수를 알려줌
❗️GROUP BY 함수에서 조건을 쓸 때에는 HAVING절 사용❗️
총 구매 금액이 1000만원이 넘는 회원을 알고 싶다면?
SELECT mem_id "회원 아이디", SUM(price*amount) "총 구매 금액"
FROM buy
GROUP BY mem_id
HAVING SUM(price * amount) > 1000;
ORDER BY SUM(price*amount) DESC;
INSERT INTO 문 : 데이터 입력
INSERT의 기본 형식은
INSERT INTO 테이블 [(열 이름,....)} VALUES(값 이름,...) 이다. 이 때 열 이름은 생략 가능하다.
USE market_db;
CREATE TABLE hongong1 (toy_id INT, toy_name CHAR(40), age INT);
INSERT INTO hongong1 VALUES(1, '우디', 25);
INSERT INTO hongong1(toy_name, age, toy_id) VALUES('제시', 20, 3);
만약 자동으로 입력하고 싶다면?? AUTO_INCREMENT를 사용한다. 단, 기본키 지정(PRIMARY KEY)을 해줘야 한다.
INSERT 문에서 null값을 입력해주면 자동으로 id를 만들어준다.
CREATE TABLE hongong2 (
toy_id INT AUTO_INCREMENT PRIMARY KEY,
toy_name CHAR(4),
age INT);
INSERT INTO hongong2 VALUES (NULL, '보핍', 25);
AUTO_INCREMENT로 어디까지 입력되었는지 알고 싶을 때? SELECT LAST_INSERT_ID();로 알 수 있다.
ALTER TABLE ~ AUTO_INCREMENT=100; 으로 지정하면, 100부터 id가 시작한다. SET @@auto_increment_increment = 3;으로 지정하면 3씩 증가한다(100 -> 103)
ALTER TABLE hongong3 AUTO_INCREMENT=1000;
SET @@auto_increment_increment=3;
INSERT INTO ~ SELECT를 사용하면 다른 테이블의 데이터를 한 번에 입력할 수 있다.
CREATE TABLE city_popul ( city_name CHAR(35), population INT);
INSERT INTO city_popul
SELECT Name, Population FROM world.city; #world라는 외부 테이블에서 city라는 열에 접근
UPDATE문 : 기존 데이터 값 수정
UPDATE 테이블_이름
SET 열1 = 값1 ...;
WHERE 조건;
DB에서 열 이름 Seoul을 한글로 바꾸고 싶다면, 기존에 만들어진 데이터는 UPDATE문을 통해 접근해야 한다.
UPDATE city_popul
SET city_name = '뉴욕', population = 0
WHERE city_name = 'New York';
SELECT * FROM city_popul WHERE city_name = '뉴욕';
WHERE절을 빼면? city_popul의 전체 데이터의 이름이 '뉴욕'으로 바뀜!! 조심!!
DELETE문 : 데이터 입력
DELETE FROM 테이블_이름
WHERE 조건;
앞 자리가 New로 시작하는 5가지의 데이터 지우기
DELETE FROM city_popul
WHERE city_name LIKE 'New%'
LIMIT 5;
데이터를 지울 때에는 조심!!
'Study > SQL' 카테고리의 다른 글
JOIN (1) | 2022.07.31 |
---|---|
MySQL 데이터의 형식 (0) | 2022.07.31 |
COMPANY DB SQL문 (0) | 2022.07.20 |