ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 백엔드 지식 3_ 2 복습 ( SQL 문법_DML DDL DCL), SQL 문법 심화 ( JOIN, GROUP BY, VIEW )
    1학년/벡엔드 공부( with 콘솔로그 동아리 ) 2022. 7. 12. 15:05

    복습과 내용 추가

    테이블 구조 출력

    : \d ‘테이블 명

    테이블 목록 출력

    : \dt’ 테이블 명’

    SQL문법 ?

    DML

    : data manipulate language . 데이터 조작 관리 언어

    SQL의 문법 중 하나이다

    네가지로 나누면 INSERT , UPDATE , DELETE , SELECT가 있다

    Insert > INSERT INTO 테이블명( 컬럼1, 컬럼2, 컬럼3, …) VALUES ( Value1, Value2, …);

    INSERT INTO Reservation(ID, Name, ReserveDate, RoomNum)
    Values(5, '이순신', '2016-02-16',1108)
    //새로운 레코드 추가
    //NULL값도 가능 . 안 넣으면 
    

    Update >UPDATE 테이블이름 SET 속성이름 = value1 [WHERE 조건];

    UPDATE Reservation
    SET RoomNum = 2022
    WHERE Name = '홍길동';
    // WHERE을 안 적어주면 모든 레코드의 값이 바뀐다
    

    Delete > DELETE FROM 테이블이름 [WHERE 조건];

    DELETE FROM Reservation; 
    //여기까지만 하면 모든 데이터 삭제
    WHERE Name = '홍길동';
    

    Select > SELECT 필드이름 FROM 테이블이름 [WHERE 조건];

    SELECT* FROM reservation
    // * 하면 모든 해당 테이블의 필드 선택 
    WHERE Name = '홍길동';
    //or
    WHERE ID <= 3 AND ReserveDate > '2022-07-07'
    
    SELECT DISTINCT Name
    FROM Reservation;
    // reservation 테이블에서 name 필드를 선택. 중복된 값은 한번만 선택 
    
    SELECT *from reservation WHERE name LIKE '홍길동%';
    //홍길동으로 시작하는 데이터 검색
    
    SELECT *from reservation WHERE name LIKE '%홍길동%';
    //홍길동이 들어간 데이터 검색
    
    SELECT *from reservation WHERE name LIKE '%홍길동';
    //홍길동으로 끝나는 데이터 검색        
    
       > ORDER BY  오름차순 정의
    
    SELECT * FROM Reservation
    ORDER BY ReserveDate; 
    //하면 날짜가 오름차순정의
    ORDER BY ReserveDate DESC;
    //하면 내림차순 정의
    
        > AS 별칭
    
    SELECT ReserveData, CONCAT(RoomNUM, " : " , Name) AS ReserveInfo
    FROM reservation;
    //하면 reserveData 나오고 룸넘버와이름이 :로 구분되서 같이 나오는데 그걸 reserveinfo라고 
    부른다
    
     >replace
    
    SELECT NAME, REPLACE(Name,'홍길동','서지혜')AS REP
    	FROM reservation;
    

    DDL

    : data definition language . 데이터 정의 언어

    SQL의 문법 중 하나

    네가지로 나누면 CREATE DROP ALTER TRUNCATE

    DCL

    : data control language . 데이터 제어 언어

    네가지로 나누면 grant revoke commit rollback

    SQL 심화에는 무엇이 존재하나 ?

    RDBMS

    다이어그램 그리기

    논리적 데이터 모델링에서 테이블 구성 까지

    테이블 만들어 보기

    관계를 이용한 join 연산

    TRIGGER TRANSACTION

    CLI

    : command line interface

    WMI

    : windows Management Instrumentaion

    CIM

    : computer intergrated manufacturing

    DBMS

    : data base management system

    SQL

    : structed query language

    복습끝!

    SQL

    1. join?
    2. Group By
    3. View

    Join

    : 두 개 이상 테이블에서 테이블 사이 연관된 col을 바탕으로 rows를 결합하는 명령어

    Inner Join / Left Join / Right Join 으로 나뉜다

    inner join

    : ON 절과 함께 사용되며 ON 절의 조건을 만족하는 데이터만을 가져온다

    첫번째 테이블 이름
    INNER JOIN 두번째 테이블 이름
    ON 조건
    
    

    표준SQL과는 달리 MySQL에서는 JOIN INNERJOIN CROSSJOIN이 모두 같은 의미로 사용됨

    SELECT* FROM Reservation JOIN Customer;
    ON Reservation.Name = Customer.Name;
    //위에랑 아래랑 똑같은 문법임
    SELECT * FROM Reservation AS r, Cusomer AS c
    WHERE r.Name= c.Name;
    

    left join

    : 첫 번째 테이블에 두 번째 테이블을 조합 하는 거

    첫번째 테이블이름
    LEFT JOIN 두번째 테이블 이름
    ON 조건
    
    SELECT*
    FROM Reservation LEFT JOIN Customer
    ON Reservation.Name = Customer.Name
    WHERE ReserveDate > '2022-07-07';
    

    right join

    : left join 과 같은 맥락

    Group By

    : 같은 값을 가진 행끼리 하나의 그룹으로 만드는 명령어

    그룹화

    SELECT 컬럼 FROM 테이블 WHERE 조건식 GROUP BY 그룹화할 컬럼
    
    SELECT info.id, s.account, m.manager_name
    FROM sellers_informations as info
    INNER JOIN sellers AS s ON info.seller_id = s.id
    LEFT JOIN managers AS m ON info.seller_id = m.seller.id
    

    그룹바이를 사용하면 하나의 행으로 나타낼 수 있다

    SELECT info.id, s.account, m.manager_name
    FROM sellers_informations as info
    INNER JOIN sellers AS s ON info.seller_id = s.id
    LEFT JOIN managers AS m ON info.seller_id = m.seller.id
    GROUP BY info.id
    

    View

    : 하나 이상의 기본 테이블이나 다른 뷰를 이용하여 생성되는 가상 테이블

    실제로 데이터를 저장하고 있지는 않다. 볼 수 있다는 소리지

    CREATE VIEW 뷰이름 AS
    SELECT 필드이름1, 필드이름1, ...
    FROM 테이블 이름
    WHERE 조건
    
    CREATE VIEW MyView AS
    SELECT Name, ReserveDate, ReserveDate - Curdate() AS Dday
    FROM Reservation;
    
    728x90

    댓글

Designed by Tistory.
티스토리 친구하기