[028] Table생성하여 데이터 조회 및 수정하기 / SQL 기초 -②

이연희·2023년 9월 18일
0

Chapter
1. Table
(1) Table 생성
(2) Table 변경하기
2. INSERT
3. SELECT, WHERE
(1) SELCET문으로 컬럼 조회하기
(2) WHERE문으로 조건에 맞는 데이터 조회하기
4. UPDATE, DELETE
(1) UPDATA문으로 데이터 수정하기
(2) DELETE문으로 데이터 삭제하기
5. ORDER BY

1. Table

(1) Table 생성

테이블을 생성하는 문법은 다음과 같다.

CREATE TABLE table_name
(
    column_name1  datatype,
    column_name2  datatype,
    ....
);

이를 이용해서 id(int)와 name(varchar(16))을 가지는 mytable을 만들어보자.

# 테이블 생성
CREATE TABLE mytable
(
    id  int,
    name  varchar(16)
);

# 확인
SHOW TABLES;

# 테이블 정보 확인
DESC mytable;

만들어낸 테이블을 확인할 때

SHOW TABLES;

를 확인하면 만들어진 테이블 목록을 확인할 수 있지만,

DESC table_name;

을 사용하면 'table_name'테이블 하나의 세부 정보를 확인하는 차이가 있다.


.
.

(2) Table 변경하기

다음으로 테이블의 구조를 변경하는 방법에 대해서 알아보자. 테이블 이름이나 칼럼명(+데이터 타입)을 변경할 수 있을 뿐더러, 칼럼을 추가 삭제, 혹은 테이블 자체를 삭제할 수도 있다.

1) 테이블 이름 변경

앞에서 만들어낸 mytable의 이름을 'person'으로 변경한 후 확인해보자.

#테이블 이름 변경
ALTER TABLE mytable
RENAME person;

#확인
SHOW TABLES;

.

2) 칼럼 추가

데이터 타입이 'double'인 새로운 컬럼 'agee'를 추가해 보았다.

#칼럼 추가
ALTER TABLE person
ADD COLUMN agee double;

#확인
DESC person;


.

3) 칼럼의 데이터 타입 변경

새로 만들어낸 'agee'컬럼의 데이터 타입을 'int'로 변경해 보자.

#컬럼의 데이터 타입 변경
ALTER TABLE person
MODIFY COLUMN agee int;

#확인
DESC person;


.

4) 컬럼명 변경

이번에는 컬럼명도 변경해 보았다. 'agee'컬럼명이 잘못 되었다고 판단하여 'age'로 바꿔주었다.

#컬럼명 변경
ALTER TABLE person
CHANGE COLUMN agee age int;

#확인
DESC person;


.

5) 컬럼 삭제

불필요한 컬럼을 삭제할 수도 있다. 'age'컬럼을 삭제해보자.

#컬럼 삭제
ALTER TABLE person
DROP COLUMN age;

#확인
DESC person;

.

6) 테이블 삭제

마지막으로 테이블도 삭제해보자.

# 테이블 삭제
DROP TABLE person;

#확인
SHOW TABLES;

.
.
.
.

2. INSERT

테이블에 'insert'문을 사용하면 column-value를 짝지어서 데이터를 추가할 수 있다.

우선 데이터베이스에 실습을 위한 테이블 'person'을 만들어 주었다.

#테이블 생성
CREATE TABLE person
(
    id int,
    name varchar(16),
    age int,
    sex CHAR
);

#확인
DESC person;

이제 insert문을 이용해서 데이터를 추가해보자.
조심해야할 점은 컬럼의 순서와 값의 순서가 일치해야 한다. 만약 모든 컬럼의 데이터를 추가한다면 컬럼명은 생략해도 된다.

# ID값이 1인 이효리, 43세, 여자(F)데이터 추가
INSERT INTO person (id,name,age,sex)
VALUES (1, '이효리', 43, 'F');

# ID값이 2인 이상순, 48, 남자(M)
INSERT INTO person
VALUES (2, '이상순', 48, 'M');

# 확인
SELECT * FROM person;


.
.
.
.

3. SELECT, WHERE

테이블 안의 데이터가 확보되었다면 원하는 데이터를 골라서 조회하는 방법을 알아보자.

(1) SELCET문으로 컬럼 조회하기

