1) SELECT FROM member [ORDER BY] height
2) SELECT FROM member [LIMIT] 5,2
3) SELECT [DISTINCT] phone1 FROM member
INSERT INTO 테이블 [(열1, 열2, ...)] VALUES (값1, 값2, ...)
데이터 여러개 입력할때 사용
INSERT INTO 테이블이름 VALUES (값1, 값2..), (값3, 값4..), (값5, 값6.. );
DELET FROM 테이블이름 WHERE 조건;
1) 예제파일 워크벤치로 열기
sql파일이 왜 pdf로 연결되있는지 모르겠지만 저 파일 맞음
2) result grid 창에서 member1과 buy 확인하기
DROP DATABASE IF EXISTS 파일이름
CREAT DATABASE 파일이름
USE market_db;
CREATE TABLE member -- 회원 테이블
( mem_id CHAR(8) NOT NULL PRIMARY KEY, -- 사용자 아이디(PK)
mem_name VARCHAR(10) NOT NULL, -- 이름
mem_number INT NOT NULL, -- 인원수
addr CHAR(2) NOT NULL, -- 지역(경기,서울,경남 식으로 2글자만입력)
phone1 CHAR(3), -- 연락처의 국번(02, 031, 055 등)
phone2 CHAR(8), -- 연락처의 나머지 전화번호(하이픈제외)
height SMALLINT, -- 평균 키
debut_date DATE -- 데뷔 일자
);
CREATE TABLE buy -- 구매 테이블
( num INT AUTO_INCREMENT NOT NULL PRIMARY KEY, -- 순번(PK)
mem_id CHAR(8) NOT NULL, -- 아이디(FK)
prod_name CHAR(6) NOT NULL, -- 제품이름
group_name CHAR(4) , -- 분류
price INT NOT NULL, -- 가격
amount SMALLINT NOT NULL, -- 수량
FOREIGN KEY (mem_id) REFERENCES member(mem_id)
);
INSERT INTO member VALUES('TWC', '트와이스', 9, '서울', '02', '11111111', 167, '2015.10.19');
INSERT INTO buy VALUES(NULL, 'BLK', '지갑', NULL, 30, 2);
SELECT FROM member;
SELECT FROM buy;
USE 데이터베이스이름
SELECT문 기본
SELECT, FROM 문
SELECT 열이름 : 특정열만 가져오기
SELECT문의 원칙은 "데이터베이스이름.테이블이름" 으로 써야 한다. USE문을 먼저쓰는 경우 데이터베이스가 선택되서 같은 결과가 나옴
열 이름 별칭 지정하기
열 이름 [별칭] 순서로 쓰면 결과에 별칭으로 나옴
별칭에 공백이 있을때 큰따음표를 써주면 됨
WHERE 없이 조회하면 데이터가 많을때 어려움
기본 WHERE절
SELECT 열이름 FROM 테이블이름 WHRER 조건식
문자형 검색시 작은따음표 사용
숫자형 검색시 그대로 입력
관계연산자 사용
숫자데이터는 관계연산자(작거나 같다)를 사용해서 검색할수 있음
논리연산자
논리연산자(AND, OR)사용해서 조회하기
BETWEEB~AND
숫자 범위가 있는 값을 구하는 경우에 사용
IN
문자형 데이터에서 검색하고싶은 문자형은 OR 이나 IN 을 사용해서 여러개를 검색하면 된다
LIKE
문자열의 일부를 검색할때 사용한다
[%]는 검색하기 원하는 글자외에 아무글자나 와도 괜찮을때 사용한다 EX) [우%] 는 '우' 뒤에 아무 글자나 와도 된다는 의미
[_] 를 사용하면 한 글자와 매치하여 검색한다
서브쿼리
SELECT 안에 다른 SELECT문을 서브쿼리라고 함
ORDER BY
결과가 출력되는 순서를 조절해줌
기본값은 ASC(오름차순) / DESC(내림차순) 필요할경우 써줘야 함
OREDER BY와 WHERE절 순서
WHERE절 다음에 OREDER BY절을 적어야 한다
정렬 기준 여러개일 경우
첫번째 조건으로 정렬한후 두번째 조건으로 정렬함
LIMIT
출력할 개수를 제한함
LIMIT 시작, 개수
(LIMIT 개수 OFFSER 시작 ← 같은 결과가 나옴)
LIMIT 3 = LIMIT 0,3 같은의미 (0번째 부터 3건을 나타내라)
LIMIT 3,2
DISTINCT
검색한 결과에 중복이 있는 데이터는 제거하고 하나만 남겨줌
그룹으로 묶어주는 역할을 함
집계함수와 GROUP BY절을 같이 쓰면서 그룹화를 해줌
집계함수
SUM() 합계
AVG() 평균
MIN() 최소값
MAX() 최대값
COUNT() 행의 개수
COUNT(DISTINCT) 중복을 제거한 행의 개수
GROUP BY로 회원을 묶고 SUM으로 구매개수를 합하기(별칭 사용가능)
회원이 구매한 총 금액 구하기 (가격X수량=총 금액)
회원이 구매한 물품의 평균 개수
연락처가 있는 회원수 개수
COUNT(*)는 모든 행의 개수를 세어줌
COUNT(열이름) 열에서 값이 NULL인것은 제외하고 세어줌
HAVING 절
WHERE 절과 비슷하게 조건을 걸어주지만 집계함수에 대한 조건을 제한하는 절
GROUP BY절 뒤에 작성한다
총 구매액이 1000 이상인 회원을 구할때 WHERE절에 집계함수를 쓰면 오류가 발생한다
GROUP BY절에 집계함수 조건을 적어주고 ORDER BY로 정렬해줌
INSERT문 기본형태
INSERT INTO 테이블 [(열1, 열2, ...)] VALUES (값1, 값2, ...)
데이터 여러개 입력할때 사용
INSERT INTO 테이블이름 VALUES (값1, 값2..), (값3, 값4..), (값5, 값6.. );
열이름은 생략이 가능하고 생략할 경우 VALUES 다음에 적는 값의 순서와 개수는 테이블을 정의 할때 나오는 순서와 개수를 맞춰서 적어야함 -> 아니면 오류가 발생
테이블의 열이 3개면 데이터도 3개 입력하기
값을 입력하지 않을때는 열의 이름을 써줘야 함
열 이름의 순서를 바꾸면 값의 순서도 바꿔서 입력해야 함
열을 정의 할때 1부터 증가 하는 값이 입력된다
AUTO_INCERMENT로 지정하는 열은 꼭 PRIMARY KEY로 지정해야 함
숫자가 몇가지 자동 입력되었는지 확인
LAST_INSERT_ID()
자동 입력되는 숫자를 지정할수 있음
ALTER TABLE 테이블 이름 AUTO_INCREMENT=원하는 숫자
증가되는 숫자를 지정할수 있음
SET @@auto_increment_increment = 숫자
INSERT INTO 테이블이름(열이름1, 열이름2, ...)
SELECT문 ;
기존에 입력되어있는 데이터를 수정할때 사용함
UPDATE 테이블이름
SET 열1=값1, 열2=값2 ...
WHERE 조건;
UPDATE로 하나의 값 바꾸기
UPDATE로 여러개 값 바꾸기
WHERE 없는 UPDATE문
WHRER절을 생략하면 테이블의 모든 값이 변경됨 따라서 주의해서 사용해야 함
데이터 행을 삭제할때는 DELET를 사용함
DELET FROM 테이블이름 WHERE 조건;
'LIMIT 숫자' 로 원하는 건수만 삭제 가능