종류 | 역할 |
select | 데이터베이스에서 데이터를 검색 ALL : 기본 옵션으로 별 |
insert | 데이터 삽입 |
update | 데이터 수정 |
delete | 데이터 삭제 |
📌 SELECT : 데이터 검색
select 필드명1, 필드명; [ select clause ] select 절
from 테이블명; [ from clause ] from 절
where 조건; (생략 가능) [ where clause ] where 절
테이블 전체 조회할 때
select * from employees;
테이블 선택조회할 때
select emp_no, birth_date, first_name, last_name, gender, hire_date from employees;
📌 INSERT : 데이터 삽입
# fullstack/database/p240613/insert.sql
[insert] row 추가
[문법 1] 컬럼명 지정
insert into 테이블명(컬럼명1, 컬럼명2) valuse(값1, 값2);
[문법 2] 컬럼명 생략 : 모든 컬럼
insert into 테이블명 valuse(값1, 값2);
[문법 3] 서브쿼리
# as 사용 x
insert into 테이블명(컬럼명1, 컬럼명2)
select 컬럼명1, 컬럼명2
from 테이블명;
[문법 4] 한번에 여러 row 추가, 권장 x
insert into 테이블명(컬럼명1, 컬럼명2)
valuse(값1, 값2), (값3, 값4), (값5, 값6); # 3개의 row 추가
현재 t1 테이블이 있으니까 삭제 !
# 테이블 목록
show tables;
# t1 테이블 데이터 조회
select * from t1;
desc t1;
# t1 테이블 삭제
drop table t1;
# 테이블 목록 : t1 없음
show tables;
t1 테이블 생성
# t1 테이블 생성
create table t1(
co1 int,
co2 varchar(10),
co3 float
);
show tables;
desc t1;
# 1
# [row 추가] 컬럼명 모두 표시
# [문법] insert into 테이블명(컬럼명1, 컬럼명2) valuse(값1, 값2);
insert into t1(co1, co2, co3) value(1, '하나', 1.1);
insert into t1(co3, co1, co2) value(2.2, 2, '둘');
# t1 테이블 데이터 조회
select * from t1;

# 2
# [row 추가] 컬럼명 모두 생략 -> 모든 컬럼
# [문법] insert into 테이블명 valuse(값1, 값2);
insert into t1 value(3, '셋', 3.3);
insert into t1 value(4, '넷'); # Error Code: 1136. Column count doesn't match value count at row 1
# t1 테이블 데이터 조회
select * from t1;

# 3
# [row 추가] 일부 컬럼명 표시
insert into t1(co1, co2) value(5, '다섯');
insert into t1(co1, co2) value(5, '다섯', 5.5); # Error Code: 1136. Column count doesn't match value count at row 1
# t1 테이블 데이터 조회
select * from t1;

# 4
# [자료형] 확인
# co2 컬럼 자료형 varchar : 숫자 데이터 입력 ? -> 자동 형변환
# 넣어준 값은 정수지만, t1 에 추가될 땐 type 에 맞춰서 들어옴
insert into t1 values(6, 600, 6.6);
# co1 컬럼 자료형 int : 문자 데이터 입력 ? -> 자동 형변환
# 넣어준 값은 문자열이지만, t1 에 추가될 땐 type 에 맞춰서 들어옴
insert into t1 values('7', '700', '7.7');
# Error Code: 1366. Incorrect integer value: '팔' for column 'co1' at row 1
insert into t1 values('팔', '팔', '8.8');
# co3 컬럼 자료형 float : 정수값 넣기 -> 자동 형변환
insert into t1 values(9, 9, 9);
# t1 테이블 데이터 조회
select * from t1;


서브쿼리를 이용한 row 추가
# 테이블 목록 조회 및 temp1 테이블 데이터 조회
show tables;
select * from temp1;


