728x90
반응형

데이터베이스/SQL 14

[MySQL] 소수점 관리(ROUND, TRUNCATE, FORMAT)

0) 기본 SELECT AVG(DAILY_FEE) FROM CAR_RENTAL_COMPANY_CAR WHERE CAR_TYPE LIKE 'SUV' >> 93727.2727 1) ROUND(숫자, 소수점 개수) - 소수점 반올림 소수점 자리를 0개로 설정했을 때 (=소수 첫 번째 자리에서 반올림 했을 때 (0으로 설정 또는 생략가능)) SELECT ROUND(AVG(DAILY_FEE)) FROM CAR_RENTAL_COMPANY_CAR WHERE CAR_TYPE LIKE 'SUV' >> 93727 소수점 자리를 1개로 설정했을 때 (=소수 두 번째 자리에서 반올림 했을 때) SELECT ROUND(AVG(DAILY_FEE), 1) FROM CAR_RENTAL_COMPANY_CAR WHERE CAR_TYPE..

[MySQL] 날짜 관련 함수

MySQL에서 날짜 변환은 오라클(TO_CHAR, TO_DATE)과는 다르게 DATE_FORMAT, STR_TO_DATE를 사용한다. 1. 날짜 형식 변환 함수 (1) DATE_FORMAT 날짜 데이터를 다른 날짜 형식으로 변환 SELECT DATE_FORMAT('2019-03-01 12:23:01', '%Y-%m-%d') >> 2019-03-11 SELECT DATE_FORMAT('2019-03-01 12:23:01', '%Y-%M-%D') >> 2019-March-11th (2) STR_TO_DATE 문자열에서 날짜 형식으로 변환 SELECT STR_TO_DATE('20201103', '%Y-%m-%d') >> 2020-11-03 2. 날짜 연산 함수 (1) DATEDIFF(날짜1, 날짜2) 두 날짜..

집합연산자(UNION, INTERSECT, EXCEPT)

집합연산자(Set Operator) : 두 개 이상의 SQL 쿼리문을 합치는 방법 (SELECT구문과 SELECT구문 합치기) 컬럼의 개수가 같아야하고, 각 컬럼의 데이터타입이 같아야한다. 검색 결과의 헤더는 앞쪽 SELECT문에 의해 결정된다. ORDER BY 절은 문장의 제일 마지막에 사용한다. 집합연산자 종류 기호 의미 쿼리문 UNION A ∪ B 두 개 쿼리문 조건의 모든 행 (중복 제거) SELECT * FROM A UNION SELECT * FROM B UNION ALL 두 개 쿼리문 조건의 모든 행 (중복 포함) SELECT * FROM A UNION ALL SELECT * FROM B INTERSECT A ∩ B 양 쪽 조건 모두가 포함된 행만 검색 SELECT * FROM A INTERS..

[PostgreSQL] 문자열 한개 또는 여러개 치환하기(REPLACE, REGEXP_REPLACE, CASE WHEN)

1. REPLACE() : 문자열 한 개 치환 SELECT REPLACE(컬럼, '문자열', '바꿀문자') select customerid, custstate, replace(custstate,'A','000') from customers; 2. REGEXP_REPLACE() : 다중 문자열 치환 REGEXP_REPLACE(컬럼, '문자열1|문자열2|문자열3', '바꿀문자') 1. 다중 문자열을 하나의 문자열로 치환하기 --custstate 지역 중 WA 지역에 사는 사람과 WA 가 아닌 지역에 사는 사람을 구분해서 보여주세요.-- select customerid, custstate, regexp_replace(custstate,'TX|OR|CA','Others') as newstate_flag from..

[PostgreSQL] 년도,월,일,시간 등 추출하기(EXTRACT)

EXTRACT(A FROM B) - A (Field 값) : year, month, day 와 같은 추출할 날짜/시간 A (Field 값) 의미 CENTURY 세기(21세기, 20세기) DAY 1~31에 해당하는 해당 월의 일 DOW 일요일(0) ~ 토요일(6)까지 반환하는 값 DOY 1~366 까지 해당하는 연중일수 EPOCH 1970년 1월 1일 00:00:00 UTC 부터 현재까지의 초 (unixtime) HOUR 0 ~ 23 에 해당하는 시간정보 MILLISECONDS 1/1000에 해당하는 밀리초 MINUTE 0 ~ 59에 해당하는 분 정보 MONTH 1 ~ 12에 해당하는 월 정보 QUARTER 1(1~3월), 2(4~6월), 3(7~9월), 4(10~12월) 분기로 나뉘어지는 정보 SECON..

[PostgreSQL] 문자열 이어 붙이기, 합치기 (concat, ||)

1. concat(문자열1, 문자열2, 문자열3) (이름+' '+성 합치기) select concat(first_name,' ',last_name) from actor ; 2. 문자열1||문자열2||문자열3 (중복제거, 대문자, 이름+' '+성 합치기) select distinct upper(first_name||' '||last_name) from actor ; *주의 MySQL에서 ||는 문자열 합치기가 아닌 OR(또는)을 뜻한다. Oracle에서 concat 사용시 매개변수를 두 개만 허용하기 때문에 concat(concat(문자열1, 문자열2), 문자열3) 와 같이 사용할 수 있다. Reference https://jhnyang.tistory.com/369

SQL 테이블 유형 허용조건/제약조건

