반응형
(... MySQL 설치과정 생략...)
명령 프롬프트를 통한 MySQL 접속 (root 계정)
- mysql -h localhost -u root -p
JennyMacBook:~ jenny$ mysql -h localhost -u root -p
Enter password: [비밀번호 입력]
mysql >
데이터베이스 생성 및 사용
- CREATE SCHEMA [생성할 데이터베이스명];
- use [사용할 데이터베이스명];
mysql> CREATE SCHEMA nodejs;
Query OK, 1 row affected (0.05 sec)
mysql> use nodejs;
Database changed
테이블 생성
- CREATE TABLE [데이터베이스명.테이블명];
mysql> CREATE TABLE nodejs.users(
-> id INT NOT NULL AUTO_INCREMENT,
-> name VARCHAR(20) NOT NULL,
-> age INT UNSIGNED NOT NULL,
-> married TINYINT NOT NULL,
-> comment TEXT NULL,
-> created_at DATETIME NOT NULL DEFAULT now(),
-> PRIMARY KEY(id),
-> UNIQUE INDEX name_UNIQUE (name ASC))
-> COMMENT = '사용자 정보'
-> DEFAULT CHARSET=utf8
-> ENGINE=InnoDB;
Query OK, 0 rows affected, 1 warning (0.02 sec)
외래키 설정
- CONSTRAINT [제약조건명] FOREIGN KEY([컬럼명]) REFERENCES [참고하는 컬럼명]
- ON DELETE CASCADE ON UPDATE CASCADE) : 참고하는 컬럼에 대한 값이 수정되거나 삭제되면 그것과 연결된 값도 같이 수정하거나 삭제
mysql> CREATE TABLE nodejs.comments (
-> id INT NOT NULL AUTO_INCREMENT,
-> commenter INT NOT NULL,
-> comment VARCHAR(100) NOT NULL,
-> created_at DATETIME NOT NULL DEFAULT now(),
-> PRIMARY KEY(id),
-> INDEX commenter_idx (commenter ASC),
-> CONSTRAINT commenter FOREIGN KEY(commenter)REFERENCES nodejs.users(id) ON DELETE CASCADE ON UPDATE CASCADE)
-> COMMENT = '댓글'
-> DEFAULT CHARSET=utf8
-> ENGINE=InnoDB;
Query OK, 0 rows affected, 1 warning (0.04 sec)
테이블 조회
-
SHOW TABLES;
mysql> SHOW TABLES;
+------------------+
| Tables_in_nodejs |
+------------------+
| comments |
| users |
+------------------+
2 rows in set (0.01 sec)
테이블 삭제
-
DROP TABLE [테이블명];
mysql> DROP TABLE users;
테이블의 컬럼 조회
-
DESC [테이블명];
mysql> DESC users;
+------------+------------------+------+-----+-------------------+-------------------+
| Field | Type | Null | Key | Default | Extra |
+------------+------------------+------+-----+-------------------+-------------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| name | varchar(20) | NO | UNI | NULL | |
| age | int(10) unsigned | NO | | NULL | |
| married | tinyint(4) | NO | | NULL | |
| comment | text | YES | | NULL | |
| created_at | datetime | NO | | CURRENT_TIMESTAMP | DEFAULT_GENERATED |
+------------+------------------+------+-----+-------------------+-------------------+
6 rows in set (0.03 sec)
반응형
'Database > MySQL' 카테고리의 다른 글
[MySQL] DataTime <> UnixTime 표기 변환 (0) | 2020.07.22 |
---|---|
[MySQL][MyBatis] Query null 처리 방법에 대한 고찰 (0) | 2020.07.22 |
[MySQL] 데이터 CRUD 작업 (0) | 2019.11.16 |