📌 UPDATE : 수정
[문법]
update 테이블명
set 컬럼명 = 변경할 값
where 조건; # 옵션
* set 의 '=' : 대입
* where 의 '=' : 비교
-> 해당하는 테이블명을 찾아가서 where 절에 있는 조건을 보고 값 변경
-> 특정한 row 를 조건을 걸지 않았다면(where절 x) 전체 row 변경
[문제] co1 컬럼의 값이 7인 row 의 co3 컬럼의 값을 null 로 변경
update t1
set co3 = null
where co1 = 7;
[문제] co1 의 값이 9 ~ 12인 row 의 co3 를 0.1 로 변경
in 연산자보다는 between 연산자 사용하는 것이 좋음
update t1
set co3 = 0.1
where co1 between 9 and 12;
[문제] co1 의 값이 2인 row 의 co2 를 two, co3 를 0.2 로 변경
update t1
set co2 = 'two', co3 = 0.2
where co1 = 2;
where 절이 없는 경우
update t1
set co3 = 0.9;
📌 DELETE : 삭제
[delete] 삭제
: rollback(복구) 가능
[문법]
delete from 테이블명;
where 조건;
delete 와 truncate 차이점
: rollback 가능 여부
: 복구 여부에 따라 DB 설계
# 현재 선택된(작업 중인) DB
select database();
# 테이블 목록
show tables;
# [변경 전] copy_departments 테이블 데이터 조회
desc copy_departments;
select * from copy_departments; # row 9개
# dept_no 가 d009 인 row 삭제
# row 8개
delete from copy_departments
where dept_no like 'd009';
# [delete] where 절 없음
# 모든 row 삭제
delete from copy_departments;
# [변경 후] copy_departments 테이블 데이터 조회
select * from copy_departments;
'Others > 데이터베이스' 카테고리의 다른 글
[SQL] DCL (제어어) 문법 정리 및 예제 (0) | 2024.06.16 |
---|---|
[SQL] DDL (정의어) 문법 정리 및 예제 (1) | 2024.06.16 |
006. 관계형 데이터베이스 SQL 및 모델링 - 2편 MySQL (0) | 2024.06.16 |
006. 관계형 데이터베이스 SQL 및 모델링 - 1편 DB, DBMS, RDBMS (1) | 2024.06.16 |
[MySQL] 자료형 CHAR 와 VARCHAR 의 차이점 (0) | 2024.06.13 |
종류 | 역할 |
select | 데이터베이스에서 데이터를 검색 ALL : 기본 옵션으로 별 |
insert | 데이터 삽입 |
update | 데이터 수정 |
delete | 데이터 삭제 |
📌 SELECT : 데이터 검색
select 필드명1, 필드명; [ select clause ] select 절
from 테이블명; [ from clause ] from 절
where 조건; (생략 가능) [ where clause ] where 절
테이블 전체 조회할 때
select * from employees;
테이블 선택조회할 때
select emp_no, birth_date, first_name, last_name, gender, hire_date from employees;
📌 INSERT : 데이터 삽입
# fullstack/database/p240613/insert.sql
[insert] row 추가
[문법 1] 컬럼명 지정
insert into 테이블명(컬럼명1, 컬럼명2) valuse(값1, 값2);
[문법 2] 컬럼명 생략 : 모든 컬럼
insert into 테이블명 valuse(값1, 값2);
[문법 3] 서브쿼리
# as 사용 x
insert into 테이블명(컬럼명1, 컬럼명2)
select 컬럼명1, 컬럼명2
from 테이블명;
[문법 4] 한번에 여러 row 추가, 권장 x
insert into 테이블명(컬럼명1, 컬럼명2)
valuse(값1, 값2), (값3, 값4), (값5, 값6); # 3개의 row 추가
현재 t1 테이블이 있으니까 삭제 !
# 테이블 목록
show tables;
# t1 테이블 데이터 조회
select * from t1;
desc t1;
# t1 테이블 삭제
drop table t1;
# 테이블 목록 : t1 없음
show tables;
t1 테이블 생성
# t1 테이블 생성
create table t1(
co1 int,
co2 varchar(10),
co3 float
);
show tables;
desc t1;
# 1
# [row 추가] 컬럼명 모두 표시
# [문법] insert into 테이블명(컬럼명1, 컬럼명2) valuse(값1, 값2);
insert into t1(co1, co2, co3) value(1, '하나', 1.1);
insert into t1(co3, co1, co2) value(2.2, 2, '둘');
# t1 테이블 데이터 조회
select * from t1;