1. ⭕ 허용 조건 INTEGER, BOOLEAN : 정수 데이터 유형은 숫자 또는 나이의 개수와 같은 정수 값을 저장할 수 있습니다. 일부 구현에서 부울 값은 0 또는 1의 정수 값으로 표시됩니다. FLOAT, DOUBLE, REAL : 부동 소수점 데이터 유형은 측정 값 또는 분수 값과 같은 보다 정확한 숫자 데이터를 저장할 수 있습니다. 해당 값에 필요한 부동 소수점 정밀도에 따라 다른 유형을 사용할 수 있습니다. CHARACTER(num_chars), VARCHAR(num_chars), TEXT : 텍스트 기반 데이터 유형은 모든 부분에서 문자열과 텍스트를 저장할 수 있습니다. 다양한 유형 간의 차이는 일반적으로 텍스트로 작업 할 때 데이터베이스의 효율성을 뒷받침합니다. CHARACTER 및 VA..

[SQL 명령어] INSERT, UPDATE, DELETE (DML)

1. Inserting new data 1) 기본 INSERT INTO mytable VALUES (value_or_expr, another_value_or_expr, …), (value_or_expr_2, another_value_or_expr_2, …), …; 2) 열을 지정해 데이터 삽입 경우에 따라, 불완전한 데이터가 있고 테이블에 기본값을 지원하는 열이 포함 된 경우, 행 추가 시 원하는 열의 공간을 지정해 데이터를 추가 할 수 있다. (column, another_column, …) VALUES (value_or_expr, another_value_or_expr, …), (value_or_expr_2, another_value_or_expr_2, …), …; 3) 값에 수식, 문자열 표현식 가..

[SQL 명령어] CREATE, DROP, ALTER (DDL)

1. Creating table 테이블 추가 새로운 테이블의 구조가 스키마로 정의될 경우 테이블 생성이 가능하다. 이미 같은 이름의 열이 존재하면 error가 나타난다. 그렇기에 IF NOT EXISTS를 사용한다. CREATE TABLE IF NOT EXISTS mytable ( column DataType TableConstraint DEFAULT default_value, another_column DataType TableConstraint DEFAULT default_value, … ); 2. Dropping table 전체 테이블 제거 DROP TABLE IF EXISTS mytable; 드문 경우이긴 하지만 모든 데이터 및 메타데이터를 포함하는 전체 테이블을 제거할 수 있습니다. 이렇게 하려..

[SQL 명령어] SELET/WHERE, DISTINCT, ORDER BY, LIMIT, OFFSET/JOIN/ISNULL/expressions/aggregates (DQL)

SQLBolt 참고 목차 1. SELECT/FROM 2. WHERE 3. DISTINCT 4. ORDER BY 5. LIMIT/OFFSET 6. JOIN (INNER, OUTER, SELF, CROSS, Nature) 7. WHERE IS NULL / IS NOT NULL 8. Queries with expressions (수식) 9. Queries with aggregates (COUNT, MIN, MAX, AVG, SUM) 10. Grouped aggregate functions (GROUP BY, HAVING) 1. SELECT/FROM : select for specific columns of data from a table SELECT 열이름1,열이름2 FROM 테이블이름; ex) SELECT ..

데이터 스키마

1. 스키마의 정의 컴퓨터 과학에서 데이터베이스 스키마(database schema)는 데이터베이스에서 자료의 구조, 자료의 표현 방법, 자료 간의 관계를 형식 언어로 정의한 구조이다. 즉 데이터베이스를 구성하는 데이터 개체(Entity), 속성(Attribute), 관계(Relationship) 및 데이터 조작 시 데이터 값들이 갖는 제약 조건 등에 관해 전반적으로 정의한다. 데이터베이스 관리 시스템(DBMS)이 주어진 설정에 따라 데이터베이스 스키마를 생성하며, 데이터베이스 사용자가 자료를 저장, 조회, 삭제, 변경할 때 DBMS는 자신이 생성한 데이터베이스 스키마를 참조하여 명령을 수행한다. 2. 스키마의 3계층 DBMS는 외부적으로 스키마에 따라 명시된 사용자의 요구를 개념적 스키마에 적합한 형태..

SQL 명령어 종류

SQL 명령어 종류 DDL (Data Definition Language) 데이터를 정의할 때 사용되는 언어. 데이터베이스의 테이블과 같은 오브젝트를 정의 ex) CREAT, DROP 등 (테이블 만들기, 삭제) DML (Data Manipulation Language) 데이터베이스에 데이터를 저장할 때 사용되는 언어 ex) INSERT , DELETE, UPDATE (레코드 추가, 삭제, 변경) DCL (Data Control Language) 데이터베이스에 대한 접근 권한관 관련된 문법 유저에게 데이터베이스에 접근 권한을 설정하거나 없애는 역할 ex) GRANT, REVOKE (권한을 주기, 뺏음) DQL (Data Query Language) 정해진 스키마 내에서 쿼리를 할 수 있는 언어 DML의 ..

SQL 정의, 필요성

SQL이란? SQL( Structured Query Language , 구조화된 쿼리 언어 ) 이란 데이터베이스용 프로그래밍 언어이자, 데이터베이스에 쿼리를 보내 원하는 데이터만을 가져올 수 있으며, 데이터베이스 언어의 기준으로 주로 관계형 데이터베이스에서 사용됩니다. 예를 들어 MySQL, Oracle, SQLite, PostgreSQL 등 다양한 데이터베이스에서 볼 수 있습니다. Structured 즉, relation 이라고도 불리는 데이터가 구조화된 테이블을 사용하는 데이터 베이스 쿼리(query) 질문. 데이터에 말을 거는 언어. 기존에 존재하는 데이터를 검색어로 필터하듯이 쿼리는 저장되어 있는 데이터정보를 필터링 하기 위한 질문입니다. 반면 구조가 고정되어 있지 않은 데이터베이스들은 NoSQL..

728x90
반응형