기본조건
Employee Table | Eboard Table | |||||||
empno | ename | phone | dept | bno | title | content | empno | |
1 | 철수 | 01011111111 | 영업 | 1 | 제목1 | 내용1 | 1 | |
2 | 영희 | 01022222222 | 인사 | 2 | 제목2 | 내용2 | 1 | |
3 | 철수 | 01033333333 | 개발 | 3 | 제목3 | 내용3 | 2 | |
제목4 | 내용4 | 3 | ||||||
ON UPDATE CASCADE 구문
- 외래 키로 설정된 열에 'ON UPDATE CASCADE'를 추가하면 참조되는 테이블의 키 값이 변경될 떄 참조하는 테이블의 관련 행도 같은 값으로 자동 업데이트됩니다. 이는 데이터의 무결성을 유지하는 데 도움이 된다.
- 여기서 Eboard 테이블은 Employee 테이블의 정보를 받는 의존 테이블이므로, Eboard테이블 생성시에 같이 작성한다.
CREATE TABLE employee(
empno INT PRIMARY KEY AUTO_INCREMENT,
ename VARCHAR(20),
phone VARCHAR(13),
dept CHAR(4)
);
CREATE TABLE eboard(
bno INT AUTO_INCREMENT PRIMARY KEY,
title VARCHAR (50),
content VARCHAR (100),
empno INT,
FOREIGN KEY (empno) REFERENCES employee(empno)
ON UPDATE CASCADE
);
ALTER TABLE : 구조 변경
- ALTER TABLE은 기존의 테이블 구조를 수정하는 데 사용된다. 이 명령어를 사용하여 테이블에 새로운 열을 추가하거나, 기존 열을 삭제하거나 수정하고, 제약 조건을 추가하거나 제거할 수 있다.
- 열 추가, 열 수정, 열 삭제, 제약조건 추가/제거 등의 기능을 수행 할수 있다.
--- 열추가
ALTER TABLE employee
ADD COLUMN address VARCHAR(100);
--- 열 추가후 DEFAULT설정
ALTER TABLE employee
ADD COLUMN nickname VARCHAR(50) DEFAULT '없음';
--- PHONE칼럼 뒤에 열 추가
ALTER TABLE employee
ADD COLUMN birth DATE AFTER phone;
--- BIRTH칼럼 뒤에 열 추가
ALTER TABLE employee
ADD COLUMN gender INT AFTER birth;
--- 열 수정
ALTER TABLE employee
MODIFY COLUMN gender CHAR(1),
MODIFY COLUMN bith CHAR(10),
MODIFY COLUMN nickname VARCHAR(50) AFTER birth;
--- 칼럼 이름 변경
ALTER TABLE employee
CHANGE birth birthdate DATE;
--- 칼럼 삭제
ALTER TABLE employee
DROP COLUMN nickname;
--- 테이블 이름변경
ALTER TABLE eboard RENAME tbl_eboard;
---칼럼 속성 추가 (PK)
ALTER TABLE test
ADD PRIMARY KEY (id);
함수
SWITCH -CASE 구문
switch(sign){
case 1: printf("1월의 탄생석은 가넷(Garnet)입니다. \n"); break;
case 2: printf("2월의 탄생석은 자수정(Amethyst)입니다. \n"); break;
case 3: printf("3월의 탄생석은 아쿠아마린(Aquamarine), 혈석(Bloodstone)입니다. \n"); break;
case 4: printf("4월의 탄생석은 다이아몬드(Diamond)입니다. \n"); break;
case 5: printf("5월의 탄생석은 에메랄드(Emerald)입니다. \n"); break;
case 6: printf("6월의 탄생석은 진주(Pearl), 문스톤(Moonstone)입니다.\n"); break;
case 7: printf("7월의 탄생석은 루비(Ruby)입니다.\n"); break;
case 8: printf("8월의 탄생석은 페리도트(Peridot),스피넬(Spinel)입니다. \n"); break;
case 9: printf("9월의 탄생석은 사파이어(Sappahire)입니다.\n"); break;
case 10: printf("10월의 탄생석은 오팔(Opal), 핑크투어말린(Pink Tourmaline)입니다.\n"); break;
case 11: printf("11월의 탄생석은 황옥(Topaz), 시트린(Citrine)입니다.\n"); break;
default: printf("12월의 탄생석은 터키석(Turquoise),청옥(Zircon)입니다.\n");
}
탄생석을 찾아주는 함수!
- Switch - case 구문을 활용해서 탄생석을 찾아주는 서비스를 완성하시오!
#include <iostream>
void findBirthStone(int sign){
switch(sign){
case 1: printf("1월의 탄생석은 가넷(Garnet)입니다. \n"); break;
case 2: printf("2월의 탄생석은 자수정(Amethyst)입니다. \n"); break;
case 3: printf("3월의 탄생석은 아쿠아마린(Aquamarine), 혈석(Bloodstone)입니다. \n"); break;
case 4: printf("4월의 탄생석은 다이아몬드(Diamond)입니다. \n"); break;
case 5: printf("5월의 탄생석은 에메랄드(Emerald)입니다. \n"); break;
case 6: printf("6월의 탄생석은 진주(Pearl), 문스톤(Moonstone)입니다.\n"); break;
case 7: printf("7월의 탄생석은 루비(Ruby)입니다.\n"); break;
case 8: printf("8월의 탄생석은 페리도트(Peridot),스피넬(Spinel)입니다. \n"); break;
case 9: printf("9월의 탄생석은 사파이어(Sappahire)입니다.\n"); break;
case 10: printf("10월의 탄생석은 오팔(Opal), 핑크투어말린(Pink Tourmaline)입니다.\n"); break;
case 11: printf("11월의 탄생석은 황옥(Topaz), 시트린(Citrine)입니다.\n"); break;
default: printf("12월의 탄생석은 터키석(Turquoise),청옥(Zircon)입니다.\n");
}
}
int userInput (){
int sign;
printf("당신의 탄생석을 알려드리죠!\n");
printf("태어난 월을 입력하세요 >>");
scanf("%d", &sign);
return sign;
}
int main() {
int sign;
sign = userInput();
findBirthStone(sign);
return 0;
}
- 이번에는 Switch-Case구문 대신에 if 구문으로 같은 서비스를 완성하시오
#include <iostream>
void findBirthStone(int sign){
if (sign == 1){
printf("1월의 탄생석은 가넷(Garnet)입니다. \n");
}
else if (sign == 2){
printf("2월의 탄생석은 자수정(Amethyst)입니다. \n");
}
else if (sign == 3){
printf("3월의 탄생석은 아쿠아마린(Aquamarine), 혈석(Bloodstone)입니다. \n");
}
else if (sign == 4){
printf("4월의 탄생석은 다이아몬드(Diamond)입니다. \n");
}
else if (sign == 5){
printf("5월의 탄생석은 에메랄드(Emerald)입니다. \n");
}
else if (sign == 6){
printf("6월의 탄생석은 진주(Pearl), 문스톤(Moonstone)입니다.\n");
}
else if (sign == 7){
printf("7월의 탄생석은 루비(Ruby)입니다.\n");
}
else if (sign == 8){
printf("8월의 탄생석은 페리도트(Peridot),스피넬(Spinel)입니다. \n");
}
else if (sign == 9){
printf("9월의 탄생석은 사파이어(Sappahire)입니다.\n");
}
else if (sign == 10){
printf("10월의 탄생석은 오팔(Opal), 핑크투어말린(Pink Tourmaline)입니다.\n");
}
else if (sign == 11){
printf("11월의 탄생석은 황옥(Topaz), 시트린(Citrine)입니다.\n");
}
else {
printf("12월의 탄생석은 터키석(Turquoise),청옥(Zircon)입니다.\n");
}
}
int userInput (){
int sign;
printf("당신의 탄생석을 알려드리죠!\n");
printf("태어난 월을 입력하세요 >>");
scanf("%d", &sign);
return sign;
}
int main() {
int sign;
sign = userInput();
findBirthStone(sign);
return 0;
}
구구단 만들기
- 중첩 for 구문을 사용하여 구구단을 완성하시오.
int main() {
int i, b;
for (i = 2 ; i < 10 ; i++ ){
printf("%d단 \n", i);
printf("------------------\n");
for (b = 1; b < 10 ; b++){
printf ("%d * %d = %d입니다.\n", i, b, i*b);
}
printf("\n");
}
return 0;
}
'자바&Springboot플랫폼 과정 > MariaDB' 카테고리의 다른 글
관계 데이터 모델의 컨셉과 구조 (2) | 2023.12.06 |
---|---|
PREPARE/LIMIT/아스키코드/복합조건배열만들기 (2) | 2023.12.05 |
검색미션/라인그리기/가위바위보 게임 만들기 (0) | 2023.12.01 |
CHECK/GROUP BY/DISTINCT와 세부검색 그리고 게임만들기 (3) | 2023.11.30 |
테이블내 세부검색하기 (0) | 2023.11.30 |