먼저 person테이블의 모든 컬럼을 조회해보자.

# person테이블 모든 컬럼
SELECT * FROM person;

원하는 컬럼 몇 개만을 확인할 수도 있다.

# person 테이블 이름,나이,성별 조회
SELECT name, age, sex FROM person;


.
.

(2) WHERE문으로 조건에 맞는 데이터 조회하기

컬럼 뿐만 아니라 원하는 조건을 설정해서 맞춤 데이터를 확인할 수 있다.

# 성별이 여자인 데이터 조회
SELECT * FROM person WHERE sex= 'F';

.
.
.
.

4. UPDATE, DELETE

(1) UPDATA문으로 데이터 수정하기

이번에는 테이블의 데이터를 수정해보자.
조건에 맞는 데이터를 '컬럼명=수정값' 으로 한 번에 여러 개 변경할 수 있다.

#이효리 나이 23세로 수정
UPDATE person SET age=23 WHERE name='이효리';
#확인
SELECT * FROM person WHERE name='이효리';


.
.

(2) DELETE문으로 데이터 삭제하기

이번에는 원하는 조건의 데이터를 삭제해보자.

#이상순 데이터 삭제
DELETE FROM person
WHERE name='이상순';
#확인
SELECT * FROM person;

.
.
.
.

5. ORDER BY

이제 데이터를 원하는 컬럼을 기준으로 정렬하려 조회하는 방법을 알아보자.
실습을 위해 원하는 테이블('celeb')을 만든 후 INSERT문으로 데이터를 추가해 주었다.

테이블의 id컬럼을 기본키(primary key)로 설정해서 중복값이 없게 해주고, 자동으로 1씩 증가하는 값으로 설정해주었다. 또한 id와 name모두 null이 올 수 없게 설정해 주었다.

#celeb 테이블 만들기
CREATE TABLE celeb
(
    ID    int   NOT NULL   AUTO_INCREMENT   PRIMARY KEY,
    NAME   varchar(32)   NOT NULL   DEFAULT '',
    BIRTHDAY   date,
    AGE   int,
    SEX   char(1),
    JOB_TITLE   varchar(32),
    AGENCY   varchar(32)
);

#확인
DESC celeb;

#데이터 추가
INSERT INTO celeb VALUES(1, '아이유', '1993-05-16', 29, 'F', '가수, 탤런트', 'EDAM엔터테인먼트');
INSERT INTO celeb VALUES(2, '이미주', '1994-05-16', 29, 'F', '가수, 탤런트', 'EDAM엔터테인먼트');
INSERT INTO celeb VALUES(3, '송강', '1994-04-23', 29, 'M', '탤런트', '나무액터스');
INSERT INTO celeb VALUES(4, '강동원', '1981-01-18', 41, 'M', '영화배우, 탤런트', 'YG엔터테인먼트);
INSERT INTO celeb VALUES(5, '유재석', '1972-08-14', 50, 'M', 'MC, 개그맨', '안테나');
INSERT INTO celeb VALUES(6, '차승원', '1970-06-07', 52, 'M', '영화배우, 모델', 'YG엔터테인먼트');
INSERT INTO celeb VALUES(7, '이수현', '1999-05-04', 23, 'F', '가수', 'YG엔터테인먼트');

#확인
SELECT * FROM celeb;

이제 celeb 테이블을 이용해서 데이터 정렬을 몇 가지 해보자. asc, desc 문구를 이용해서 오름차순과 내림차순 정렬을 할 수 있다.

먼저 이름과 나이를 나이순으로 정렬해본다.

SELECT 	age, name
FROM celeb
ORDER BY age;

이름과 나이를 나이의 역순으로도 정렬해보자.

SELECT 	age, name
FROM celeb
ORDER BY age DESC;

한 번에 두 컬럼을 사용해서 정렬을 할 수도 있다.
이름과 나이를 나이와 이름순으로 정렬해보았다.

SELECT 	age, name
FROM celeb
ORDER BY age, name;

마지막으로 이름과 나이를 나이의 역순으로 정렬한 뒤, 이름순으로 정렬해보자.

SELECT age, name
FROM celeb
ORDER BY age DESC, name ASC;

profile
안녕하세요, 데이터 공부를 하고 있습니다.

0개의 댓글