728x90
반응형
#SQL 명령어 및 사용법
#MySQL COMMAND 명령어
#mysql cmd접속
>mysql -uroot -p
#데이터베이스 목록 보기
>show databases;
#test 스키마(데이터베이스)사용
>use test;
#test에 있는 테이블 목록 보기
>show tables;
#cmd 종료
>exit
#자료형
CHAR(5)
장점
-고정형
-수정이 빈번한 값에 유리하다.
단점
(단편화 - 쓰지않는 공간을 낭비한다.)
VARCHAR(5)
장점
-가변형(값의 수정이나 삭제가 되었을때 시간과 비용이 더 필요하다.)
-경제적이다.
-수정이 빈번하지 않는 값에 유리하다.
단점
단점: 데이터에 변경이 자주 있을 경우
(모든 데이터에 영향을 주기때문에 시간이나 금전적으로 손해이다.)
INT(8) : 8바이트 (zerofill)
ZEROFILL 옵션이 있는 데이터들은
자릿수가 괄호 안의 수보다 작을 때 자릿수를 다 0으로 채운다
#테이블 추가
-자동 번호 부여 키워드
MySQL : AUTO_INCREMENT
Oracle : Sequence
-번호를 PK로 지정, 자동 번호부여(기본키에만 사용가능하며 중복이 있으면 안된다. MySQL이 관리 해준다.)
-Primary key : 개체 무결성
-NOT NULL : 도메인 무결성
CREATE TABLE car(
car_id INT PRIMARY KEY AUTO_INCREMENT,
car_model CHAR(20) NOT NULL,
car_price INT NOT NULL,
car_desc VARCHAR(200)
);
#테이블 구조 확인(테이블 스키마)
DESC car;
#테이블 삭제
DROP TABLE car;
#CRUD
#INSERT
-- 추가
INSERT INTO car(car_model, car_price, car_desc) VALUES('sonata',2000,'good');
-- 컬럼 위치 바꿔서 추가
INSERT INTO car(car_desc, car_price, car_model ) VALUES('not bad',2000,'bmw');
-- NULL값 허용하는 컬럼 제외하고 추가
INSERT INTO car(car_model, car_price) VALUES('genesis', 6000);
-- 다중 추가
INSERT INTO car(car_model, car_price, car_desc)
VALUES
('avante', 2500, 'bad'),
('morning', 1800, 'great'),
('k5', 3000, 'trash'),
('malibu', 3100, 'cool');
#SELECT
-SELECT사용시 기본키를 사용해서 찾는게 가장 빠르다.
(인덱스 : 정렬하는 기준)
-- 조회하기
SELECT * FROM car;
-- 별칭 부여
SELECT car_model model, car_price price FROM car;
-- AS로 별칭 부여
SELECT car_model AS model, car_price AS price FROM car;
-- >, < 크거나 작다
SELECT * FROM car WHERE car_price > 2000;
-- = 같다
SELECT * FROM car WHERE car_price = 3000;
-- <> 다르다
SELECT * FROM car WHERE car_price <> 3000;
-- NOT 반대
SELECT * FROM car WHERE NOT car_price = 3000;
-- AND 및
SELECT * FROM car WHERE car_price >= 2500 AND car_price <= 5000;
-- BETWEEN 사이
SELECT * FROM car WHERE car_price BETWEEN 3000 AND 3700;
-- OR 또는
SELECT * FROM car WHERE car_price = 3000 OR car_price = 3700;
-- IN() 안에
SELECT * FROM car WHERE car_price IN (3000, 3700);
-- IS NULL NULL인지 여부
SELECT * FROM car WHERE car_desc IS NULL;
-- IS NOT NULL NULL이 아닌지 여부
SELECT * FROM car WHERE car_desc IS NOT NULL;
-- 오름차순
SELECT * FROM car ORDER BY car_price ASC;
-- 내림차순
SELECT * FROM car ORDER BY car_price DESC;
-- 깊은 정렬
SELECT * FROM car ORDER BY car_price DESC, car_id DESC;
-- 순서 FROM -> WHERE -> ORDER BY -> SELECT
SELECT * FROM car WHERE car_price >= 2500 ORDER BY car_price, car_id DESC;
-- MySQL에만 있는 LIMIT키워드(자르기 기능)
SELECT * FROM car WHERE car_price >= 2500 ORDER BY car_price DESC, car_id DESC LIMIT 3;
-- 3,2 -> 인덱스 3부터 2개를 조회 한다는 의미
SELECT * FROM car WHERE car_price >= 2500 ORDER BY car_price DESC, car_id DESC LIMIT 3,2;
-- 검색 (% 와일드 카드)
-- 첫 번째 글자가 m인 모든 값
SELECT * FROM car WHERE car_model LIKE "m%";
-- 마지막 글자가 m인 모든 값
SELECT * FROM car WHERE car_model LIKE "%m";
-- m이 포함된 모든 값
SELECT * FROM car WHERE car_model LIKE "%m%";
-- 검색(_와일드 카드)
-- m + _ <- 자리수
SELECT * FROM car WHERE car_model LIKE "m_____";
SELECT * FROM car WHERE car_model LIKE "m_%";
#UPDATE
-- 조건 수정
UPDATE car SET car_desc = 'very good' WHERE car_id = 8;
-- 조건 다중 컬럼 수정
UPDATE car SET car_desc = 'very good', car_price = 7777 WHERE car_id = 8;
#DELETE
-- 조건 삭제
DELETE FROM car WHERE car_id = 1;
728x90
반응형
'IT > SQL' 카테고리의 다른 글
[SQL] - 데이터베이스 INSERT문 문법 및 사용 방법 (0) | 2020.08.08 |
---|---|
[SQL] - 데이터베이스 DML, DDL, DCL이란 ? (0) | 2020.08.08 |
[SQL] - 데이터베이스 데이터 정규화, 이상 현상(Anomaly)이란 ?(1NF-1차 정규화, 2NF-2차 정규화, 3NF-3차 정규화) (0) | 2020.07.30 |
[SQL] - 데이터베이스 데이터 무결성이란 ? (0) | 2020.07.30 |
[SQL] - 데이터베이스 키(Key)의 개념 및 종류 (0) | 2020.07.30 |
댓글