-
백엔드 지식 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
- join?
- Group By
- 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'1학년 > 벡엔드 공부( with 콘솔로그 동아리 )' 카테고리의 다른 글
4주차_framework, 종류, Django,Django를 통한 웹 프로그래밍 입문 (0) 2022.08.02 백엔드 지식 3 _ RDBMS, PK, FK,ERD,다이어그램,개념적모델링,논리적모델링, 물리적모델링 (0) 2022.07.12 3주차_RDBMS에 관하여 (0) 2022.07.05 백엔드 지식 2_ 리눅스, 우분투, bash shell,vi, SQL 간단,DDL,DCL,스키마_ 파워쉘에서 데이터 테이블 만들고 관리하기 (0) 2022.07.04 백엔드 지식 1_파워셸,CLI,WMI,DBMS,.netframework, CRUD간단 정리 (0) 2022.07.04