제어하고 관리
할 수 있는 목적의 프로그래밍 언어데이터베이스
or 테이블
을 정의
하는 언어: 데이터베이스, 테이블 등을 생성하는 역할
: 데이터베이스 만들기 + 한글 인코딩(프로그래밍 언어가 영어기반이니 한글을 사용할 수 있도록)
-> 상단에 원기둥을 클릭(스키마) -> 누르면 이 화면이 뜨고 Character set을 아래와 같이 utf8 or utf8mb4(이모지 포함가능) 선택.
-> Collation은 대체로 general 선택
-> 형광 표시가 주로 쓰이는 형식
create table products (
id int not null primary key auto_increment,
username varchar(31) NOT NULL,
model_number varchar(31) not null,
series varchar(15) not null default 'a'
);
-- id : 컬럼명
-- DEFAULT : 기본 값
-- UNIQUE : 중복허용 x, null 값 허용, 한 테이블에 여러개 가능
NOT NULL
: NULL 허용 불가AUTO_INCREMENT
: 자동 숫자 증가,
넣으면 안된다.(끝난걸 인지못함): 테이블을 수정하는 역할
: 테이블의 특정 컬럼(열)을 삭제
, 추가
, 변경
등을 할때 사용하는 명령어
DROP
: 데이터베이스, 테이블을 삭제하는 역할DROP TABLE 테이블명;
TRUNCATE
: 테이블을 초기화 시키는 역할(테이블의 모든 행 일괄삭제)TRUNCATE TABLE 테이블명;
SHOW DATABASES;
, USE 데이터베이스명;
, SHOW TABLES;
, DESC 테이블명;
(1) mysql위치로 이동 및 실행
cd /usr/local/mysql/bin
./mysql -u root -p //비밀번호 입력 후 실행
(2) mysql workbench에서 테이블을 만들고 터미널에서도 그 테이블을 이용하고 싶으면 use 이용
use 테이블명;
(3) 변경사항 입력
mysql> ALTER TABLE member_1 drop age; -- 명령어, member_1테이블의 age 컬럼 삭제
Query OK, 0 rows affected (0.01 sec)
Records: 0 Duplicates: 0 Warnings: 0 -- 명령어 입력하면 제대로 수행되었음을 알려준다.
mysql> ALTER TABLE member_1 MODIFY id varchar(10); -- id의 타입을 varchar(10)로 변경
mysql> ALTER TABLE member_1 add interest varchar(100); -- 타입이 varchar(100)인 interest 컬럼 생성
(4) 결과
mysql> desc member_1;
+-----------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-----------+--------------+------+-----+---------+-------+
| id | varchar(10) | NO | PRI | NULL | |
| name | varchar(5) | NO | | NULL | |
| gender | varchar(2) | NO | | NULL | |
| email | varchar(50) | YES | | NULL | |
| promotion | varchar(2) | YES | | x | |
| interest | varchar(100) | YES | | NULL | |
+-----------+--------------+------+-----+---------+-------+
6 rows in set (0.01 sec)
(5) exit 혹은 quit 입력하면 sql문 종료
MySQL workbench에서 코드를 작성하고 실행하고, 다시 수정할 것이 있어서 수정한 후 다시 실행했더니, 이미 해당 테이블은 존재한다며 실행이 제대로 되지 않았다.
실행을 하는 순간 새로고침이 아니라, 아예 새로운 테이블이 생성이 즉시 되는것이라 js코드나 html과는 달랐던 것이다. 따라서 테이블 생성 전에 drop을 해주면, 이전에 테이블을 삭제하고 다시 생성하는 것이니 만약!! 이전 내용을 삭제하고 동일한 테이블 명으로 생성하고 싶으면 지우고 생성해야한다!!
drop table 파일명;
터미널과 workbench를 번갈아가며 테이블을 생성하다보니 깨달은 것이 있었다. 분명 터미널에서 내용을 수정하고 workbench에서 desc 테이블명;
하니 수정한 내용이 제대로 보였다가, 바로 다음 workbench에서 실행버튼을 누르고 desc 테이블명;
하면, workbench에서 했던(터미널에서 수정하기 전 내용)이 다시 뜨는 것이다. 몇번 반복하다보니 동일한 테이블을 수정했을 때, 서로 실시간으로 저장되는 것이 아니라 workbench에서 있던 내용이 터미널에서 한 내용처럼 수정되지 않는 한, 실행누르면 그 이전 내용으로 돌아간다는 것이란 걸 깨달았다. 터미널에서 수정해도 실시간으로 적용되어서 굳이 workbench의 내용을 직접 바꾸지 않아도 적용될 것이라고 생각했었다.. 오늘 배운 걸로는 이런 결론을 내렸는데 추후에 더 배우다보면 잘못 생각한 결론일 수도 있다. 만약 그게 맞다면 정정하는 글을 작성하겠다..!!