Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- GaN
- Transformer
- 리뷰
- queueing theory
- 토픽모델링
- 분산 학습
- length of stay
- first pg on this rank that detected no heartbeat of its watchdog.
- multi gpu
- 딥러닝
- nccl 설치
- 의료정보
- pytorch
- 패혈증 관련 급성 호흡곤란 증후군
- 대기행렬
- moirai
- timellm
- NTMs
- ERD
- m/m/s
- timesfm
- operation management
- irregularly sampled time series
- ed boarding
- 불규칙적 샘플링
- Time Series
- pre-trained llm
- nccl 업데이트
- gru-d
- nccl 업그레이드
Archives
- Today
- Total
데알못정을
DB 설계 및 HeidiSQL을 이용한 DB 구현 PART3: SQL 개념 및 예문 본문
728x90
--SQL문에 대한 정리--
SQL 예문에서 등장하는 어트리뷰트들은 아래와 같은 COMPANY 예제와 서점 예제가 각각 사용되었습니다.
SQL
-
SQL은 관계형 데이터베이스 관리 시스템의 데이터를 관리하기 위해 설계된 특수 목적의 프로그래밍 언어
-
자료의 검색과 관리, 데이터베이스 스키마 생성과 수정, 데이터베이스 객체 접근 조정 관리를 위해 고안됨
-
DDL(데이터 명령어): CREATE, DROP, ALTER, TRUNCATE, RENAME
-
DML(데이터 조작어): SELECT, INSERT, DELETE, UPDATE
SQL 데이터 타입(자주사용)
-
INT, BIGINT, SMALLINT, TINYINT, FLOAT, DOUBLE
-
CHAR(n) -> n글자로 고정된 문자
-
VARCHAR(max) -> 문자열의 길이가 변하지만 max를 넘을 수는 없음
-
BINARY(n) ->n개의 010101
-
VARBINARY(max) ->max를 넘지 않는 010101
SQL문: CREATE ,ALTER
"""CREATE: 데이터베이스를 생성하거나 테이블을 생성할 때 사용한다."""
CREATE DATABASE IF NOT EXISTS 데베이름;
CREATE TABLE IF NOT EXISTS 테이블이름;
"""ALTER: 테이블의 columns, constraints, name등을 변경할 때 사용한다."""
ALTER TABLE 테이블이름 ADD exaple_colomn varchar(10);
# 컬럼과 제약조건을 추가 한다.
ALTER TABLE A RENAME B;
# 테이블 이름을 B로 변경한다.
ALTER TABLE A DROP FORIEN KEY business_id;
# 테이블 A의 외래키 business_id를 삭제한다.
ALTER TABLE A DROP column_1
# 테이블 A의 column_1을 삭제한다.
ALTER TABLE A CHANGE col1_name col2_name;
# 테이블 A의 col1_name을 col2_name으로 변경한다.
ARTET TABLE A ALTER col1 DROP DEFAULT;
# 테이블 A의 col1 어트리뷰트 제약조건 DEAULT를 삭제한다.
- 선택사항
"""만약에 열을 삭제할 때 이 열을 참조하는 모든 제약 조건들과 뷰를 제거하고 싶으면
CASCADE사용
"""
ATER TABEL A DROP col1 CASCADE;
"""참조무결성 제약조건을 지키기 위해서 제거되는 열을 참조하는 뷰와
제약조건이 없는 경우만 열을 제거 하고 싶으면 RESTRICT사용
"""
ARTER TABLE A DROP col1 RESTRICT;
SQL문: RENAME, DROP, TRUNCATE
RENAME TABLE A TO B;
"""테이블 A의 이름을 B로 변경한다."""
(= ALTER TABLE A RENAME B;)
RENAME TABLE A TO B, C TO D;
"""테이블 A의 이름을 B로 변경, C의 이름을 D로 변경"""
RENAME TABLE COMPANY.EMPLOY TO ISA_002.EMPLOY;
"""COMPANY 데베의 EMPLOY 테이블을 ISA_002 데베의 EMPLOY 테이블을 새로 만들면서 그대로 옮긴다."""
DROP DATABASE db.name;
"""데이터 베이스를 삭제"""
DROP TABLE table.name;
"""테이블을 삭제"""
""" TRUNCATE: 테이블에서만 사용가능하다."""
TRUNCATE TABLE A;
"""테이블 A의 데이터를 삭제하지만 column이름, 제약조건등의 기본 구조는 남아 있음"""
SQL문 소개: INSERT, DELETE, UPDATE, SELECT
INSERT INTO table_a VALUES (v1,‘v2’,‘v3’);
"""테이블 a에 다음과 같은 값을 순서대로 넣는다.
-> 이 방법은 테이블에 데이터를 한번에 넣는거
"""
INSERT INTO table_a(col1,col2) VALUES (v1,‘v3’);
"""테이블 a의 col1,col2에 값을 순서대로 넣는다.
-> 이 방법은 데이터를 삽입할 열을 선언해서 1대1로 매핑해주는 방법
-> 이 경우에 만약 테이블 a가 col3 까지 있다면 col3 은 defualt 값이나 null 허용 조건이 있어야함
"""
INSERT INTO table_a(col1,col2) VALUES (v1, ‘v2’),(v3,‘v4’);
"""테이블 a에 값을 넣는데 행이 두 개 생김"""
DELETE FROM table_A;
"""테이블 A의 모든 “row“를 지움(=TRUNCATE 와 동일한 결과)
-> WHERE 문을 사용하지 않았기 때문에 모든 데이터가 삭제됨"""
DELETE FROM exmaple_table WHERE col1 = v1;
"""col1의 값이 v1이면 그 “row”을 지움"""
DELETE FROM exaple_table WHERE EXISTS
(SELECT * FROM example_table1 WHERE example_table.col1 = example_table1.col2);
"""example_table의 col1 과 example_table1의 col2가 같으면 example_table의 모든 ‘row’을 지워라"""
UPDATE table_a SET column1 = ‘앙’;
"""테이블 a의 col1의 값을 모두 ‘앙’으로 업데이트한다."""
UPDATE table_a SET col1 = col1*2;
"""테이블 a의 col1을 두배해서 바꿔라."""
UPDATE table_a SET col2 = v2 WHERE col3 > v3;
"""테이블 a의 col3의 원소가 v3보다 큰 경우만 col2의 원소를 v2로 바꿔라."""
""" SELECT 어트리뷰트 이름 FROM 테이블 명 WHERE 조건
주어진 테이블과 해당 조건에서 어트리뷰트를 가져오는 기능
중복된 row가 있을 수 있음
예제: 학생 테이블에서 키가 170 이상인 학생의 이름을 출력하시오.
"""
SELECT 이름
FROM 학생
WHERE 키 >= 170;
기타
"""기타
예)출판사를 모두 보여라. 단, 중복은 제거하여라
"""
SELECT DISTINT publisher
FROM book;
"""예) 주소가 휴스턴, 텍사스가 포함된 고용자들을 모두 가져와라"""
SELECT Fname, Lname
FROM EMPLOY
WHERE address LIKE “%Houston, Texas%”;
"""% : 얘는 문자의 길이를 모를 때 사용"""
"""예) Dnumber = Dno 인, 부서명을 내림차순, 고용자의 Lname을 오름 차순으로 불러와라"""
SELECT Dname, Lname
FROM DEPARTMENT, EMPLOY
WHERE Dnumber = Dno
ORDER BY Dname DESC Lname ASC;
"""그 밖의 합계를 나타내는 SUM(att1), 최댓 값을 나타내는 MAX(att1), 최솟 값을 나타내는 MIN(att1), 평균을 나타내는 AVG(att1), 총계를 나타내는 COUNT(*)가 있다. 또한 COUNT(*)에 대한 제약 조건으로 HAVING 문을 사용하며, 어트리뷰트 별로 정렬을 하고 싶을 땐, GROUB BY문을 사용한다.
SQL문 소개: 뷰(VIEW)
쿼리의 결과를 가상의 테이블로 만드는 것
장점 : 사용자에게 테이블 전체가 아닌 필요한 필드만 보여줄 수 있음/복잡한 쿼리를 단순화해서 사용할 수 있음/쿼리를 재사용할 수 있음
단점 : 한번 정의된 뷰는 변경할 수 없음(ALTER 불가능)/삽입, 삭제, 갱신 작업에 많은 제한 사항을 가짐/자신만의 인덱스를 가질 수 없음
"""
"""뷰 생성 및 삭제"""
CREATE VIEW WORKS_ON2 AS
SELECT Fname, Lname, Pname, Hours
FROM EMPLOY, WORKS_ON, PROJECT
WHERE Ssn = Essn AND Pno = Pnumber;
DROP VIEW WORKS_ON1;
[1] SQL 정의 https://ko.wikipedia.org/wiki/SQL
[2] 박인범 교수, 정보시스템 분석 및 설계 강의 교안
728x90
'Research' 카테고리의 다른 글
[CNN/Transfer learning] 타코, 브리또 사진 분류하기 (1) | 2022.09.30 |
---|---|
DB 설계 및 HeidiSQL을 이용한 DB 구현 PART4: DB 제작 하기 (1) | 2022.09.30 |
DB 설계 및 HeidiSQL을 이용한 DB 구현 PART2: ERD 개념 (0) | 2022.09.30 |
DB 설계 및 HeidiSQL을 이용한 DB 구현 PART1: DB 기본 개념 (1) | 2022.09.30 |
Ridge,Lasso regularization에 대하여 (0) | 2022.09.30 |
Comments