[SQL] 연습

[SQL] SQL 기본(2편)

Simon Yoon 2022. 1. 30. 21:17

모든 SQL 쿼리는 mysql 기반

 

INSERT문

1. 데이터베이스 생성, 테이블 생성, insert로 데이터 삽입

create database test;
use test;

create table number1(
	data tinyint
);
desc number1;
insert into number1 value (128);
select *
from number1
;

 

2. 제약조건이 없는 테이블 생성 후 데이터 삽입

# 테이블 생성
create table user1(
	user_id int,
    name varchar(20),
    email varchar(30),
    age int,
    rdate date
);

# user1 테이블 확인
desc user1;

# user1 테이블에 데이터 삽입
insert into user1(user_id, name, email, rdate)
values(1, 'simon', 'simon@gmail.com', '2022-01-26'),
(2, 'peter', 'peter@gmail.com','2022-01-02');

# 데이터 확인
select *
from user1
;

 

3. 제약조건이 있는 테이블 생성 후 데이터 삽입

# 제약조건이 있는 테이블 생성
create table user2(
	user_id int primary key auto_increment,
    name varchar(20) not null,
    email varchar(30) not null unique,
    age int default 30,
    rdate timestamp
);

# user2 테이블 확인
desc user2;

# 데이터 삽입
insert into user2(name, email)
values('andrew', 'andy22@gmail.com');

insert into user2(name, email, age)
values('juan', 'juanita@gmail.com', 23);

# 데이터 확인
select *
from user2
;

user2 데이터 생성 결과

 

UPDATE문

1. age가 30 미만인 데이터의 값을 20으로 변경

update user2
set age = 20
where age < 30
limit 1
;

참고로, limit을 쓰지 않으면 safe update mode에서는 오류가 발생한다. 이는 실수로 값이 변경되는 일을 방지하기 위한 것으로 반드시 limit을 써서 작성해야 한다.

 

DELETE문

1. rdate가 2022-01-27 이전인 데이터 삭제

delete from user2
where rdate < '2022-01-27'
limit 1
;

DELETE문도 위험한 작업이기 때문에 limit을 쓰지 않으면 오류를 출력한다.

 

테이블 초기화(테이블 구조는 남음)

truncate user1;

 

여기까지 CRUD에 대해서는 모두 연습해보았다.

'[SQL] 연습' 카테고리의 다른 글

[DB] mysql에서 한글 포함된 쿼리 insert 안될 때  (0) 2022.06.11
[DB] MongoDB  (0) 2022.05.01
[SQL] SQL 기본(3편)  (0) 2022.02.01
[SQL] SQL 기본(1편)  (0) 2022.01.29
[SQL] 데이터 베이스 기본  (0) 2022.01.27