✅ student 테이블의 이름을 undergradyate로 변경
RENAME TABLE student TO undergraduate;
코드 실행 후 새로고침 버튼을 누르면 테이블 이름이 변경되어 있다.
✅ 테이블 복사본 만들기
CREATE TABLE copy_of_undergraduate AS SELECT * FROM undergraduate;
CREATE TABLE : 테이블을 생성하라AS SELECT * FROM : 어떤 테이블에서 row들을 갖고 와서 테이블을 만들지 설정즉 undergraduate 테이블과 똑같은 테이블을 하나 더 만들겠다는 뜻이다.
✅ 복사본 테이블 삭제
DROP TABLE copy_of_undergraduate;
DROP TABLE : 테이블을 삭제하라row들을 제외한 컬럼 구조만 복사하여 새로운 테이블을 만들어보자.
✅ undergraduate 테이블의 컬럼 구조만 복사
CREATE TABLE copy_of_undergraduate LIKE undergraduate;

✅ 위 상태에서 undergraduate의 row들도 가져오기
INSERT INTO copy_of_undergraduate SELECT * FROM undergraduate;
모든 row들을 가져오게 된다.
이런 방식으로 row들을 추가할 경우엔 두 테이블의 컬럼 구조가 일치해야 한다. ❗
✅ 모든 row가 아닌 전공이 미지정인 row만 가져오기
INSERT INTO copy_of_undergraduate
SELECT * FROM undergraduate WHERE major = 101;
major = 101 : 전공이 없는 학생들에게 기본값으로 101을 부여 했기 때문

앞서 작성한 SQL문을 다시 보자.
INSERT INTO copy_of_undergraduate SELECT * FROM undergraduate;
SELECT * FROM undergraduate : 해당 SELECT문이 돌려주는 row들을 그대로 copy_of_undergraduate 테이블에 추가해주는 SQL문이다.
SQL문에서 하나의 부품처럼 사용되는 SELECT문을 서브쿼리(Subquery)라고 한다.
위처럼 INSERT INTO 문에서 서브쿼리를 사용하는 것도 가능하다.
기존 테이블을 전부 다 삭제하고, 같은 테이블에서 다시 시작하고 싶을 때가 있을 수도 있다.
DELETE문TRUNCATE문기말고사 성적을 나타내는 final_exam_result 테이블이 있다고 가정하자.
SELECT * FROM final_exam_result;

✅ 위 테이블의 모든 row들을 삭제
DELETE FROM final_exam_result;
TRUNCATE final_exam_result;

모바일 앱 배타버전을 출시하여 사용자들의 리뷰를 beta_review 테이블에 저장했다.
이 중에서 특히 20세 이상 30세 미만의 회원들이 남긴 리뷰들만 따로 beta_review_20s라는 이름의 테이블로 저장해두려고 합니다.
이 테이블의 컬럼 구조와 똑같은 구조를 가진 테이블을 새로 만들고, 거기에 20대가 남긴 리뷰만 넣어라.
CREATE TABLE beta_review_20s LIKE beta_review;
INSERT INTO beta_review_20s
SELECT * FROM beta_review WHERE age BETWEEN 20 AND 29;
SELECT * FROM beta_review_20s;