728x90
mysql> desc friend;
+-------+----------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+----------+------+-----+---------+-------+
| num | int(11) | | PRI | 0 | |
| name | char(10) | YES | | NULL | |
| adr | char(80) | YES | | NULL | |
| tel | char(20) | YES | | NULL | |
| email | char(20) | YES | | NULL | |
| age | int(11) | YES | | NULL | |
+-------+----------+------+-----+---------+-------+
6 rows in set (0.00 sec)
desc로 테이블을 참조해줍니다. (확인)
근데?
mysql> insert into friend values (1,'김','인천','34343',22);
ERROR 1136: Column count doesn't match value count at row 1
추가하려는데 추가가 안되는거에요. ㅠ 전 무엇을 잘못한걸까요?
필드가 6개 있는데 추가하는 필드는 5개죠. 즉 이메일의 값을 더 넣던가 아니면 필드에서 이메일을 지워야 합니다.
필드를 지우는 것이니 alter, drop email 을 써서 지워줍니다.
mysql> alter table friend drop email;
Query OK, 0 rows affected (0.04 sec)
Records: 0 Duplicates: 0 Warnings: 0
mysql> desc friend;
+-------+----------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+----------+------+-----+---------+-------+
| num | int(11) | | PRI | 0 | |
| name | char(10) | YES | | NULL | |
| adr | char(80) | YES | | NULL | |
| tel | char(20) | YES | | NULL | |
| age | int(11) | YES | | NULL | |
+-------+----------+------+-----+---------+-------+
5 rows in set (0.01 sec)
지워진 것을 확인하고 위의 값을 다시 넣어줍니다.
mysql> desc friend;
+-------+----------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+----------+------+-----+---------+-------+
| num | int(11) | | PRI | 0 | |
| name | char(10) | YES | | NULL | |
| adr | char(80) | YES | | NULL | |
| tel | char(20) | YES | | NULL | |
| age | int(11) | YES | | NULL | |
+-------+----------+------+-----+---------+-------+
5 rows in set (0.00 sec)
----------------------------------------------------------------------------------------------------------------------------------
(다른 테이블입니다)
mysql> desc student;
+-------+----------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+----------+------+-----+---------+-------+
| num | int(11) | | PRI | 0 | |
| name | char(10) | YES | | NULL | |
| adr | char(40) | YES | | NULL | |
| tel | char(20) | YES | | NULL | |
+-------+----------+------+-----+---------+-------+
4 rows in set (0.00 sec)
desc 로 테이블을 참조해줍니다.
age필드를 추가해 보겠습니다.
mysql> alter table student add age int after name;
Query OK, 2 rows affected (0.05 sec)
Records: 2 Duplicates: 0 Warnings: 0
mysql> desc student;
+-------+----------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+----------+------+-----+---------+-------+
| num | int(11) | | PRI | 0 | |
| name | char(10) | YES | | NULL | |
| age | int(11) | YES | | NULL | |
| adr | char(40) | YES | | NULL | |
| tel | char(20) | YES | | NULL | |
+-------+----------+------+-----+---------+-------+
5 rows in set (0.01 sec)
위에서 실습 한 것처럼 table이니 alter를 사용해주고, name 밑 공간에 age 를 추가하기 위해 after name; 을 마지막에 써줍니다.
위의 코드와 지금 desc 코드를 비교하니 age 필드가 추가된 것을 확인할 수 있습니다.
mysql> select * from student;
+-----+--------+------+---------------+---------+
| num | name | age | adr | tel |
+-----+--------+------+---------------+---------+
| 1 | 이유진 | NULL | 경기도 수원시 | 031-419 |
| 2 | 김형주 | NULL | 인천 인하로 | 031-111 |
| 3 | 최학수 | NULL | 경기도 성남시 | 031-111 |
| 4 | 허슬기 | NULL | 서울 종로구 | 02-112 |
+-----+--------+------+---------------+---------+
4 rows in set (0.00 sec)
null 인 age 값을 num에 따라 다르게 채우려면 어떻게 할까요?
mysql> update student set age=22 where num=1;
Query OK, 1 row affected (0.01 sec)
Rows matched: 1 Changed: 1 Warnings: 0
mysql> update student set age=26 where num=2;
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0
mysql> update student set age=17 where num=3;
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0
mysql> update student set age=19 where num=4;
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0
이해하기 쉽게 해석하면,
업데이트하라 학생 테이블에 age=?? 으로 . num 이 =? 번인 사람의.
mysql> select * from student;
+-----+--------+------+---------------+---------+
| num | name | age | adr | tel |
+-----+--------+------+---------------+---------+
| 1 | 이유진 | 22 | 경기도 수원시 | 031-419 |
| 2 | 김형주 | 26 | 인천 인하로 | 031-111 |
| 3 | 최학수 | 17 | 경기도 성남시 | 031-111 |
| 4 | 허슬기 | 19 | 서울 종로구 | 02-112 |
+-----+--------+------+---------------+---------+
4 rows in set (0.00 sec)
바뀐 것을 확인할 수 있습니다.
간단하고 재밌죠?
'RDB > MySQL' 카테고리의 다른 글
mysql 기본 명령어, 기본 함수 (0) | 2021.01.21 |
---|---|
php로 작성 , Mysql과 연동 (성적입력 홈페이지) (0) | 2021.01.21 |
MySQL 기초실습(2) - 지정한 DB에 table 생성, 데이터 넣기 (0) | 2021.01.14 |
MySQL 기초 실습 (1) - 계정 생성하기 select,create 등 (0) | 2021.01.13 |