[SQL] 테이블 생성 (CREATE) CREATE TABLE CREATE TABLE 테이블 명( 컬럼명 데이터타입 조건, 컬럼명 데이터타입 조건, . . ); 데이터 타입 데이터 타입 의미 CHAR 특정 문자열의 개수를 지정 VARCHAR 가변길이의 문자열을 저장할 때 사용 최대 길이를 지정 (ORACLE x) VARCHAR2 가변길이의 문자열을 저장할 때 사용 최대 길이를 지정 (MySQL, MariaDB x) NUMBER 숫자에 사용되는 데이터 타입, 소수점 저장 가능 (MySQL에선 INT) DECIMAL 숫자에 사용되는 데이터 타입 소수점 저장 가능 DATE 날짜에 사용되는 데이터타입 제약 조건 제약 조건 의미 NOT NULL 값이 꼭 입력이 되어야 할 때 사용 NULL 허용 x UNIQUE 해..
[SQL] 테이블 변경 (ALTER) ALTER 기존에 생성되어있는 테이블에 컬럼을 추가/변경 하는 등 테이블 변경 사항을 적용할 때 사용하는 구문 컬럼 추가 ALTER TABLE table_name ADD COLUMN column_name varchar(32) NOT NULL; 컬럼 변경 ALTER TABLE table_name MODIFY COLUMN column_name varchar(16) NULL; 컬럼 이름 변경 ALTER TABLE table_name CHANGE COLUMN column_name new_column_name varchar(16) NULL; 컬럼 삭제 ALTER TABLE table_name DROP COLUMN column_name; 테이블 이름 변경 ALTER TABLE ..
1. 데이터베이스 별 용량 조사 SELECT table_schema AS 'DatabaseName', ROUND(SUM(data_length+index_length)/1024/1024, 1) AS 'Size(MB)' FROM information_schema.tables GROUP BY table_schema ORDER BY 2 DESC; 2. 테이블 별 용량 조사 SELECT table_name AS 'TableName', ROUND(SUM(data_length+index_length)/(1024*1024), 2) AS 'All(MB)', ROUND(data_length/(1024*1024), 2) AS 'Data(MB)', ROUND(index_length/(1024*1024), 2) AS 'Inde..
파티션 (Partition) 파티션이란 논리적인 하나의 테이블이나 인덱스를 여러 개의 파티션으로 분할 하는 기능을 말함 크기가 큰 테이블에 쿼리를 수행 할 경우 DB에 상당한 부하가 걸리기때문에, 파티션을 통해 특정 데이터에 대한 접근 시간을 줄이고, 쿼리의 실행 속도를 향상 시키는 데 도움을 줄 수 있음 각 파티션 별로 독립적으로 백업하고 복구가 가능하지만, 테이블 간 Join이 일어날 경우 비용이 증가할 수 있음 파티셔닝 적용 ✔ MySQL 기준 1. 파티셔닝을 적용 할 테이블을 생성할 때, 파티션을 지원하도록 설정 CREATE TABLE 테이블명 ( 컬럼1 데이터_타입, 컬럼2 데이터_타입, ... ) PARTITION BY {RANGE|LIST|HASH} (파티션_키); 파티션 키는 파티션을 나눌..
[SQL] 프로시저와 함수 프로시저 (procedure) : 일련의 SQL 문으로 구성된 코드 블록 코드 블록은 데이터 베이스에 저장되며, 필요할 때 호출하여 실행할 수 있음 프로시저는 주로 반복적인 작업을 수행하거나 복잡한 데이터 조작 및 처리를 위해 사용됨 함수(Function) 처럼 결과값을 Return 받을 수 없음, out 매개변수를 사용하여 값을 전달 장점 DB 서버에서 실행되기 때문에, 네트워크 비용을 줄이고 데이터 베이스와 상호작용을 최소화하여 성능을 향상 시킬 수 있음 하나의 요청으로 여러 SQL문을 실행할 수 있음 프로시저는 데이터 베이스의 인증된 사용자만 호출할 수 있으므로 보안 측면에서 이점 단점 디버깅 및 유지보수가 어려움 문자나 숫자 연산에 프로시저를 사용한다면 성능이 낮아질 수..
MySQL에서 데이터 타입을 변환하는 방법은 크게 두 가지가 있음 1. CAST CAST 함수는 데이터 타입을 변환할 때 사용됨 CAST (변환 할 값 AS 변환 할 데이터 타입) SELECT CAST('123' AS INTEGER); --문자열 데이터를 숫자형 데이터로 변환 2. CONVERT CONVERT 함수도 데이터 타입을 변환할 때 사용됨 다양한 데이터 타입 변환 형식을 제공 CONVERT(변환 할 데이터 타입(길이), 변환 할 값, 형식) SELECT CONVERT(VARCHAR(10), GETDATE(), 101); --MM/DD/YYYY 형식으로 표시됨 CONVERT 함수에서 사용할 수 있는 형식 0 or 100 mon dd yyyy hh:miAM/PM (예: Jan 1 2023 12:00..
[SQL] View View 데이터 베이스에서 사용되는 가상 테이블 View는 실제 데이터를 저장하지 않고 데이터베이스의 다른 테이블에서 가져온 쿼리를 기반으로 만들어짐 View의 장점 1. 데이터를 요약, 필터링, 조인 또는 계산하는데에 사용 가능 2. View를 사용하면 복잡한 쿼리를 단순화하고, 재사용 가능한 코드를 생성하여 작업을 간단하게 할 수 있음 3. 특정 사용자 또는 그룹에게 보여줄 수 있는 데이터를 제한하고 보안성을 향상시키는데 사용 4. View를 사용하여 복잡한 쿼리의 실행 속도를 높임 View 생성 ❗ MySQL 기준 CREATE VIEW 문을 사용하여 만들어 짐 CREATE VIEW 문은 새로운 테이블을 만들지 않고 쿼리 결과를 View에 저장함 예제 테이블 CREATE TABLE..
데이터 그룹화 데이터 그룹화 : GROUP BY 특정 컬럼을 그룹화하여 데이터를 조회 SELECT 컬럼명, COUNT(*) FROM 테이블명 GROUP BY 기준 컬럼명; SUM, AVG, COUNT, MAX, MIN을 사용하여 활용 가능 USER ID가 같은 열에서 컬럼의 내용을 다 더한 값을 출력 SELECT user_id, SUM(컬럼명) FROM book GROUP BY user_id; USER ID가 같은 열의 컬럼의 평균을 출력 SELECT user_id, AVG(컬럼명) FROM book GROUP BY user_id; USER ID가 같은 열 중에서 해당 컬럼의 가장 큰 값을 출력 SELECT user_id, MIN(컬럼명) FROM shopdb GROUP BY user_id; USER I..
데이터 수정 테이블에 데이터 삽입하기 : INSERT 관계형 데이터베이스의 테이블에 값을 저장하는 명령어 컬럼을 명시하지 않으면 순서대로 값을 삽입 INSERT INTO 테이블명(컬럼1, 컬럼2, 컬럼3) VALUES('데이터1','데이터2','데이터3'); 테이블의 데이터 수정하기 : UPDATE 관계형 데이터베이스의 테이블에서 이미 저장된 값을 수정하는 명령어 UPDATE book SET title = '어린왕자' WHERE title = '돈키호테'; 테이블의 데이터 삭제하기 : DELETE 관계형 데이터베이스의 테이블에서 이미 저장된 값을 수정하는 명령어 DELETE FROM book WHERE title = '돈키호테'; 데이터 제어 ✔ 데이터가 몇 개인지 궁금할 때? 데이터 개수 세기 : CO..
테이블에서 데이터 검색하기 : SELECT 테이블에 있는 데이터를 조회하는 명령어 ex) 책 정보를 저장하는 book 테이블에 저장된 모든 데이터 검색 SELECT * FROM book; ✔ 만약 중복을 제거하고 조회를 하고 싶다면? 중복제거 : DISTINCT 뒤에 나오는 컬럼의 중복을 제거하고 보여줌 뒤에 2개 이상의 컬럼을 적으면, 한 쪽 컬럼에 중복이 있어도 다른 쪽 컬럼의 값이 다르면 다르게 취급 SELECT DISTINCT title, author FROM book; ✔ 검색 조건을 추가하고 싶다면? 조건을 추가해서 검색 : WHERE 검색하고자 하는 데이터의 조건을 설정할 수 있는 명령 SELECT * FROM book WHERE title = '돈키호테'; 🔎 여러 연산자를 사용해서 조건을..
데이터베이스? : 여러 사람이 공유해 사용할 목적으로 통합하여 관리되는 데이터의 모음 SQL? : 데이터 베이스에 접근하고 조작하기 위한 표준 언어 데이터 베이스의 종류 관계형 데이터베이스 하나 이상의 테이블로 이루어지며, 서로 연결된 데이터를 가지고 있음 관계형 데이터베이스는 SQL을 통해 제어가 가능함 비관계형 데이터베이스 기존 관계형 데이터베이스의 한계를 뛰어넘기 위해 만들어진 새로운 형태의 데이터베이스 분산 환경에서의 데이터 처리를 더욱 빠르게 하기 위해 개발됨 데이터 베이스 스키마 스키마(Schema) 스키마 구조는 데이터베이스를 바라보는 관점으로 각각을 분리한 것 분리함으로써 얻는 이점은 독립성과 중복의 배제 스키마 종류 외부 스키마 : 각 사용자 관점 개념 스키마 : 전체 사용자 관점 내부 ..