DB/명령프롬프트 - mysql

[MySQL] 테이블 데이터 변경, 삭제, 중복제거 Update, delete, distinct

congs 2023. 3. 27. 09:05

 테이블 튜플(안의 데이터) 변경 : Update 

-- 데이터 변경
Update 테이블명 set 바꿀칼럼 = '값' where 조건 ;

-- 타 테이블에서 값을 가져와 데이터 변경
update 테이블명 set 칼럼명  =
(select 타테이블칼럼명 from 타테이블명
where 조건 ) ;
/* 강감찬의 major1을 'computer'로 변경 */

mysql> update student set major1='computer' where num=4444;

mysql> select * from student;
+------+--------+------+---------+----------+-------+
| num  | name   | age  | address | major1   | score |
+------+--------+------+---------+----------+-------+
| 1111 | 홍길동 |   23 | seoul   | computer |    89 |
| 2222 | 강길순 |   24 | seoul   | English  |    87 |
| 3333 | 이순신 |   22 | Inchen  | English  |    57 |
| 4444 | 강감찬 |   23 | Inchen  | computer |    67 |
| 5555 | 유관순 |   21 | suwon   | Computer |    97 |
+------+--------+------+---------+----------+-------+
5 rows in set (0.00 sec)

테이블 튜플(안의 데이터) 삭제 : delete 

Delete from 테이블명 where 조건 ;
/* 강감찬 자료 삭제 */

mysql> delete from student where num=4444;
Query OK, 1 row affected (0.00 sec)

mysql> select * from student;
+------+--------+------+---------+----------+-------+
| num  | name   | age  | address | major1   | score |
+------+--------+------+---------+----------+-------+
| 1111 | 홍길동 |   23 | seoul   | computer |    89 |
| 2222 | 강길순 |   24 | seoul   | English  |    87 |
| 3333 | 이순신 |   22 | Inchen  | English  |    57 |
| 5555 | 유관순 |   21 | suwon   | Computer |    97 |
+------+--------+------+---------+----------+-------+
4 rows in set (0.00 sec)

테이블 튜플 중 중복제거한 목록 검색 : distinct 

Select all / distinct 검색대상 ;
/* major1을 중복제거하고 목록만 출력 */
mysql> select distinct major1 from student;
+----------+
| major1   |
+----------+
| computer |
| English  |
+----------+
2 rows in set (0.00 sec)

/* 학과의 개수 출력 */
mysql> select count(distinct major) as "학과의 수" from student;
+-----------+
| 학과의 수 |
+-----------+
|         2 |
+-----------+
1 row in set (0.00 sec)

/* 학과 인원수가 4명 미만인 학과 출력 */
mysql> select major from student
    -> group by major
    -> having(count(major)<4);
+---------+
| major   |
+---------+
| English |
+---------+
1 row in set (0.00 sec)