SQL

Table 변경 구문, INSERT, SELECT, WHERE, UPDATE, DELETE, ORDER BY

책다니엘 2024. 7. 19. 13:52

1. 테이블 이름을 바꾸는 구문은 ALTER TABLE - RENAME이다.

ALTER TABLE tablename
RENAME new_tablename

 

 

2. 새로운 column을 추가하는 방법은 ALTER TABLE - ADD COLUMN이다.

ALTER TABLE tablename
ADD COLUMN columnname datatype;

# 예시

ALTER TABLE animal
ADD COLUMN name varchar(10);

 

3. 이미 존재하는 column의 데이터타입을 변경하는 방법은 ALTER TABLE - MODIFY COLUMN이다.

ALTER TABLE person
MODIFY COLUMN age int;

 

4. 이미 존재하는 column의 데이터타입과 이름까지 바꾸고 싶다면 ALTER TABLE - CHANGE COLUMN을 사용한다.

ALTER TABLE tablename
CHANGE COLUMN old_columnname new_columnname new_datatype

 

5. 테이블 삭제는 ALTER TABLE - DROP COLUMN으로 한다.

ALTER TABLE tablename
DROP COLUMN columnname;

 

6. 테이블을 설명하려면 DESC 구문을 사용한다.

mysql> desc person;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id    | int         | YES  |     | NULL    |       |
| name  | varchar(16) | YES  |     | NULL    |       |
| age   | int         | YES  |     | NULL    |       |
| sex   | char(1)     | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+
4 rows in set (0.01 sec)

 

7. INSERT 구문을 사용할 때는 입력한 컬럼 이름의 순서와 값의 순서가 일치하도록 주의한다.

INSERT INTO tablename(column1, column2, ...)
VALUES (value1, value2, ...)

 

8. 모든 컬럼값을 추가하는 경우에는 다음과 같이 컬럼 이름을 지정하지 않아도 된다. 하지만 입력하는 값의 순서가 테이블의 컬럼 순서와 일치하도록 주의해야 한다.

INSERT INTO tablename
VALUES (value1, value2, ...)

 

9. SELECT는 특정 테이블 내의 특정 컬럼에 대한 데이터를 조회하는 구문이다.

SELECT column1, column2, ...
FROM tablename;

 

10. SELECT *는 모든 데이터를 조회하는 구문이다.

SELECT * FROM tablename;

 

11. WHERE 구문은 테이블 내에서 조건을 만족하는 데이터를 조회하는 구문이다.

SELECT column1, column2, ...
FROM tablename
WHERE condition;

# 예시

SELECT * FROM person WHERE sex = 'F';
+------+--------+------+------+
| id   | name   | age  | sex  |
+------+--------+------+------+
|    1 | 이효리 |   43 | F    |
+------+--------+------+------+
1 row in set (0.00 sec)

 

12. UPDATE, SET 구문은 특정 컬럼 내의 데이터를 바꿔주는 구문이다. 

UPDATE person
SET column1 = value1, column2 = value2, ...
WHERE condition;

# 예시

mysql> update person
    -> set age = 23
    -> where name = '이효리';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> select * from person;
+------+--------+------+------+
| id   | name   | age  | sex  |
+------+--------+------+------+
|    1 | 이효리 |   23 | F    |
|    2 | 이상순 |   48 | M    |
+------+--------+------+------+
2 rows in set (0.00 sec)

 

13. 데이터를 삭제하기 위해서는 DELETE FROM ~ 구문을 사용한다.

DELETE FROM table
WHERE condition;

# 예시

mysql> select * from person;
+------+--------+------+------+
| id   | name   | age  | sex  |
+------+--------+------+------+
|    1 | 이효리 |   23 | F    |
|    2 | 이상순 |   48 | M    |
+------+--------+------+------+
2 rows in set (0.00 sec)

mysql> delete from person where name = '이상순';
Query OK, 1 row affected (0.01 sec)

mysql> select * from person;
+------+--------+------+------+
| id   | name   | age  | sex  |
+------+--------+------+------+
|    1 | 이효리 |   23 | F    |
+------+--------+------+----

 

14. ASC(ascending)은 오름차순 정렬, DESC(descending)은 내림차순 정렬이다.

SELECT column1, column2, ...
FROM tablename 
ORDER BY column1, column2, ... ASC # 또는 DESC

 

15. 특정 컬럼의 오름차순, 다른 특정 컬럼의 내림차순 등으로 정렬할 수도 있다.

mysql> SELECT age, name
    -> FROM celeb
    -> ORDER BY age DESC, name ASC;
+------+--------+
| age  | name   |
+------+--------+
|   50 | 유재석 |
|   48 | 차승원 |
|   41 | 강동원 |
|   29 | 아이유 |
|   28 | 송강   |
|   28 | 이미주 |
|   23 | 이수현 |
+------+--------+
7 rows in set (0.00 sec)

'SQL' 카테고리의 다른 글

CONCAT, alias, DISTINCT, LIMIT  (8) 2024.07.20
비교연산자, 논리연산자, UNION, JOIN  (1) 2024.07.19
01. Database 관리, USER 관리  (0) 2024.05.31