MySQL | 기본 명령어
이전 장에서 이어진다
MySQL 프롬프트 접속
docker exec -it mysql-service mysql -u root -p
용어
데이터베이스(Database)테이블(Table),릴레이션(Relation)행(Column),레코드(Record),튜플(Tuple)열(Row),필드(Field),속성(Attribute)
동일한 개념을 여러 용어로 표현하나, 여기서는 데이터베이서, 테이블, 행, 열 로 나타낸다
데이터베이스 조작
데이터베이스 생성
CREATE DATABASE mydb;
mydb란 이름의 데이터베이스를 생성한다
데이터베이스 조회
show databases;
데이터베이스 제거
DROP DATABASE mydb;
데이터베이스 선택
USE mydb;
사용할 데이터베이스를 선택한다
이후 테이블 조작 등에서 데이터베이스 명을 붙이지 않으면 use로 선택한 데이터베이스가 된다
테이블 조작
테이블 생성
CREATE TABLE `MyTable` (
[열 이름] [데이터타입] [제약조건],
...
);
예시
CREATE TABLE `user` (
`id` INTEGER PRIMARY KEY,
`username` CHAR(20) UNIQUE,
`passwd` CHAR(20),
);
테이블 삭제
DROP TABLE `MyTable`
테이블 확인
DESCRIBE `MyTable`
열 추가
ALTER TABLE `MyTable` ADD `id` INT;
열 수정
ALTER TABLE `MyTable` CHANGE `oldColumn` `newColumn` <NewType>;
열 속성
ALTER TABLE `MyTable` MODIFY `oldColumn` <NewType>;
데이터 타입
제약 조건
| 속성 | 역할 |
|---|---|
| NOT NULL | NULL이 들어갈 수 없다 |
| UNIQUE | 이 열에는 유일한 값만 들어갈 수 있다 |
| PRIMARY KEY | 기본키로 지정한다. 기본키는 자동으로 NOT NULL+UNIQUE 속성을 가진다 |
| AUTO_INCREMENT | 자동으로 고유한 값을 채워넣는다 |
| CHECK 조건식 | 조건식에 만족하는 값만 들어갈 수 있다 |
| FOREIGN KEY | 외래값 |
| DEFAULT 기본값 | 값을 넣지 않을 경우 지정한 기본값을 넣는다 |
| FIRST | 모든 열 중 가장 처음에 위치하도록 한다 |
| AFTER 열 | 지정한 열 다음에 위치히도록 한다 |
데이터 추가
INSERT 문
INSERT INTO `MyTable` VALUES ('user', '1234')
데이터 조회
select 문
SELECT * FROM `MyTable`
MyTable 테이블의 모든 행의 데이터를 가져온다
SELECT `Name` AS `Alias` FROM `MyTable`
MyTable 테이블에서 모든 행의 Name 데이터을 가져온다
SELECT `Name` AS `Alias` FROM `MyTable`
where 문