테이블 생성, 변경, 삭제 및 데이타 입력 테이블 생성 CREATE TABLE
변경 ALTER TABLE, CHANGE COLUMN
삭제 DROP COLUMN, DROP TABLE
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 CREATE TABLE people ( person_id INT , person_name VARCHAR (10 ), age TINYINT, birthday DATE ); ALTER TABLE people RENAME TO friends,CHANGE COLUMN person_id person_id TINYINT, CHANGE COLUMN person_name person_nickname VARCHAR (10 ), DROP COLUMN birthday,ADD COLUMN is_married TINYINT AFTER age;DROP TABLE friends;
값입력 INSERT INTO
1 2 3 4 5 6 7 8 9 10 INSERT INTO people VALUES (2 , '전우치' , 18 , '2003-05-12' ); INSERT INTO people (person_id, person_name, age, birthday) VALUES (4 , '존 스미스' , 30 , '1991-03-01' ), (5 , '루피 D. 몽키' , 15 , '2006-12-07' ), (6 , '황비홍' , 24 , '1997-10-30' );
테이블 생성시 제약 넣기
AUTO_INCREMENT
새 행 생성시 자동 1씩 증가PRIMARY KEY
중복 입력 불가 / 빈 값 불가UNIQUE
중복 입력 불가NOT NULL
빈 값 불가UNSIGNED
양수 onlyDEFAULT
값이 없을때 기본값
1 2 3 4 5 6 7 CREATE TABLE people ( person_id INT AUTO_INCREMENT PRIMARY KEY, person_name VARCHAR (10 ) NOT NULL , nickname VARCHAR (10 ) UNIQUE NOT NULL , age TINYINT UNSIGNED, is_married TINYINT DEFAULT 0 );
숫자 자료형 정수, 각 1,2,3,4,8 BytesTINYINT, SMALLINT, MEDIUMINT, INT, BIGINT
고정소수점(Fixed Point) 수, 좁은 범위의 수, 정확한 값DECIMAL(s,d)
실수 부분 s와 소수 부분 d
부동소수점(Floating Point) 수, 넓은 범위의 수, 덜 정확한 값FLOAT, DOUBLE
문자 자료형 CHAR(s), VARCHAR(s)
Fixed와 가변 문자열(실제 글자수 + 1Byte for 글자수 정보) 행 최대 저장이 65,535 이라서 VARCHAR 을 65,535 까지 쓰면 행에 다른 값 저장이 안됨
TINYTEXT, TEXT, MEDIUMTEXT, LONGTEXT
긴 글을 저장 할때 사용 LONGTEXT은 4G 까지 저장 가능
시간 자료형 DATE
, TIME
DATETIME
(입력된 시간 자체 저장), TIMESTAMPE
(설치된 컴퓨터의 시간대로 저장)
시간 데이터를 가감없이 기록 할때 DATETIME
시간 자동 기록, 국제적인 서비스 할 경우 TIMESTAMP 사용
데이터 변경, 삭제 DELETE
: WHERE 와 함께 사용 해서 삭제, WHERE
없을시 전부 삭제 되니 주의 요TRUNCATE
: 테이블 초기화 로 AUTO INCREMENT 하던 ID 값등이 RESET 된다.
1 2 DELETE FROM businessesWHERE status = 'CLS' ;
UPDATE
: 자료 업데이트 ‘SET’ 와 ‘WHERE’ 와 같이 사용
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 UPDATE menusSET menu_name = '삼선짜장' WHERE menu_id = 12 ;UPDATE menusSET menu_name = '열정떡볶이' , kilocalories = 492.78 , price = 5000 WHERE fk_business_id = 4 AND menu_name = '국물떡볶이' ; UPDATE menusSET price = price + 1000 WHERE fk_business_id = 8 ;UPDATE menusSET menu_name = CONCAT('전통 ' , menu_name)WHERE fk_business_id IN ( SELECT business_id FROM sections S LEFT JOIN businesses B ON S.section_id = B.fk_section_id WHERE section_name = '한식' );
`WHERE’ 없으면 전부 업데이트 됨으로 주의 요
1 2 UPDATE menusSET menu_name = '획일화' ;