반응형
📖 문제 1
userTBL, buyTBL이라는 두 테이블을 생성하고, 다음 조건에 맞게 관계를 설정하세요.
- userTBL: 회원 정보를 저장하는 테이블
- buyTBL: 회원이 구매한 상품 정보를 저장하는 테이블
- buyTBL.userid는 userTBL.userid를 참조하는 외래 키로 설정합니다.
📦 테이블 생성 쿼리
CREATE TABLE userTBL (
userid NVARCHAR(50) PRIMARY KEY,
username NVARCHAR(50) NOT NULL,
birthyear INT NULL,
addr NVARCHAR(50),
mobile1 NVARCHAR(50) NULL,
mobile2 NVARCHAR(50) NULL,
height INT NULL,
mdate DATE NULL
);
CREATE TABLE buyTBL (
idnum INT PRIMARY KEY,
userid NVARCHAR(50),
prodname NVARCHAR(50),
groupname NVARCHAR(50) NULL,
price INT NULL,
amount INT NULL,
FOREIGN KEY (userid) REFERENCES userTBL(userid)
);
💬 해설
- userTBL은 userid를 기본 키로 가지며, 고객의 개인정보를 저장합니다.
- buyTBL은 구매 이력을 저장하며, userTBL.userid와 외래 키로 연결되어 회원 정보를 참조합니다.
💡 학습 포인트
- PRIMARY KEY: 테이블의 고유 식별자 설정
- FOREIGN KEY: 다른 테이블의 열을 참조하여 테이블 간 관계 형성
- NULL 가능 여부 지정: 데이터 입력 유연성을 확보하기 위해 NULL을 명시함
📖 문제 2
각 테이블에 데이터를 입력하세요.
userTBL에는 회원 10명, buyTBL에는 구매 데이터 12건을 삽입합니다.
📦 데이터 삽입 쿼리
-- userTBL에 회원 정보 삽입
INSERT INTO userTBL VALUES
('LSG', N'이승기', 1987, N'서울', '011', '11111111', 182, '2008.8.8'),
('KBS', N'김범수', 1979, N'경남', '011', '22222222', 173, '2012.4.4'),
('KKH', N'김경호', 1971, N'전남', '019', '33333333', 177, '2007.7.7'),
('JYP', N'조용필', 1950, N'경기', '011', '44444444', 166, '2009.4.4'),
('SSK', N'성시경', 1979, N'서울', NULL, NULL, 186, '2013.12.12'),
('LJB', N'임재범', 1963, N'서울', '016', '66666666', 182, '2009.9.9'),
('YJS', N'윤종신', 1969, N'경남', NULL, NULL, 170, '2005.5.5'),
('EJW', N'은지원', 1978, N'경북', '011', '88888888', 174, '2014.3.3'),
('JKW', N'조관우', 1965, N'경기', '018', '99999999', 172, '2010.10.10'),
('BBK', N'바비킴', 1973, N'서울', '010', '00000000', 176, '2013.5.5');
-- buyTBL에 구매 정보 삽입
INSERT INTO buyTBL VALUES
(1, 'KBS', N'운동화', NULL, 30, 2),
(2, 'KBS', N'노트북', N'전자', 1000, 1),
(3, 'JYP', N'모니터', N'전자', 200, 1),
(4, 'BBK', N'모니터', N'전자', 200, 5),
(5, 'KBS', N'청바지', N'의류', 50, 3),
(6, 'BBK', N'메모리', N'전자', 80, 10),
(7, 'SSK', N'책', N'서적', 15, 5),
(8, 'EJW', N'책', N'서적', 15, 2),
(9, 'EJW', N'청바지', N'의류', 50, 1),
(10, 'BBK', N'운동화', NULL, 30, 2),
(11, 'EJW', N'책', N'서적', 15, 1),
(12, 'BBK', N'운동화', NULL, 30, 2);
💬 해설
- 한 번에 여러 행을 삽입할 수 있도록 VALUES 뒤에 쉼표로 구분된 다중 레코드를 사용합니다.
- 문자열 한글 값은 반드시 N'' 형식으로 유니코드 문자열로 처리해야 한글이 깨지지 않습니다.
💡 학습 포인트
- INSERT INTO는 전체 열 삽입 또는 선택적 열 삽입 방식 둘 다 가능
- 외래 키가 설정된 경우, 참조 테이블(userTBL)에 먼저 데이터가 있어야 삽입 가능
- 한글 문자열은 항상 N'한글' 형식으로 삽입
📌 정리하자면, 이번 실습에서는 SQL Server에서 기본 테이블을 생성하고,
데이터를 삽입하고, 테이블 간 관계 설정(외래 키)까지 완성하는 전체 흐름을 학습했습니다.
이는 모든 SQL 실습의 출발점이 되는 필수 내용입니다.
'SQL Server > 연습문제' 카테고리의 다른 글
SQL Server 실전 쿼리 작성법 - 조건 검색 및 정렬, 삽입 (0) | 2025.06.11 |
---|---|
SQL Server 서브쿼리 & 조건 실습 모음 (0) | 2025.06.11 |
SQL Server JOIN 실습 - 구매회원, 구매기록 조회하기 (0) | 2025.06.11 |
SQL Server 연습문제 - 특정 연도 주문 합계 조건으로 고객 정보 조회하기 (HAVING, INNER JOIN) (0) | 2025.06.10 |
SQL Server 연습문제 - JOIN, 서브쿼리, NOT EXISTS 실습 (0) | 2025.06.04 |
SQL Server 연습문제 - 테이블 생성, 데이터 삽입/수정/삭제 실습 (0) | 2025.06.02 |