일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 우분투
- 타이젠
- 손민한
- Linux
- 해외직구
- ubuntu 12.04
- NC 다이노스
- 야구
- 조세피난처
- 문파문파 공략
- 애플
- ubuntu
- 데이터베이스
- 단통법
- python
- arm
- Git
- NC다이노스
- 김경문
- 인공지능
- 프로야구
- Tizen
- 뉴스타파
- 안드로이드
- 블로그
- 리뷰
- mysql
- 태그를 입력해 주세요.
- 문파문파
- 국정원
- Today
- Total
꿈꾸는 사람.
[초간단 SQL 학습][MySQL] 데이터베이스, 테이블 만들기. 본문
간단히 SQL을 배우려면 우분투에 MySQL을 설치하면 된다.
MySQL이 설치된 가상 머신이 데이터베이스 서버가 된다.
이후 MySQL 서버에 연결하면 SQL 학습을 위한 도구는 준비된 것이다.
또 다른 방법은 윈도우즈에 MySQL을 설치하는 것이다.
사전에 Visual Studio가 설치되어 있어야 하며 10G 정도의 많은 용량이 필요하다.
이 글은 우분투에 MySQL 설치된 환경을 기초로 작성한다.
디폴트(현재) 데이터베이스 이름을 질의한다.
mysql> select database(); +------------+ | database() | +------------+ | NULL | +------------+ 1 row in set (0.00 sec)
NULL 값이 반환되었으니 아직 어떤 데이터베이스도 선택하지 않았다.
데이터베이스 생성하기
아래와 같이 CREATE DATABASE 문으로 testdb란 이름을 가진 데이터베이스를 만든다.
mysql> CREATE DATABASE testdb; Query OK, 1 row affected (1.51 sec)
데이터베이스를 만들었지만 사용하기 위해 선택하지는 않았다.
데이터베이스 선택하기
testdb란 데이터베이스는 만들기만 하였으므로 사용하기 전에 선택해야 한다.
mysql> USE testdb; Database changed mysql> select database(); +------------+ | database() | +------------+ | testdb | +------------+ 1 row in set (0.00 sec)
테이블 생성하기
이전에 생성한 데이터베이스는 비어 있다.
먼저, 테이블을 만들어 주어야 한다.
mysql> CREATE TABLE course -> (sno INT NOT NULL, -> prof CHAR(2), -> dept CHAR(10), -> cno CHAR(4) NOT NULL, -> grade CHAR(1), -> PRIMARY KEY(sno, cno) -> ); Query OK, 0 rows affected (0.40 sec)
DESCRIBE문을 이용하여 생성한 course 테이블을 확인한다.
mysql> DESCRIBE course; +-------+----------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+----------+------+-----+---------+-------+ | sno | int(11) | NO | PRI | NULL | | | prof | char(2) | YES | | NULL | | | dept | char(10) | YES | | NULL | | | cno | char(4) | NO | PRI | NULL | | | grade | char(1) | YES | | NULL | | +-------+----------+------+-----+---------+-------+ 5 rows in set (0.07 sec)
생성한 course 테이블 역시 비어 있다.
mysql> select * from course; Empty set (0.03 sec)
데이터 삽입
mysql> INSERT INTO course VALUES -> (100, 'P1', 'Computer', 'C413', 'A'), -> (100, 'P1', 'Computer', 'E412', 'A'), -> (200, 'P2', 'Electric', 'C123', 'B'), -> -> (300, 'P3', 'Computer', 'C312', 'A'), -> (300, 'P3', 'Computer', 'C324', 'C'), -> (300, 'P3', 'Computer', 'C413', 'A'), -> -> (400, 'P1', 'Computer', 'C312', 'A'), -> (400, 'P1', 'Computer', 'C324', 'A'), -> (400, 'P1', 'Computer', 'C413', 'B'), -> (400, 'P1', 'Computer', 'E412', 'C') -> ; Query OK, 10 rows affected (0.04 sec) Records: 10 Duplicates: 0 Warnings: 0
mysql> select * from course; +-----+------+----------+------+-------+ | sno | prof | dept | cno | grade | +-----+------+----------+------+-------+ | 100 | P1 | Computer | C413 | A | | 100 | P1 | Computer | E412 | A | | 200 | P2 | Electric | C123 | B | | 300 | P3 | Computer | C312 | A | | 300 | P3 | Computer | C324 | C | | 300 | P3 | Computer | C413 | A | | 400 | P1 | Computer | C312 | A | | 400 | P1 | Computer | C324 | A | | 400 | P1 | Computer | C413 | B | | 400 | P1 | Computer | E412 | C | +-----+------+----------+------+-------+ 10 rows in set (0.00 sec)
삽입이상
mysql> INSERT INTO course VALUE -> (500, 'P4'); ERROR 1136 (21S01): Column count doesn't match value count at row 1
mysql> INSERT INTO course VALUE -> (500, 'P4', NULL, NULL, NULL); ERROR 1048 (23000): Column 'cno' cannot be null
mysql> INSERT INTO course VALUE -> (500, 'P4', NULL, '', NULL); Query OK, 1 row affected (0.08 sec)
mysql> SELECT * FROM course;+-----+------+----------+------+-------+| sno | prof | dept | cno | grade |+-----+------+----------+------+-------+| 100 | P1 | Computer | C413 | A || 100 | P1 | Computer | E412 | A || 200 | P2 | Electric | C123 | B || 300 | P3 | Computer | C312 | A || 300 | P3 | Computer | C324 | C || 300 | P3 | Computer | C413 | A || 400 | P1 | Computer | C312 | A || 400 | P1 | Computer | C324 | A || 400 | P1 | Computer | C413 | B || 400 | P1 | Computer | E412 | C || 500 | P4 | NULL | | NULL |+-----+------+----------+------+-------+11 rows in set (0.00 sec)
데이터 삭제
mysql> DELETE FROM course -> WHERE sno = 200 -> AND cno = 'C123'; Query OK, 1 row affected (0.05 sec)
mysql> SELECT * FROM course; +-----+------+----------+------+-------+ | sno | prof | dept | cno | grade | +-----+------+----------+------+-------+ | 100 | P1 | Computer | C413 | A | | 100 | P1 | Computer | E412 | A | | 300 | P3 | Computer | C312 | A | | 300 | P3 | Computer | C324 | C | | 300 | P3 | Computer | C413 | A | | 400 | P1 | Computer | C312 | A | | 400 | P1 | Computer | C324 | A | | 400 | P1 | Computer | C413 | B | | 400 | P1 | Computer | E412 | C | | 500 | P4 | NULL | | NULL | +-----+------+----------+------+-------+ 10 rows in set (0.00 sec)
삭제이상
데이터 갱신
mysql> UPDATE course -> SET prof='P2' -> WHERE sno=400; Query OK, 4 rows affected (0.07 sec) Rows matched: 4 Changed: 4 Warnings: 0
갱신이상
mysql> select * from course;+-----+------+----------+------+-------+| sno | prof | dept | cno | grade |+-----+------+----------+------+-------+| 100 | P1 | Computer | C413 | A || 100 | P1 | Computer | E412 | A || 300 | P3 | Computer | C312 | A || 300 | P3 | Computer | C324 | C || 300 | P3 | Computer | C413 | A || 400 | P2 | Computer | C312 | A || 400 | P2 | Computer | C324 | A || 400 | P2 | Computer | C413 | B || 400 | P2 | Computer | E412 | C || 500 | P4 | NULL | | NULL |+-----+------+----------+------+-------+10 rows in set (0.00 sec)
'IT > Database' 카테고리의 다른 글
[MySQL][Error 13 해결] 파일 읽기/쓰기 실패 (Can't create/write to file) (2) | 2017.02.10 |
---|---|
[초간단 SQL 학습][MySQL] 파일로부터 데이터를 읽어오기. (0) | 2017.02.08 |
[SQL][SELECT 명령어] aggregate 함수를 이용한 검색. (0) | 2016.04.17 |
[SQL][SELEC 명령어]. 초간단 학습! (0) | 2016.04.09 |
[Database] 데이터 모델링 (0) | 2016.04.07 |