(2023-01-09) SQL-2 (데이터 변경)

C one·2023년 1월 10일

/ CREATE

테이블을 생성한다
열이름과 타입만 정하고 값은 비어있음

create table 테이블_이름 (
열_이름 데이터_타입,
열_이름 데이터_타입, ...
);
use market_db
// 데이터베이스로 market_db 한다

create table users(id int, name char(4), age int);
// 데이터 베이스에 users 테이블을 생성한다, 열이름과 데이터 타입은 다음과 같다

desc users;
// users 테이블의 정보를 출력함

select * from users;
// 빈 테이블임을 확인함

/ INSERT

테이블에 데이터를 삽입한다.

insert into 테이블_이름 (컬럼_이름1, 컬럼_이름2,.. ) values (1,2, ...)

컬럼_이름() 생략가능하다, 테이블의 열 순서 개수와 동일해야함
- 열생략 예시

insert into users values(1,'문도',44);
- 열을 명시할때 예시

insert into users(name,age) values('문도',44);

* 값이 누락된 열은 null 값으로 채워진다
- 열을 명시하면 열의 순서가 바뀌어도 입력 가능하다

insert into users(age,name,id) values(44,'문도',1);

/ AUTO_INCREMENT

자동으로 증가하는 값을 만든다, 반드시 PRIMARY KEY로 지정해야함
create table users(
id int primary key,
name char(4),
age int);
id값은 자동으로 증가하는 값이 입력된다.
따라서 입력시 null값을 주거나 비워둔다
null 값을 줄때 -

insert into users values(null,'문도',44);
비워둘때 -

insert into users(name,age) values('문도',44);

/ INSERT INTO ~ SELECT

다른 테이블의 데이터를 한번에 입력하게한다
SELECT문의 열의 개수 INSERT 할 테이블의 열의 개수와 같아야 한다

insert into users(열_이름1, 열_이름2,...) select from;

world-db.sql 가져와서 진행한다

- 예시)

select count(*) 'world.city 행 갯수' from world.city; 
// 현재 선택되어있는 데이터베이스가 market_db이므로 world의 테이블을 불러올때 데이터베이스를 명시해줘야한다

desc world.city;
// 테이블의 구조 출력

create table my_city(name char(35), population int);
// 새로운 테이블을 생성, 위에서 출력한 world.city의 열이름과 데이터형식 맞춤

insert into my_city select name,population from world.city;
// world.city에서 특정 열 데이터들을 my_city에 추가한다

/ UPDATE

기존 값을 수정한다

-기본형식

UPDATE 테이블_이름
SET1=1,2=2, ...
WHERE 조건;
앞의 생성된 my_city 테이블의 도시이름중 Seoul을 서울로 바꾸려면
select * from my_city where name = 'seoul';
// seoul 있나확인

update my_city set name = '서울' where name = 'seoul';
// seoul -> 서울로 변경함

select * from my_city where name='서울';
// 서울로 바뀌엇나 확인

/ DELETE

테이블의 행 데이터를 삭제함	

-기본형식

DELETE FROM 테이블_이름 WHERE 조건;
my_city 테이블에서 도시이름이 'New'로 시작하는 행을 삭제

delete from my_city where name like 'new%';

/ TRUNCATE

DELETE 와 유사하지만 WHERE(조건) 사용할 수 없다, 모든 행을 삭제함 (데이터를 삭제)
DELETE보다 속도 빠름
truncate table my_city;

selet * from my_city;
// 빈 테이블 남아있다, 행(데이터) 를 삭제하기때문

desc my_city;
// 테이블구조도 물론 남아있음

/ DROP

테이블 자체를 삭제해버림 속도 매우빠름
drop table my_city;

selet * from my_city;
// 오류, 테이블이 삭제되었기 때문

desc my_city;
// 오류, 테이블이 삭제되었기 때문 / 테이블구조도 안남음
profile
🌽

0개의 댓글