일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- Ai
- 열심히
- 노마드코더
- JavaScript
- Codestates
- 재미져
- 빅데이터
- SQL
- 2021
- 코딩테스트
- 리뷰
- 코드스테이츠
- 독서
- 주간보고
- yolo
- 부트캠프
- 매일매일
- selenium
- 선형회귀
- python
- pandas
- 자료구조
- 딥러닝
- 기초통계
- 파이썬
- MYSQL
- 성실히
- bootcamp
- leetcode
- 꾸준히
- Today
- Total
코딩일기
MySQL 기초부터 훑어보기6(Table) 본문
안녕하십니까 다제입니다.
오늘도 SQL에 대해서 배워보도록 하겠습니다.
그중에서도 table 생성, 추가, 수정, 삭제에 관하여 배워보도록 하겠습니다.
1. Table
1) DATABASE 생성
# 데이터베이스 생성
CREATE DATABASE EXISTS course_rating;
# 만약 데이터베이스가 없다면 생성하라는 의미
CREATE DATATBASE IF NOT EXISTS course_rating;
2) DATABASE 사용
USE course_rating;
3) Data type
◎ 숫자형 타입
-. 정수형 타입
* TINYINT : 작은 범위의 정수를 저장할 때 사용
* SMALLINT : TINTINT보다 좀 더 큰 범위의 정수
* MEDIUMINT
→ MEDIUMINT SIGNED : -8388608 ~ 8388607
→ MEDIUMINT UNSIGNED : 0 ~ 16777215
* INT
→ INT SIGNED : -2147483648 ~ 2147483647
→ EDIUINT UNSIGNED : 0 ~ 4294967295
* BIGINT
→ BIGINT SIGNED : -9223372036854775808 ~ 9223372036854775807
→ BIGINT UNSIGNED : 0 ~ 18446744073709551615
NED : -8388608 ~ 8388607
-. 실수형 타입
* DECIMAL
→ 일반적으로 자주 쓰이는 실수형 타입 중 하나로 보통 DECIMAL(M, D)의 형식
→ M은 최대로 쓸 수 있는 전체 숫자의 자리수이고, D는 최대로 쓸 수 있는 소수점 뒤에 있는 자리의 수
→ M은 최대 65, D는 30까지의 값을 가질 수 있음
→ DECIMAL이라는 단어 대신 DEC, NUMERIC, FIXED를 써도 가능함
* FLOAT
→ -3.402823466E+38 ~ -1.175494351E-38,
→ 0,
→ 1.175494351E-38 ~ 3.402823466E+38
→ 범위의 실수들을 나타낼 수 있는 데이터 타입
* DOUBLE
→ -1.7976931348623157E+308 ~ -2.2250738585072014E-308,
→ 0
→ 2.2250738585072014E-308 ~ 1.7976931348623157E+308
→ 범위의 실수들을 나타낼 수 있는 데이터 타입
→ FLOAT에 비해 더 넓은 범위의 수를 나타낼 수 있을 뿐만 아니라, 그 정밀도 또한 더 높은 타입
◎ 날짜 및 시간 타입
* DATE : 날짜를 저장하는 데이터 타입, ex) ’2020-03-26’
* DATETIME : 날짜와 시간을 저장하는 데이터 타입, ex ’2020-03-26 09:30:27’
* TIMESTAMP : 날짜와 시간을 저장하는 데이터 타입입니다. ’2020-03-26 09:30:27’
→ TIMESTAMP 타입은 타임 존(time_zone) 정보도 함께 저장함
◎ 문자열 타입
* CHAR : 문자열을 나타내는 기본 타입으로 Character의 줄임말, ex) CHAR(30)
* VARCHAR : 문자열을 나타내는 기본 타입으로 Character Varing의 줄임말, ex) VARCHAR(30)
→ CHAR는 고정 길이 타입이고, VARCHAR는 가변 길이 타입이라는 점
→ 저장 용량이 설정된 최대 길이에 맞게 고정되는 게 아니라 실제 저장된 값에 맞게 최적화됨
* TEXT : 문자열을 저장하는 데이터 타입으로 최대 65535 자까지 저장 가능한 LONGTEXT 타입
4) Table 생성
CREATE TABLE `cell phone store`.`good_seller` (
`id` INT NOT NULL AUTO_INCREMENT,
`name` VARCHAR(20) NULL,
`local` VARCHAR(20) NULL,
`number` INT NULL,
`date` DATE NULL,
PRIMARY KEY(`id`));
-. 생성원리 : [feature 이름] [데이터타입] [속성] [PRIMARY KEY(원하는 컬럼쪽에 써줘도 됨)]
→ 속성의 NULL은 NULL이 있어도 괜찮다라는 의미
→ feature 이름을 생성할 때는 `(백터)로 감싸는 것을 추천
→ cell pheon store DB 안에 good_seller table을 생성하는 코드
5) row 추가
INSERT INTO student( id, name, major, phone) VALUES( 1, 홍길동, 컴퓨터, 1234-4567 );
INSERT INTO food_menu (menu, price, ingredient) VALUES ("123", 5000, "맵다");
INSERT INTO food_menu (menu, price, ingredient) VALUES ("1234", 3000, "천천히 먹자");
INSERT INTO food_menu (menu, price, ingredient) VALUES ("1235", 8000, "식혀먹자");
INSERT INTO food_menu (menu, price, ingredient) VALUES ("1236", 7000, "맛있게 먹자");
-. 특정 feature 정보만 가지고 있을 때는 feature 이름을 기재하여야 한다.
-. 이때 적어주지 않은 곳은 NULL로 입력이 된다.
-. 단, 모든 row값을 다 넣을 때는 feature 이름을 제외하여도 된다.
-. 또한, id feature 값을 주지 않아도 id는 auto_increment(AI) 특성으로 자동으로 입력이 된다.
6) row 수정
# 1개 수정
UPDATE student SET major = "css" WHERE id = 2;
# 2개 이상 수정
UPDATE student
SET major = "css", name = "홍길탕"
WHERE id = 2;
# 한 feature의 모든 row 수정하기
UPDATE final_test SET SCORING = SCORING + 10
-. UPDATE [table명] SET [feature name] = "변경된내용" WHERE id = id번호;
-. WHERE절을 사용하지 않으면 major feature가 모두 css로 변경되어 버린다. 그래서 꼭! WHERE절을 사용해주어야 합니다.
7) row 삭제
DELETE FROM student WHERE id = 200;
-. student table에서 id 200에 해당되는 row를 삭제하겠다는 의미입니다.
-. 삭제에는 물리적인 삭제와 논리적인 삭제가 있습니다. 물리적인 삭제는 데이터베이스에서 아에 삭제를 하는 것을 으미하며, 논리적인 삭제는 UPDATE를 의미합니다.
우리는 데이터가 무척 소중한 존재라는 사실에 대해 인지할 필요가 있습니다.
데이터 하나하나가 자산이고, 인사이트를 발견할 수 있는 밑거름인것이죠!
절대 결재권자의 승인이 없이 데이터베이스값을 변경(수정, 삭제)하지 않겠습니다.
감사합니다.
'Code > SQL' 카테고리의 다른 글
[MySQL 8] Foreign Key 삭제 & 업데이트 정책(feat. Codestates _AI_BootCamp, 코드스테이츠) (0) | 2021.03.11 |
---|---|
MySQL 기초부터 훑어보기7(ALTER, TABLE) (2) | 2021.03.08 |
MySQL 기초부터 훑어보기5( Subquery, view) (0) | 2021.03.07 |
MySQL 기초부터 훑어보기4(ForeignKey, Join) (0) | 2021.03.07 |
MySQL 기초부터 훑어보기3(GROUP BY, SQL Code 실행되는 순서) (0) | 2021.03.06 |