SELECT t_product.pname AS 구매상품
FROM t_order
INNER JOIN t_user ON t_order.userNo = t_user.id
INNER JOIN t_product ON t_order.productNo = t_product.id
WHERE t_user.userName = '손흥민';
SQL 쿼리 설명 ==> '손흥민'이라는 회원이 구매한 상품의 이름을 조회하는 명령어입니다.
주문 내역, 사용자 정보, 상품 정보가 각각 다른 테이블에 나뉘어 있을 때, 이를 하나로 연결(JOIN)하여 원하는 데이터를 추출하는 구조입니다. 각 구문별 상세 설명은 다음과 같습니다.
SELECT t_product.pname AS 구매상품: 최종적으로 출력할 데이터를 지정합니다. t_product 테이블의 pname(상품명) 컬럼을 가져오며, 출력 결과 화면에서는 컬럼 이름을 구매상품이라는 별칭으로 보여줍니다.FROM t_order: 조회의 기준이 되는 중심 테이블로 t_order(주문 테이블)를 지정합니다.INNER JOIN t_user ON t_order.userNo = t_user.id: 주문 테이블과 사용자 테이블(t_user)을 결합합니다. 두 테이블을 연결하는 기준은 주문 테이블의 userNo(구매자 번호)와 사용자 테이블의 id(사용자 고유 번호)가 일치하는 데이터입니다.INNER JOIN t_product ON t_order.productNo = t_product.id: 주문 테이블과 상품 테이블(t_product)을 결합합니다. 주문 테이블의 productNo(주문된 상품 번호)와 상품 테이블의 id(상품 고유 번호)가 일치하는 데이터를 연결합니다.WHERE t_user.userName = '손흥민': 이렇게 세 테이블을 모두 연결한 데이터 중에서, 사용자 이름(userName)이 '손흥민'인 조건만 필터링하여 최종 결과를 가져옵니다.drop database if exists a5;
create database a5;
use a5;
create table dept (
id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
PRIMARY KEY(id),
regDate DATETIME NOT NULL,
name CHAR(100) NOT NULL UNIQUE
);
insert into dept
SET regDate = NOW(),
name = '홍보';
INSERT INTO dept
SET regDate = NOW(),
name = '기획';
select *
from dept;
create table emp (
id int(10) unsigned not null auto_increment,
primary key(id),
regDate datetime not null,
name char(100) not null,
deptName char(100) not null
);
insert into emp
set regDate = NOW(),
name = '홍길동',
deptName = '홍보';
INSERT INTO emp
SET regDate = NOW(),
name = '홍길순',
deptName = '홍보';
INSERT INTO emp
SET regDate = NOW(),
name = '임꺽정',
deptName = '기획';
select *
from dept;
update dept
set name = '마케팅'
where name = '홍보';
select *
from emp;
update emp
set deptName = '마케팅'
where deptName = '홍보';
SELECT *
FROM emp;
UPDATE dept
SET name = '홍보'
WHERE name = '마케팅';
SELECT *
FROM dept;
UPDATE emp
SET deptName = '홍보'
WHERE deptName = '마케팅';
SELECT *
FROM emp;
ALTER TABLE emp add COLUMN deptId int(10) unsigned not null;
select *
from emp;
update emp
set deptId = 1
where deptName = '홍보';
UPDATE emp
SET deptId = 2
WHERE deptName = '기획';
SELECT *
FROM emp;
alter table emp drop column deptName;
select *
from dept;
UPDATE dept
SET name = '마케팅'
WHERE name = '홍보';
select *
from dept;
select *
from emp;
select *
from emp;
SELECT *
FROM dept
where id = 1;
SELECT emp.*, dept.name AS 부서명
FROM emp
inner join dept;
SELECT emp.*, dept.id, dept.name AS 부서명
FROM emp
inner join dept
ON emp.deptId = dept.id;
SELECT emp.id AS 사원번호,
emp.name AS 사원명,
DATE(emp.regDate) AS 입사일,
dept.name AS 부서명
FROM emp
INNER JOIN dept
ON emp.deptId = dept.id
order by 부서명, 사원번호;