SQL
-
SQL) SubquerySQL 2023. 3. 22. 16:18
Subquery - 메인쿼리가 서브쿼리를 포함하는 종속적 관계 - 서브쿼리는 메인쿼리의 칼럼 사용 가능(메인쿼리는 서브쿼리의 칼럼 사용 불가) - 서브쿼리는 괄호를 묶어서 사용 - 단일 행, 복수 행 비교 연산자와 함께 사용 가능 - 서브쿼리 내에서는 orber by 사용 불가 subquery 종류 - 스칼라 서브쿼리(scalar subquery) - select절에 사용 - 인라인 뷰(inline view) - from 절에 사용 - 중첩 서브쿼리 (nested subquery) - where절에 사용 스칼라 서브쿼리 SELECT column1, (SELECT column2 FROM table2 WHERE condition) FROM table1 WHERE condition; 🔔 서울은평경찰서의 강도 ..
-
SQL) Scalar FunctionsSQL 2023. 3. 21. 05:35
Scalar Function: 입력값을 기준으로 단일 값을 반환하는 함수 UCASE: 대문자 반환 SELECT UCASE(string); LCASE: 소문자 반환 SELECT LCASE(string); MID: 문자열 부분을 반환 SELECT MID(string, start_position, length); start_position: 반환 시작 위치(1부터 시작) length: 반환할 문자열 길이 LENGTH: 문자열 길이 반환 SELECT LENGTH(string); ROUND: 반올림 SELECT ROUND(number, decimals_place); number: 반올림할 대상 decimals: 반올림할 소수점 위치(위치 지정하지 않으면 정수로 반환/ 첫번째 소수점 = 0, 1의 자리 = -1) ..
-
SQL) 집계함수(Aggregate Functions)SQL 2023. 3. 21. 04:48
COUNT SELECT COUNT(column) FROM tablename WHERE condition; SUM SELECT SUM(column) FROM tablename WHERE condition; AVG SELECT AVG(column) FROM tablename WHERE condition; MIN, MAX SELECT MIN|MAX(column) FROM tablename WHERE condition; GROUP BY SELECT column1, column2, ... FROM table WHERE condition GROUP BY column1, column2, ... ORDER BY column1, column2, ...; 🔔 crime_status에서 경찰서별로 그룹화하여 경찰서 이름을..
-
SQL) PRIMARY KEY, FOREIGN KEYSQL 2023. 3. 21. 01:29
PRIMARY KEY (기본키) - 테이블의 각 레코드 식별 - 중복되지 않은 고유값 포함 - NULL 값을 포함할 수 없음 - 테이블당 하나의 기본키 가짐 CREATE TABLE tablename ( column1 datatype NOT NULL, column2 datatype NOT NULL, ... (CONSTRAINT constraint_name) PRIMARY KEY (column1, column2, ...) ); ALTER TABLE tablename ADD (CONSTRAINT) PRIMARY KEY(column1, column2, ...) alter table tablename drop primary key; FOREIGN KEY (외래키) 한 테이블을 다른 테이블과 연결해주는 역할 참조되..
-
SQL) Python with MySQL/CSVSQL 2023. 3. 20. 22:06
설치 pip install mysql-connector-python MySQL에 접속하기 위한 코드 import mysql.connector local = mysql.connector.connect( host = "hostname", user = "username", password = "password" ) ASW RDS 연결 remote = mysql.connector.connect( host = "end point", port = port, user = "user name", password = "password" # 특정 데이터베이스에 접속하고 싶을 때는 + database = "dbname" ) Close Database local.close() remote.close() 쿼리 실행 import..
-
SQL) RDS 접속, SQL FILE 실행, 백업SQL 2023. 3. 17. 03:47
MySQL RDS 접속 % mysql -h endpoint -P PORT -u username -p SQL File 실행 🔔 로그인 이후 1. 파일이 있는 폴더로 이동하여 데이터베이스 접속 cd sql_ws mysql -u username -p dbname 2. SQL FILE 실행 source test01.sql (source 대신 \.도 가능) 🔔 외부에서 바로 실행 mysql -u username -p databasename backup.sql 테이블 백업 %mysqldump -u username -p dbname tab..
-
SQL) CONCAT, ALIAS, DISTINCT, LIMITSQL 2023. 3. 16. 04:01
CONCAT : 여러 문자열을 하나로 합치거나 연결 SELECT CONCAT('string1, 'string2', ...); ALIAS : 칼럼이나 테이블 이름에 별칭 생성 SELECT column as alias FROM tablename; SELECT column1, column2, ... FROM tablename as alias; 🔔 name은 이름으로, agency는 소속사로 별칭을 만들어서 검색 SELECT name as '이름', agency as '소속사' from celeb; 🔔 name과 job_title을 합쳐서 profile이라는 별칭을 만들어서 검색 SELECT CONCAT(name, ' : ', job_title) as profile FROM celeb; 🔔 snl_show에 출..
-
SQL) unionSQL 2023. 3. 16. 02:41
UNION: 중복된 값을 제거하여 알려줌 UNION ALL: 중복된 값도 모두 보여줌 SELECT column1, column2, ... from tableA UNION | UNION ALL SELECT column1, column2, ... from tableB; 💥가져오는 컬럼의 수가 같아야 함 JOIN : 두 개 이상의 테이블 결합 - INNER JOIN SELECT column1, column2, ... FROM tableA INNER JOIN tableB ON tableA.column = tableB.column WHERE condition; 🔔 snl_show 에 호스트로 출연한 celeb을 기준으로 celeb 테이블과 snl_show 테이블을 inner join SELECT celeb.id,..