ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • SQL, JOIN
    정보처리기사 2022. 10. 12. 16:16

    SQL 정의어(DDL)

     

    Create Table : 테이블 생성  

    CREATE TABLE dbo.성적 ( 일련번호 int NOT NULL, 이름 varchar(6) NOT NULL, 점수 int NOT NULL )

    Create View : 뷰 생성

    CREATE VIEW [뷰명] AS SELECT [컬럼명] FROM [테이블명] WHERE [조건절]

    인덱스 만드는 방법

    CREATE INDEX idx_name ON student(name asc)

     

    ALTER : 테이블 수정

    ALTER TABLE table_name ADD COLUMN ex_column varchar(32) NOT NULL;
    
    ALTER TABLE 학생 ADD 주소 VARCHAR(20) --학생 테이블에 주소 컬럼을 추가
    
    ALTER TABLE 학생 DROP 주소 -- 주소 컬럼 제거
    
    ALTER TABLE table_name1 RENAME table_name2;

    SQL 제어어(DCL)

     

    GRANT ~ ON ~ TO : 권한 부여

    GRANT SELECT, DELECT ON STUDENT TO userA

    REVOKE ~ ON ~ FROM : 권한 삭제

    REVOKE SELECT, DELECT ON STUDENT FROM userA

    COMMIT : 트랜잭션 수행 중 연산을 실제 DB에 반영

     

    ROLLBACK : 트랜잭션 수행 중, 연산을 취소하는 명령


    SQL 조작어(DML)

     

    INSERT INTO ~: 행 삽입

    INSERT INTO TABLE VALUES(a, b, c)

    UPDATE ~ SET ~ : 행 갱신

    UPDATE TABLE SET COLUMN = 'a' WHERE 조건

    DELETE FROM ~ : 행 삭제

    DELETE FROM TABLE WHERE 조건
    
    DELECT FROM 학생 WHERE 이름 = '민수'

    SELECT ~ FROM ~ : 행 검색

     

    SELECT * FROM TABLE1 T1 JOIN TABLE2 ON T1.A = T2.B
    
    SELECT 학과, COUNT(*) AS ‘학과별 튜플수’ FROM 학생 GROUP BY 학과 HAVING COUNT(*) > 1
    
    SELECT 과목이름, MIN(점수) AS 최소점수, MAX(점수) AS 최대점수 FROM 성적
           GROUP BY 과목이름 HAVING AVG(점수) >= 90 ORDER BY 점수 DESC
    
    SELECT * FROM TABLE WHERE 조건 == 조건 AND 조건 == 조건
           GROUP BY 과목 HAVING (group by조건) ORDER BY DESC

    SQL JOIN

    INNER JOIN : 두 테이블 사이의 교집합 결과를 출력

    SELECT column_name(s)
    FROM table1
    INNER JOIN table2
    ON table1.column_name = table2.column_name;

    LEFT JOIN : 조건을 만족하는 모든 왼쪽테이블 값을 출력

    SELECT column_name(s)
    FROM table1
    LEFT JOIN table2
    ON table1.column_name = table2.column_name;

    RIGHT JOIN : 조건을 만족하는 모든 오른쪽 테이블 값을 출력

    SELECT Orders.OrderID, Employees.LastName, Employees.FirstName
    FROM Orders
    RIGHT JOIN Employees ON Orders.EmployeeID = Employees.EmployeeID
    ORDER BY Orders.OrderID;

    CROSS JOIN, FULL OUTER JOIN : 두 테이블의 행을 곱해 모든 값을 출력

    해당하는 열(Cardinality)의 값이 없을 경우 NULL을 출력한다.

    SELECT Customers.CustomerName, Orders.OrderID
    FROM Customers
    FULL OUTER JOIN Orders ON Customers.CustomerID=Orders.CustomerID
    ORDER BY Customers.CustomerName;

    참고 : https://www.w3schools.com/

    반응형

    '정보처리기사' 카테고리의 다른 글

    소프트웨어 생명주기 V모델  (0) 2022.10.13
    결합도/응집도  (0) 2022.10.13
    객체지향 설계 원칙(SOLID)  (0) 2022.10.13
    관계대수, 관계해석  (0) 2022.10.12
    DB 개념  (0) 2022.10.12

    댓글

Designed by Tistory.