728x90
데이터베이스 만들기
drop database if exists martet_db;
create database martet_db;
데이터베이스 선택하기
USE market_db;
구매 테이블 만들기
전체 코드
CREATE TABLE buy -- 구매 테이블product
( num INT AUTO_INCREMENT NOT NULL PRIMARY KEY, -- 순번(PK)
mem_id CHAR(8) NOT NULL, -- 아이디(FK)
prod_name CHAR(6) NOT NULL, -- 제품이름
group_name CHAR(4) , -- 분류
price INT NOT NULL, -- 가격
amount SMALLINT NOT NULL, -- 수량
FOREIGN KEY (mem_id) REFERENCES member(mem_id)
);
auto_increment
num INT AUTO_INCREMENT NOT NULL PRIMARY KEY,
자동으로 숫자를 입력해줌!
데이터 입력하기
INSERT INTO member VALUES('TWC', '트와이스', 9, '서울', '02', '11111111', 167, '2015.10.19');
CHAR, VARCHAR, DATE형은 작은따옴표를 사용하고 INT형은 작은따옴표 없이 그냥 넣어주면 된다.
INSERT INTO buy VALUES(NULL, 'BLK', '지갑', NULL, 30, 2);
NULL인 이유는 num은 자동으로 입력되기 때문에 처음엔 NULL로 넣어줬다
Select문 알아보기
핵심 형식
select 열_이름
from 테이블_이름
where 조건식
group by 열_이름
having 조건식
order by 열_이름
limit 숫자
select문 구성
user market_db;
select * from member;
- select : 테이블에서 데이터를 가져와라
- * : 일반적으로 ‘모든것’을 의미한다 원래는 열이 들어갈 자리이기 때문에 ‘모든 열’을 뜻한다
- from : 다음 테이블 이름이 나온다. 어떤 테이블에서 내용을 가져와라 라는 뜻
- 마지막 : 조회할 테이블 이름
원칙
원래 테이블의 전체 이름음 데이터베이스_이름.테이블_이름 형식으로 표현해야한다.
select * from market_db.member;
하지만 데이터베이스 이름을 생략하면 use문으로 지정해놓은 데이터베이스가 자동으로 선택된다.
여러 열 지정해서 가져오기
select addr, debut_date, mem_name from member;
별칭
한칸 띄우고 적으면 되는데 만약 별칭에 공백이 있다면 큰따옴표로 묶어준다
select addr 주소, debute_date "데뷔 일자", mem_name from member;
특정한 조건만 조회하기
기본
select 열_이름 from 테이블_이름 where 조건식;
또는
select 열_이름
from 테이블_이름
where 조건식;
관계연산자, 논리 연산자
숫자로 표현된 데이터는 범위를 지정할 수 있다.
select mem_id, mem_name
from member
where height <= 162;
2가지 이상의 조건 주기
두가지 조건 모두 만족
select mem_name, height, mem_number
from member
where height >= 165 and mem_number > 6;
두가지 중에 한가지 조건만 만족
select mem_name, height, mem_number
from member
where height >= 165 or mem_number > 6;
범위를 구하는 경우에 between ~ and
select mem_name, height
from member
where height between 163 and 165;
in()
주소와 같은 데이터는 문자로 표현되기 때문에 어느 범위에 들어있다고 표현할 수 없다. 그럴땐 in을 써보자
select mem_name, addr
from member
where addr in('경기', '전남', '경남');
like
문자열의 일부 글자를 검색하려면 like를 사용한다. 예를 들어 이름의 첫글자가 ‘우’로 시작하는 회원을 찾을 때 쓴
다
select *
from member
where mem_name like '우%';
핑크로 끝나는 이름을 찾을 수도 있다. 그럴땐 언더바 두개를 사용하자
select *
from member
where mem_name like '__핑크';
서브쿼리
select 안에 select가 또 들어갈 수 있다. 이것을 서브쿼리 또는 하위 쿼리라고 한다. 이름이 에이핑크인 회원의 평균 키 보다 큰 회원을 검색하고 싶다고 가정해보자
select height
from member
where mem_name = '에이핑크';
select mem_name, height
from member
where height > 164;
위 두개의 sql문을 합치면 된다
select mem_name, height
from member
where height > (select height from member where mem_name = '에이핑크');
반응형
'데이터' 카테고리의 다른 글
데이터 변경을 위한 sql문 (0) | 2024.01.18 |
---|---|
깊게 알아보는 select 문 (0) | 2024.01.16 |
데이터베이스 개체 (0) | 2023.12.30 |
데이터베이스 모델링 (0) | 2023.12.21 |
SQL 문 (0) | 2023.07.23 |