학사 나부랭이
SQL - Opening 본문
Structure Query Language
DB(데이터베이스)와 대화(조작)하기위해 디자인된 언어이다.
엑셀과 비슷하게 생겼는데 엑셀의 시트 = (SQL)DB 테이블
sheet has row(행), column(열) & table has row, column too.
Data Manupulation Language 데이터 조작 언어, DML 테이블에 데이터 검색, 삽입, 수정, 삭제하는 명령어 |
SELECT | 테이블에 특정 값 검색 |
INSERT | 테이블에 특정 값 삽입 (등록) | |
UPDATE | 테이블의 특정 값 수정 | |
DELETE | 테이블의 특정 값 삭제 | |
Data Definition Language 데이터 정의 언어, DDL 테이블이나 데이터 구조를 생성하는 명령어 |
CREATE | 새로운 테이블, DB 생성 |
ALTER | 테이블 내용 수정 | |
DROP | 테이블, DB 삭제 | |
RENAME | 테이블 이름 변경 (DB는 불가) | |
TRUNCATE | 데이터 삭제 | |
Data Control Language 데이터 제어어, DCL 데이터의 사용 권한을 관리하는 명령어 |
GRANT | 사용자에게 권한을 부여 |
REVOKE | GRANT 명령어로 적용한 권한 해제 | |
Transaction Control Language 트랜잭션 제어어, TCL DML에 의해 수정된 결과를 작업 단위(트랜잭션) 별로 제어하는 명령어 |
COMMIT | 작업 결과를 물리 디스크에 저장, 작업이 정상적으로 완료되었다고 관리자에게 통지 |
ROLLBACK | 작업 내용 복구 (INSERT, UPDATE, DELETE 등의 작업 내용 취소) |
비슷하지만 다른 것들
DELETE, TRUNCATE, DROP
DELETE: 데이터를 삭제하고 공간은 재사용하기 위해 남음
TRUNCATE: 데이터 공간까지 제거
DROP: 테이블 또는 DB 모두 제거
In this table, has 4 columns as features and 5 rows as Users
간단한 select 명령어
SELECT email FROM students;
여기서 그냥 영어랑 같다고 느낄 수 있는데 쿼리용 언어라서 그렇다.
SELECT email FROM students WHERE age > 21;
students에서 21살 이상인 원소들의 email을 선택
진짜 영어랑 똑같아서 이해하기 쉽쥬?
SELECT age
FROM students
WHERE email
LIKE "%naver.com";
students에서 이메일이 naver.com인 경우의 나이 선택
%: 특정 값을 찾으려고 할 때 사용.
DELETE FROM students WHERE id=2;
students 중 id가 2인 원소를 삭제
SELECT email FROM students WHERE age BETWEEN 15 AND 28
students 중 age가 15~28인 원소의 email을 선택
DB에는 두 가지 종류로 나뉜다.
Relational (SQL)
mysql, postgresql, sqlite
Non-Relational (Non-SQL)
mongoDB, DynamoDB, CouchDB
ORM
파이썬 코드 등의 코드를 가져와서 SQL코드로 바꿔주는 친구. 그래서 SQL을 안 하게 된다. 문제는 너무 ORM에 의존하면 뭔가 안 될 때, 더 빠른 작업이 필요할 때 대처 X
파이썬 - 장고 ORM
라라벨 - eloquent ORM
nodeJS - Sequelize || type ORM
'自習' 카테고리의 다른 글
IPC(Inter-Process Communication) (0) | 2021.03.30 |
---|---|
How to Crack - Hash (0) | 2021.03.27 |