# 2
# [row 추가] 컬럼명 모두 생략 -> 모든 컬럼
# [문법] insert into 테이블명 valuse(값1, 값2);
insert into t1 value(3, '셋', 3.3);
insert into t1 value(4, '넷'); # Error Code: 1136. Column count doesn't match value count at row 1
# t1 테이블 데이터 조회
select * from t1;

# 3
# [row 추가] 일부 컬럼명 표시
insert into t1(co1, co2) value(5, '다섯');
insert into t1(co1, co2) value(5, '다섯', 5.5); # Error Code: 1136. Column count doesn't match value count at row 1
# t1 테이블 데이터 조회
select * from t1;

# 4
# [자료형] 확인
# co2 컬럼 자료형 varchar : 숫자 데이터 입력 ? -> 자동 형변환
# 넣어준 값은 정수지만, t1 에 추가될 땐 type 에 맞춰서 들어옴
insert into t1 values(6, 600, 6.6);
# co1 컬럼 자료형 int : 문자 데이터 입력 ? -> 자동 형변환
# 넣어준 값은 문자열이지만, t1 에 추가될 땐 type 에 맞춰서 들어옴
insert into t1 values('7', '700', '7.7');
# Error Code: 1366. Incorrect integer value: '팔' for column 'co1' at row 1
insert into t1 values('팔', '팔', '8.8');
# co3 컬럼 자료형 float : 정수값 넣기 -> 자동 형변환
insert into t1 values(9, 9, 9);
# t1 테이블 데이터 조회
select * from t1;


서브쿼리를 이용한 row 추가
# 테이블 목록 조회 및 temp1 테이블 데이터 조회
show tables;
select * from temp1;


📌 UPDATE : 수정
[문법]
update 테이블명
set 컬럼명 = 변경할 값
where 조건; # 옵션
* set 의 '=' : 대입
* where 의 '=' : 비교
-> 해당하는 테이블명을 찾아가서 where 절에 있는 조건을 보고 값 변경
-> 특정한 row 를 조건을 걸지 않았다면(where절 x) 전체 row 변경
[문제] co1 컬럼의 값이 7인 row 의 co3 컬럼의 값을 null 로 변경
update t1
set co3 = null
where co1 = 7;
[문제] co1 의 값이 9 ~ 12인 row 의 co3 를 0.1 로 변경
in 연산자보다는 between 연산자 사용하는 것이 좋음
update t1
set co3 = 0.1
where co1 between 9 and 12;
[문제] co1 의 값이 2인 row 의 co2 를 two, co3 를 0.2 로 변경
update t1
set co2 = 'two', co3 = 0.2
where co1 = 2;
where 절이 없는 경우
update t1
set co3 = 0.9;
📌 DELETE : 삭제
[delete] 삭제
: rollback(복구) 가능
[문법]
delete from 테이블명;
where 조건;
delete 와 truncate 차이점
: rollback 가능 여부
: 복구 여부에 따라 DB 설계
# 현재 선택된(작업 중인) DB
select database();
# 테이블 목록
show tables;
# [변경 전] copy_departments 테이블 데이터 조회
desc copy_departments;
select * from copy_departments; # row 9개
# dept_no 가 d009 인 row 삭제
# row 8개
delete from copy_departments
where dept_no like 'd009';
# [delete] where 절 없음
# 모든 row 삭제
delete from copy_departments;
# [변경 후] copy_departments 테이블 데이터 조회
select * from copy_departments;
'Others > 데이터베이스' 카테고리의 다른 글
[SQL] DCL (제어어) 문법 정리 및 예제 (0) | 2024.06.16 |
---|---|
[SQL] DDL (정의어) 문법 정리 및 예제 (1) | 2024.06.16 |
006. 관계형 데이터베이스 SQL 및 모델링 - 2편 MySQL (0) | 2024.06.16 |
006. 관계형 데이터베이스 SQL 및 모델링 - 1편 DB, DBMS, RDBMS (1) | 2024.06.16 |
[MySQL] 자료형 CHAR 와 VARCHAR 의 차이점 (0) | 2024.06.13 |