INSERT INTO `region`.`provinces`(`code`, `name`)
VALUES ('02', '서울'),
('031', '경기'),
('032', '인천'),
('033', '강원'),
('041', '충청남'),
('042', '대전'),
('043', '충북'),
('044', '세종'),
('051', '부산'),
('052', '울산'),
('053', '대구'),
('054', '경상북'),
('055', '경상남'),
('061', '전라남'),
('062', '광주'),
('063', '전라북'),
('064', '제주');
SELECT `code`,`name`,1 FROM `region`.`provinces`
ORDER BY `code`;
- 시/도의 갯수만큼 1이 찍힌다.
: x의 개수를 반환한다.
- x는 열(Column)이거나 리터럴(Literal= 문자그대로의)일 수 있음.
Literal
num = 5
print(num) => 이거는 값을 준 것이다.
sout(5) => 이거는 리터럴을 준 것이다.
SELECT COUNT(`code`) FROM `region`.`provinces` ORDER BY `code`;
- code자리에 1을 넣어도 17이 나오게 된다.
SELECT COUNT(0) FROM `region`.`provinces` WHERE `name` ='대구' ORDER BY `code`;
LIKE y : x가 y의 형태를 가진('모든'을 표시하기 위해 % 사용) 이때 y는 문자열 취급
SELECT `code`,`name` FROM `region`.`provinces` WHERE `name` LIKE '%남' ORDER BY `code`;
- %가 하나의 것을 의미하는 것은 아니다.
- 보통 웹개발에서 검색기능을 구현할 때 사용한다.
CONSTRAINT FOREIGN KEY ( `<열 이름>`,...) REFERENCES `스키마`.`테이블` (`<참고 열>,....`)
- 단, 외래키가 걸리는
참고 열
은 기본키이거나 UNIQUE이어야 한다.- 그리고
<대상 열>
과<참고 열>
은 타입이 같아야 한다.
CONSTRAINT FOREIGN KEY (`province_index`) REFERENCES `region`.`provinces` (`index`)
해석 = province_index은
region
.provinces
의 테이블에 있는 index의 값만 들어올 수 있다.
CONSTRAINT UNIQUE (`year`,`province_index`)
=> 따로 UNIQUE를 걸어주면 안되고 같이 걸어줘야한다. 각각의 값은 중복해서 들어올 수 있기 때문이다. 세트일 때만 중복이면 안된다.
CREATE TABLE `region`.`pops`
(
`index` INT UNSIGNED NOT NULL AUTO_INCREMENT,
`year` YEAR NOT NULL,
`province_index` TINYINT UNSIGNED NOT NULL,
`pop` INT UNSIGNED,
CONSTRAINT PRIMARY KEY (`index`),
CONSTRAINT UNIQUE (`year`,`province_index`),
CONSTRAINT FOREIGN KEY (`province_index`) REFERENCES `region`.`provinces` (`index`)
);
INSERT INTO `region`.`pops`( `year`, `province_index`, `pop`)
VALUES
('2019',1,10010983),
('2019',9,3466563),
('2019',11,2468222),
('2019',3,3029285),
('2019',15,1480293),
('2019',6,1493979),
('2019',10,1168469),
('2019',8,346275),
('2019',2,13653984),
('2019',4,1560571),
('2019',7,1640721),
('2019',5,2194384),
('2019',16,1851991),
('2019',14,1903383),
('2019',12,2723955),
('2019',13,3438676),
('2019',17,696657);
INSERT INTO `region`.`pops`(`year`, `province_index`, `pop`)
VALUES
('2020',1,9911088),
('2020',9,3438710),
('2020',11,2446144),
('2020',3,3010476),
('2020',15,1471385),
('2020',6,1480777),
('2020',10,1153901),
('2020',8,360907),
('2020',2,13807158),
('2020',4,1560172),
('2020',7,1637897),
('2020',5,2185575),
('2020',16,1835392),
('2020',14,1884455),
('2020',12,2691891),
('2020',13,3407455),
('2020',17,697578);
INSERT INTO `region`.`pops`(`year`, `province_index`, `pop`)
VALUES
('2021',1,9736027),
('2021',9,3396109),
('2021',11,2412642),
('2021',3,3014739),
('2021',15,1462545),
('2021',6,1469543),
('2021',10,1138419),
('2021',8,376779),
('2021',2,13925862),
('2021',4,1555876),
('2021',7,1633472),
('2021',5,2181835),
('2021',16,1817186),
('2021',14,1865459),
('2021',12,2677709),
('2021',13,3377331),
('2021',17,697476);