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