일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- tableau
- 자격증
- SQL
- ML
- 이것이 코딩테스트다
- scikit learn
- Python
- SQLD
- 머신러닝
- 이코테
- Deep Learning Specialization
- 코딩테스트
- 데이터 분석
- matplotlib
- 통계
- 데이터 전처리
- 데이터분석준전문가
- pandas
- 파이썬
- Google ML Bootcamp
- IRIS
- 딥러닝
- 회귀분석
- 태블로
- 데이터분석
- ADsP
- sklearn
- r
- pytorch
- 시각화
- Today
- Total
함께하는 데이터 분석
[SQL] 데이터 조작어(DML) 본문
오늘은 SQL 명령어 4가지 중 하나인
데이터 조작어(DML)에 대해 알아보겠습니다.
저번 시간에 데이터 정의어를 통해 테이블을
생성, 변경, 삭제를 해봤는데요.
데이터 조작어는 데이터를 삽입, 조회, 수정, 삭제할 때 사용하는 명령어입니다.
코드를 통해 알아보겠습니다.
데이터 베이스 사용
/* 데이터베이스 DA 사용 */
use da;
저번 데이터 정의어를 공부할 때 만들어놓은
데이터 베이스 da를 사용하겠습니다.
테이블 생성
/* 테이블 생성 */
create table 인적사항 (
인덱스 int primary key,
이름 varchar(10),
생년월일 date not null,
성별 varchar(2)
);
테이블도 저번 시간에 만들어본
인적사항 테이블을 그대로 사용하겠습니다.
테이블 데이터 삽입(제약조건)
/* 테이블 데이터 삽입 */
insert into 인적사항 values (0, '최가', '1963-07-01', 'M');
insert into 인적사항 values (1, '최나', '1970-03-01', 'F');
insert into 인적사항 values (2, '최다', '1998-01-24', 'M');
insert into 인적사항 values (3, '최라', '2000-05-10', 'F');
select * from 인적사항;
insert into 인적사항 values를 이용하여
각각의 행에 데이터를 삽입했습니다.
그다음 select * from 인적사항 을 이용하여
인적사항의 모든 열에 대한 데이터를 불러왔습니다.
이 부분은 밑의 데이터 조회에서 다룰 예정이고
지금은 제약조건을 확인해보겠습니다.
우리가 저번 시간에 열에 제약조건을 걸었죠.
PK를 걸어둔 인덱스 열에 중복의 데이터를 삽입해볼까요?
/* 제약조건 */
insert into 인적사항 values (3, '최마', '2002-11-10', 0); /* 오류(PK) */
이렇게 데이터 삽입이 안 되는 것을 확인할 수 있습니다.
중복이 허용되지 않는다는 것을 알 수 있죠.
다음에는 not null을 걸어둔 생년월일 열에 null을 추가해볼게요.
/* 제약조건 */
insert into 인적사항 values (4, '최바', null, 0); /* 오류(no null) */
이렇게 null을 허용하지 않는 것을 확인할 수 있습니다.
이제 데이터를 조회하는 방법을 알아보겠습니다.
데이터 조회
/* 데이터 조회 */
select * from 인적사항;
앞서 데이터를 확인하기 위해 모든 열을 조회하는 것은
select * from 테이블명을 통해 알아봤습니다.
이번에는 데이터의 특정 열만 조회해볼까요?
/* 데이터 조회 */
select 이름, 성별 from 인적사항;
select 이름, 성별 from 인적사항 을 통해
인적사항 테이블의 이름, 성별 열의 데이터만
조회해봤습니다.
데이터 수정(preferences 옵션 변경)
/* 데이터 수정 preferences에서 옵션 변경 */
update 인적사항 set 성별 = 'M';
이렇게 update를 통해 데이터를 수정하려고 하는데
오류로 인해 수정이 되지 않는 것을 확인할 수 있습니다.
이유는 preferences에 들어가서 옵션을 변경해줘야 합니다.
데이터가 수정하는 부분에 있어서 제한을 해제해야 합니다.
여기서 체크된 부분을 해제하시고 workbench를 재부팅 하시면 됩니다.
/* 데이터 수정 preferences에서 옵션 변경 */
update 인적사항 set 성별 = 'M';
select * from 인적사항;
이제 성별이 모두 M으로 변경된 것이 보입니다.
이제는 이름이 최나인 행의 성별을 F로 변경해볼까요?
/* 데이터 수정 preferences에서 옵션 변경 */
update 인적사항 set 성별 = 'F' where 이름 = '최나';
select * from 인적사항;
이렇게 이름이 최나인 행의 성별이 F로 변경됐습니다.
마지막으로 데이터 삭제를 알아보겠습니다.
데이터 삭제
/* 데이터 삭제 */
delete from 인적사항 where 인덱스 = 0;
select * from 인적사항;
delete를 통해 데이터를 삭제해줬는데
where을 이용하여 인덱스가 0인 행의 데이터만 삭제했습니다.
이제는 모든 행의 데이터를 삭제해보겠습니다.
/* 데이터 삭제 */
delete from 인적사항;
select * from 인적사항;
이렇게 모든 행의 데이터가 삭제된 것을 볼 수 있습니다.
다음에는 데이터 제어어(DCL)에 대해 알아보겠습니다!
'데이터분석 공부 > SQL' 카테고리의 다른 글
[SQL] 데이터 조회 - SELECT (0) | 2022.04.21 |
---|---|
[SQL] 트랜젝션 제어어(TCL) (0) | 2022.04.20 |
[SQL] 데이터 제어어(DCL) (0) | 2022.04.20 |
[SQL] 데이터 정의어(DDL) (0) | 2022.04.18 |
[SQL] MySQL 및 Workbench 설치(mac OS) (0) | 2022.04.15 |