create table tablename(
col datatype,
col2 datatype.
...
);
여기서 create table 생성은 데이터가 들어갈 기본 뼈대를 세워주는 일이라고 생각하면 된다. 앞으로 현재 table에 어떤 컬럼이 들어가며, 몇개의 컬럼으로 구성되어 있으며, pk,fk는 무엇이며, 컬럼의 datatype은 어떻게 될것이며 등등 framework 작업이라고 생각하면 된다.
create table 명령어를 통해 미처 설정하지 못하거나, 바꿔야 할 정보가 있다면 나중에 alter table 명령어를 사용하면 된다.
현재 database에 생성되어 있는 table 보는 방법
show tables;
궁금한 table의 정보를 확인하는 방법 (desc = description)
desc tablenmae;
테이블을 엉뚱한 데이터베이스에 만든 경우 다른 데이터베이스로 복사가 가능하다
예를 들어, A 데이터베이스에 있는 test 테이블을 C 데이터베이스에 복사하려고 한다면 다음과 같이 작성할 수 있다. 복사 한 후 A 데이터 베이스의 test table를 삭제해주면 된다.
이 경우는 테이블 구조만 가져오고 데이터는 가져오지 않음
mysql> create table C.test like A.test;
+) 여러 경우의 수
CREATE TABLE IF NOT EXISTS 복사 테이블 SELECT * FROM 원본 테이블;
2.테이블 데이터 복사
INSERT INTO 복사 테이블 SELECT * FROM 원본 테이블;
INSERT
INTO 복사할 TABLE명
SELECT *
FROM 원본 TABLE명
INSERT
INTO 복사할 TABLE명
SELECT *
FROM 원본 TABLE명
WHERE 검색 조건
mysql> alter tablename rename new_tablename;
table이름을 mytable에서 person으로 변경하기
mysql> alter table tablename add column columnname datatype;
agee라는 새로운 컬럼을 추가하기
mysql> alter table person modify column columnname dataype;
agee 컬럼의 datatype을 int로 변경하기
위의 modify명령어와 다른점은 change는 이름은 무조건 바꿔야 하며 datatype은 그대로 써주거나 변경할 수 있다는 점이다. modify는 datatype만 바꿀수 있고 명령문이 좀 더 짧다.
mysql> alter table person change column old_column_name new_column_name new_datatype;
table의 컬럼 삭제시에는 그냥 drop column column_name 이 아니라
앞에 table을 끼고 있기 때문에 alter table을 꼭 붙여주어야 함
mysql>alter table tablename drop column column_name;
person table의 age 컬럼 삭제
mysql> drop table tablename;