하고재비

데이터베이스 와 SQL 본문

Server

데이터베이스 와 SQL

DeadDE 2017. 9. 19. 20:00

1. 데이터베이스 :  조직에 필요한 정보를 얻기위해 논리적으로 연관된 데이터를 모아 구조적으로 통합해 놓은것.


2. 데이터베이스 개념 : 

1. 통합된 데이터 : 데이터 통합. 데이터의 중복최소화 -> 데이터 불일치 현상 없앰

2. 저장된 데이터 : 컴퓨터 저장장치에 저장된 데이터

3. 운영 데이터 : 조직의 목적을 위한 데이터

4. 공용 데이터 : 한 사람의 업무를위한 데이터가 아닌 공동사용데이터

'운영데이터를 통합하여 저장하며 공용으로 사용됨.'


3.데이터베이스의 특징 : 

실시간 접근성, 계속적인 변화, 동시공유, 내용에 따른 참조


4. 데이터베이스 언어

SQL

DDL - Database Definition Language         - 데이터 정의어 : 테이블이나 관계의 구조를 생성하는데 사용 create, alter, drop 등

DML - Database Manipulation Language    - 데이터 조작어 : 데이터 검색, 삽입, 수정, 삭제등 사용 select insert delete update등

DCL - Database Control Language            - 데이터 제어어 : 데이터의 사용권한을 관리하는데 사용 grant, revoke등


4-1 select 문의 구성요소


 SELECT         +   속성(들)

            FROM           +   테이블

 WHERE         +   검색조건

 GROUP BY     +  속성이름

 HAVING        +  검색조건

 ORDER BY     +  속성이름


1. SELECT / FROM 어디에 어떤게 있나?


SELECT * FROM TABLE_NAME;

SELECT NAME FROM DEPT;


2. WHERE            조건에 충족하는 데이터가 어떤건가?


SELECT * 

FROM TABLE_NAME

WHERE @@@;


SELECT NAME

FROM THING

WHERE PRICE <2000;    -- THING 테이블의 자료들중 PRICE가 2000이하인것들의 NAME 은?


SELECT NAME

FROM THING

WHERE PRICE BETWEEN 1000 AND 2000;    -- THING 테이블의 자료들중 PRICE가 1000이상 2000이하인것들의 NAME 은?


SELECT NAME

FROM THING

WHERE PRICE >= 1000 AND PRICE <= 2000;    -- THING 테이블의 자료들중 PRICE가 1000이상 2000이하인것들의 NAME 은?


SELECT NAME

FROM THING

WHERE MADEIN IN('KOREA', 'USA');    -- THING 테이블의 자료들중 MADEIN 이  'KOREA' 혹은 'USA'인 것들의 NAME은?


SELECT NAME

FROM THING

WHERE MADEIN NOT IN('KOREA', 'USA');    -- THING 테이블의 자료들중 MADEIN 이  'KOREA' 혹은 'USA'가 아닌것들의                                                             NAME은?    


SELECT NAME

FROM THING

WHERE MADEIN LIKE 'KOREA';    -- THING 테이블의 자료들중 MADEIN 이  'KOREA'인 NAME은?


SELECT NAME

FROM THING

WHERE MADEIN LIKE '%KOREA%';    -- THING 테이블의자료들중 MADEIN 에  'KOREA' 가 포함된 MADEIN들의 NAME은?


SELECT NAME

FROM THING

WHERE MADEIN LIKE 'KOREA' AND PRICE > 10000;    -- THING 테이블의 자료들중 MADEIN 이  'KOREA'이고 PRICE 가                                                                           10000 이상인 것은?


SELECT NAME

FROM THING

WHERE MADEIN = 'KOREA' OR MADEIN = 'UAS';    -- THING 테이블의 자료들중 MADEIN 'KOREA' 혹은 'USA' 인것들의                                                                         NAME은


3. ORDER BY  **순으로 검색


SELECT * 

FROM TABLE_NAME

ORDER BY @@@


SELECT NAME

FROM THING

ORDER BY PRICE;    -- THING 테이블의 자료들중 NAME을 PRICE 순으로 검색


SELECT NAME

FROM THING

ORDER BY PRICE, MADEIN;    -- THING 테이블의 자료들중 NAME을 PRICE 순으로 검색, 결과가 같으면 MADEIN 순으로 검색


SELECT NAME

FROM THING

ORDER BY PRICE DEAS, MADEIN ASC;   

 -- THING 테이블의 자료들중 NAME을 PRICE의 내림차순 검색, 결과가 같으면 MADEIN 오름차순으로 검색



4. 집계함수


SELECT SUM(*) 

FROM TABLE_NAME



SELECT SUM(SALEPRICE)

FROM THING;                 --  THING 테이블의 SALEPRICE의 총합


SELECT SUM(SALEPRICE) AS 총매출

FROM THING;                 --  '총매출' 이라는 열 이름에 THING 테이블의 SALEPRICE의 총합을 출력


SELECT SUM(SALEPRICE) AS 총매출

FROM THING

WHERE MADEIN LIKE 'KOREA';    -- '총매출' 이라는 열 이름에  THING 테이블의  MADEIN 이  'KOREA'인 SALEPRICE 의 총합

을 출력


SELECT SUM(SALEPRICE) AS TOTAL,

AVG(SALEPRICE) AS AVERAGE,

MIN(SALEPRICE) AS MINIMUM,

MAX(SALEPRICE) AS MAXIMUM

FROM THING;             --  THING 테이블의 SALEPRICE의 총합, 평균, 최저, 최대를 출력


SELECT COUNT(*)

FROM THING;             --  THING 테이블의 데이터 등록 건수를 출력


5. GROUP BY


SELECT NAME

FROM THING

GROUP BY PRICE;             --  THING 테이블의 NAME을 MADEIN별로 검색


6. HAVING


SELECT NAME

FROM THING

GROUP BY PRICE

HAVING COUNT(*) >= 2;             --  THING 테이블의 2건이상 데이터 검색이 가능한 NAME을 MADEIN별로 검색


7. JOIN  -- 테이블과 테이블을 조건없이 연결할때. 


SELECT * 

FROM THING, THAT;



SELECT * 

FROM THING, THAT

WHERE THING.NAME = THAT.NAME;  -- THING THAT의 데이터중 NAME에 관한 데이터를 모두 검색.


SELECT * 

FROM THING, THAT

WHERE THING.NAME = THAT.NAME

ORDER BY TING.PRICE;    --   THING THAT의 NAME에 대한 데이터를 THING의 PRICE순으로 검색


SELECT NAME,SALEPRICE

FROM THING,THAT

WHERE 



Comments