study/TIL
2025.01.11.토 TIL
으녕오리
2025. 1. 13. 10:13
//Spring 기초 6주차 DB 실습
CREATE TABLE student
(
id BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '학생 식별자',
name VARCHAR(100) COMMENT '이름',
age INT COMMENT '나이',
grade VARCHAR(10) COMMENT '등급'
);
CREATE TABLE major
(
id BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '전공 식별자',
name VARCHAR(50) NOT NULL COMMENT '이름',
tutor VARCHAR(50) NOT NULL COMMENT '튜터'
);
CREATE TABLE enrollment
(
id BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '등록 식별자',
student_id BIGINT COMMENT '수강생 식별자',
major_id BIGINT COMMENT '전공 식별자',
FOREIGN KEY (student_id) REFERENCES student(id),
FOREIGN KEY (major_id) REFERENCES major(id)
);
ALTER TABLE student ADD COLUMN email VARCHAR(100) NOT NULL;
ALTER TABLE major MODIFY COLUMN name VARCHAR(100);
ALTER TABLE major ADD CONSTRAINT UNIQUE(tutor);
INSERT INTO student (name, age, grade, email) VALUES('학생1', 20, 'AAA', 'a@a.com');
INSERT INTO student (name, age, grade, email) VALUES('학생2', 21, 'AAA', 'b@b.com');
INSERT INTO student (name, age, grade, email) VALUES('학생3', 22, 'A', 'c@c.com');
INSERT INTO student (name, age, grade, email) VALUES('학생4', 23, 'BBB', 'd@d.com');
INSERT INTO student (name, age, grade, email) VALUES('학생5', 23, 'BB', 'e@e.com');
INSERT INTO student (name, age, grade, email) VALUES('학생6', 23, 'B', 'f@f.com');
INSERT INTO major (name, tutor) VALUES('Spring', '황원욱');
INSERT INTO major (name, tutor) VALUES('NodeJS', '김스파');
INSERT INTO major (name, tutor) VALUES('React', '홍정기');
INSERT INTO major (name, tutor) VALUES('Vue', '김르타');
INSERT INTO enrollment (student_id, major_id) VALUES(1, 1);
INSERT INTO enrollment (student_id, major_id) VALUES(2, 2);
SELECT * FROM student;
SELECT * FROM student WHERE id = 1;
SELECT name, age FROM student WHERE id = 1;
UPDATE student SET age = 21 WHERE name = '학생1';
SELECT * FROM student WHERE name = '학생1';
DELETE FROM student WHERE id = 4;
SELECT * FROM student;
- SQL
- 데이터베이스 → 테이블 → 컬럼
- Query Flow
- 어떤 테이블
- 어떤 컬럼
- 어떤 조건
- 어떤 함수
- count, group by