목차
접기
728x90
반응형
😲 내가 만든 문제
User 테이블 존재하다면 삭제
DROP TABLE IF EXISTS `User`;
User 테이블 생성
CREATE TABLE `User`(
user_id INT(10) UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,
`name` CHAR(100) NOT NULL,
age INT(10) UNSIGNED NOT NULL,
city CHAR(100) NOT NULL
);
학교 테이블 존재하다면 삭제
DROP TABLE IF EXISTS School;
FK(외래키) 설정하는 학교 테이블 생성
CREATE TABLE School(
user_id INT(10) UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,
school_name CHAR(100) NOT NULL,
`description` TEXT NOT NULL,
FOREIGN KEY (user_id) REFERENCES `User` (user_id)
) ENGINE=INNODB DEFAULT CHARSET=utf8;
🔶 주의사항
- 외래키로 참조되어 있는 부모 테이블은 자식 테이블이 존재하다면 삭제할 수 없다.
- 자식 테이블을 먼저 삭제해야 부모 테이블을 삭제할 수 있다.
User 생성
INSERT INTO `User`
SET `name` = '홍길동',
age = 20,
city = '서울';
INSERT INTO `User`
SET `name` = '제시',
age = 30,
city = '인천';
INSERT INTO `User`
SET `name` = '유재석',
age = 40,
city = '대구';
INSERT INTO `User`
SET `name` = '공유',
age = 30,
city = '구리';
INSERT INTO `User`
SET `name` = '신혜선',
age = 34,
city = '대전';
INSERT INTO `User`
SET `name` = '조정석',
age = 38,
city = '전주';
INSERT INTO `User`
SET `name` = '거미',
age = 33,
city = '논산';
DESC School;
학교 데이터 생성
INSERT INTO School
SET school_name = '서울대',
`description` = '한국에서 최고 대학';
INSERT INTO School
SET school_name = '카이스트',
`description` = '카이스트가 더 좋은 대학인가?';
INSERT INTO School
SET school_name = '이화여대',
`description` = '김혜수 나온 대학???';
INSERT INTO School
SET school_name = '대전대',
`description` = '대전에 있는 대학교';
INSERT INTO School
SET school_name = '하버드',
`description` = '나도 하버드 가고 싶다.';
INSERT INTO School
SET school_name = '고려대',
`description` = '고려........';
INSERT INTO School
SET school_name = '경희대',
`description` = '배고프다, 경희대입니다.';
join 데이터베이스의 모든 테이블 검색
SHOW TABLES;
테이블 구조 확인하기
DESC `User`;
DESC School;
테이블 데이터 조회하기
SELECT * FROM `User`;
SELECT * FROM School;
문제 1 : user_id : 2번이 다니는 학교가 알고 싶다.
SELECT S.*
FROM School S
JOIN `User` U ON U.user_id = S.user_id
WHERE U.user_id = 2;
문제 1 _ 쿼리 결과
문제 2 : 카이스트를 다니는 학생의 정보를 알고 싶다.
SELECT U.*
FROM `User` U
JOIN School S ON S.user_id = U.user_id
WHERE school_name = '카이스트';
문제 2 _ 쿼리 결과
문제 3 : 나이가 30살인 사람들이 다니는 학교를 알고 싶다.
SELECT S.*
FROM School S
JOIN `User` U ON U.user_id = S.user_id
WHERE U.age = 30;
문제 3 _ 쿼리 결과
728x90
반응형
LIST
'SQL' 카테고리의 다른 글
timezone 확인 참고 링크 (0) | 2021.05.11 |
---|---|
LEFT/RIGHT JOIN 기본 사용법 (0) | 2021.03.24 |
JOIN 기본 사용법(FK 설정 포함)_연습1 (0) | 2021.03.24 |
MySQL SYSDATE(), NOW() 함수 비교 (0) | 2021.03.17 |
[ sql ] modify column ~~ unsigned , auto_increment (0) | 2020.12.01 |