[MySQL] InsertUpdateDelete 1

2023. 1. 12. 17:10

MySQL에서 지원하는 컬럼 타입

 

  • Numeric Type
    • INTEGER, INT, SMALLINT, TINYINT, MEDIUMINT, BIGINT
    • DECIMAL, NUMERIC
    • FLOAT, DOUBLE, BIT
  • Date and Time Type
    • DATE, DATETIME, TIMESTAMP,TIME, YEAR

 

  • String Type
    • CHAR, VARCHAR, BINARY, VARBINARY, BLOB, TEXT, ENUM, SET
  • JSON Type
    • 다양한 JSON 조작함수를 제공함
  • Spatial Type
    • 위도와 경도를 중심으로한 위치 관련 타입

 

TABLE 생성
CREATE TABLE prod.vital (
 user_id int not null,
 vital_id int primary key,
 date timestamp not null,
 weight int not null
);

CREATE TABLE prod.alert (
 alert_id int primary key,
 vital_id int,
 alert_type varchar(32),
 date timestamp,
 user_id int
);

 

 

테이블 2개 생성
INSERT INTO prod.vital(user_id, vital_id, date, weight) VALUES(100, 1, '2020-01-01', 75);
INSERT INTO prod.vital(user_id, vital_id, date, weight) VALUES(100, 3, '2020-01-02', 78);
INSERT INTO prod.vital(user_id, vital_id, date, weight) VALUES(101, 2, '2020-01-01', 90);
INSERT INTO prod.vital(user_id, vital_id, date, weight) VALUES(101, 4, '2020-01-02', 95);
INSERT INTO prod.vital(user_id, vital_id, date, weight) VALUES(999, 5, '2020-01-02', -1);
INSERT INTO prod.vital(user_id, vital_id, date, weight) VALUES(999, 5, '2020-01-02', 10);
-- primary key unit 제약 벗어남
-- weight -1인 것도 나중에 예외처리.


INSERT INTO prod.alert VALUES(1, 4, 'WeightIncrease', '2020-01-02', 101);
INSERT INTO prod.alert VALUES(2, NULL, 'MissingVital', '2020-01-04', 100);
INSERT INTO prod.alert VALUES(3, NULL, 'MissingVital', '2020-01-04', 101);
-- 위와 다르게 순서 지정하지 않고 바로 VALUES 씀.
-- 원래 TABLES 만들 때 지정했던 FIELD 순서대로 라면 FIELD 리스트 지정하지 않아도 됨.

 

생성 후 vital TABLE에는 5개의 레코드, alert TABLE에는 3개의 레코드가 들어가 있을 것임.

BELATED ARTICLES

more