create database 데이터베이스명 default character set utf8mb4;
default character set utf8mb4
: utf8(다국어지원)mb4(이모지 문자)을 기본사용으로 선언create table tablename
❗varchar 타입 : pandas의 object와 같은 형태(string)
CREATE TABLE 테이블명(컬럼명 데이터타입, 컬럼명 데이터타입, ...);
:Table 생성 SHOW TABLES;
: 현재 데이터베이스에 있는 테이블 목록 확인DESC 테이블명
: 지정한 테이블의 정보 확인ALTER TABLE 테이블명 RENAME 새테이블명
: 새로운 테이블명으로 변경ALTER TABLE 테이블명 ADD COLUMN 새컬럼 데이터타입
: 테이블에 새로운 컬럼 추가mysql> alter table person add column agee double;
Query OK, 0 rows affected (0.01 sec)
Records: 0 Duplicates: 0 Warnings: 0
mysql> desc table;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
mysql> desc person;
+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id | int | YES | | NULL | |
| name | varchar(16) | YES | | NULL | |
| agee | double | YES | | NULL | |
+-------+-------------+------+-----+---------+-------+
❗ DOUBLE : pandas의 float와 유사한 형태(실수)로 부동소수점 타입
ALTER TABLE 테이블명 MODIFY COLUMN 컬럼명 데이터타입
: 테이블에 컬럼 데이터타입 변경 ALTER TABLE 테이블명 CHANGE COLUMN 컬럼명 새컬럼명 새데이터타입
: 테이블에 컬럼명, 데이터타입 변경ALTER TABLE 테이블명 DROP COLUMN 컬럼명
: 테이블에 컬럼 삭제DROP TABLE 테이블명
: 테이블 삭제CREATE TABLE PERSON(
-> ID INT,
-> NAME VARCHAR(16),
-> AGE INT,
-> SEX CHAR
-> );
Query OK, 0 rows affected (0.01 sec)
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.00 sec)
❗ CHAR : 한글자로 이루어진 데이터타입
mysql> CREATE TABLE PERSON(
-> ID INT,
-> NAME VARCHAR(16),
-> AGE INT,
-> SEX CHAR
-> );
Query OK, 0 rows affected (0.01 sec)
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.00 sec)
SELECT * FROM 테이블명;
mysql> SELECT * FROM PERSON;
+------+--------+------+------+
| ID | NAME | AGE | SEX |
+------+--------+------+------+
| 1 | 이효리 | 43 | F |
+------+--------+------+------+
1 row in set (0.00 sec)
mysql> INSERT INTO PERSON
-> VALUES (2, '이상순', 48, 'M');
Query OK, 1 row affected (0.01 sec)
mysql> SELECT * FROM PERSON;
+------+--------+------+------+
| ID | NAME | AGE | SEX |
+------+--------+------+------+
| 1 | 이효리 | 43 | F |
| 2 | 이상순 | 48 | M |
+------+--------+------+------+
2 rows in set (0.00 sec)
'SELECT COLUMN1, COLUMN2, .. FROM TABLENAME;
: 테이블 내의 특정 컬럼에 대한 데이터 조회 SELECT * FROM TABLENAME;
: 테이블 내 모든 컬럼에 대한 데이터 조회SELECT COLUMN1, COLUMN2,.. FROM TABLENAME WHERE 조건;
SELECT * FROM TABLENAME WHERE 조건 ;
UPDATE 테이블명 SET COLUMN1 = VALUE1, COLUMN2 = VALUE2,...WHERE 조건;
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)
DELETE FROM 테이블명 WHERE COLUMN=VALUE;
mysql> DELETE FROM PERSON WHERE NAME='이상순';
Query OK, 1 row affected (0.00 sec)
mysql> SELECT * FROM PERSON;
+------+--------+------+------+
| ID | NAME | AGE | SEX |
+------+--------+------+------+
| 1 | 이효리 | 23 | F |
+------+--------+------+------+
1 row in set (0.00 sec)
SELECT 문에서 데이터를 특정 컬럼을 기준으로 오름차순/ 내림차순 정렬 (default :ASC로 생략가능)
- ASC : 오름차순 정렬
- DESC : 내림차순 정렬
SELECT COLUMN1,..FROM 테이블명 ORDER BY COLUMN1,.. ASC /DESC;
환경 생성
mysql> create table celeb(
-> ID int not null auto_increment primary key,
-> NAME varchar(32) not null default '',
-> BIRTHDAY date,
-> AGE int,
-> SEX CHAR,
-> JOB_TITLE varchar(32),
-> AGENCY varchar(32)
-> );
Query OK, 0 rows affected (0.01 sec)
mysql> select * from celeb;
Empty set (0.00 sec)
mysql> DESC CELEB;
+-----------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-----------+-------------+------+-----+---------+----------------+
| ID | int | NO | PRI | NULL | auto_increment |
| NAME | varchar(32) | NO | | | |
| BIRTHDAY | date | YES | | NULL | |
| AGE | int | YES | | NULL | |
| SEX | char(1) | YES | | NULL | |
| JOB_TITLE | varchar(32) | YES | | NULL | |
| AGENCY | varchar(32) | YES | | NULL | |
+-----------+-------------+------+-----+---------+----------------+
7 rows in set (0.00 sec)
INSERT INTO CELEB VALUES(1,'아이유','1993-05-16',29,'F','가수,텔런트','EDAM엔터테이먼트');
+----+--------+------------+------+------+------------------+------------------+
| ID | NAME | BIRTHDAY | AGE | SEX | JOB_TITLE | AGENCY |
+----+--------+------------+------+------+------------------+------------------+
| 1 | 아이유 | 1993-05-16 | 29 | F | 가수, 텔런트 | EDAM엔터테이먼트 |
| 2 | 이미주 | 1994-09-23 | 28 | F | 가수 | 울림엔터테이먼트 |
| 3 | 송강 | 1994-04-23 | 28 | M | 텔런트 | 나무엑터스 |
| 4 | 강동원 | 1981-01-18 | 41 | M | 영화배우, 텔런트 | YG엔터테이먼트 |
| 5 | 유재석 | 1972-08-14 | 50 | M | MC, 개그맨 | 안테나 |
| 6 | 차승원 | 1970-06-07 | 48 | M | 영화배우, 모델 | YG엔터테이먼트 |
| 7 | 이수현 | 1999-05-04 | 23 | F | 가수 | YG엔터테이먼트 |
+----+--------+------------+------+------+------------------+------------------+
- celeb 테이블에서 이름과 나이를 나이순으로 조회
select age, name from celeb
order by age (ASC);
+------+--------+
| age | name |
+------+--------+
| 23 | 이수현 |
| 28 | 이미주 |
| 28 | 송강 |
| 29 | 아이유 |
| 41 | 강동원 |
| 48 | 차승원 |
| 50 | 유재석 |
+------+--------+
7 rows in set (0.00 sec)
order by age (asc), name desc
입력