반응형

mysql 문자열 합치기


SELECT 

add1, 

add2, 

CONCAT(add1,'-',add2) as add

FROM juso



오라클 문자열 합치기


SELECT 

add1, 

add2,

add1||', '||add2 as add

FROM juso



mssql 문자열 합치기

SELECT 

add1, 

add2,

add1+', '+add2 as add

FROM juso

반응형
반응형

RDBMS (Relational DataBase Management System)


RDBMS는 관계형 데이터베이스를 관리하기위한 소프트웨어입니다.

테이블(Table based)기반의 DBMS로 데이터를 조건에 따라서 테이블의 행과 열로 나누어 관리하는 시스템입니다.

E-R(Entity Relationship)모델을 사용하며 RDBMS으로 MSSQL, Oracle, MySQL, MariaDB, CUBRID 등이 있습니다.



RDB (Relational DataBase)


RDB는 관계형 데이터베이스를 뜻하며 모든 데이터를 계층구조가 아닌 2차원의 단순한 표(관계)로 표현하는 형식의 데이터베이스입니다.

관계형 데이타 모델에 기초를 둔 데이타베이스로서 수학적 이론에 기반을 두고있습니다.



RDBMS의 기능


데이터베이스 언어

데이터베이스 언어는 DBMS에 대해 다양한 지시를 전달하기위한 언어입니다. 

개념적으로, 데이터정의언어(DDL), 데이터조작언어(DML), 데이터제어언어(DCL)의 구성되있습니다. 

DDL은 데이터베이스의 구조를 정의합니다. 

DML은 데이터베이스에 대한 검색 및 업데이트 등의 작업을 실시합니다. 

DCL은 데이터에 대한 액세스 제어를 실시합니다.

RDBMS에서는 관계모델을 기반으로 데이터베이스언어를 갖추고 있으며, RDBMS의 데이터조작언어는 관계모델의 관계대수와 관계논리에 근거합니다.

RDBMS로하는 시스템의 대부분은 데이터베이스 언어 SQL을 갖추고있습니다.


물리적 데이터 독립성

데이터베이스를 저장하는 저장 장치를 변경할 때, 그에 따라 RDBMS에 액세스하는 방법을 변경할 필요는 없습니다. 

RDBMS에 액세스하는 사용자나 응용프로그램 소프트웨어에 대한 RDBMS는 저장 장치의 변경을 은폐할 수있습니다.


논리적 데이터 독립성

RDBMS에서는 도출관계(뷰)에 따라 논리적 데이터 독립성을 지원합니다.

파생관계는 관계대수 또는 관계논리 식으로 이름을 붙인 것입니다. 파생 관계는 관계의 일종이며, 뷰라고도 불립니다. 

또한 도출 관계를 사용하면 복잡한 검색 및 업데이트 등의 데이터 조작을 단순화하여 설명 할 수있습니다.


데이터 무결성

데이터 무결성은 잘못된 데이터가 등록되는 것이나, 잘못된 데이터로 업데이트되는 것을 방지하는 것을 말합니다. 

RDBMS는 정의역, 데이터 형식, 고유 제한 조건, 참조 무결성 제약, CHECK 제약 조건, 트리거 등의 기능을 갖추고있습니다.


트랜잭션 처리

ACID 속성을 기반으로 트랜잭션 처리를 실시합니다. 

여러 사용자가 동시에 동일한 데이터를 참조, 갱신 한 경우에도 일관성있게 제대로 처리 합니다.


보안

대부분의 RDBMS는 보안 (안전)에 대해 임의의 액세스제어 또는 강제액세스제어 를 제공하고, 

일부 RDBMS는 데이터 암호화 기능도 제공합니다. 

많은 RDBMS에서는 임의의 액세스 제어를 채용하고있다 ( SQL 에서는 임의 액세스 제어만을 규정하고있다). 

SQL의 임의 액세스 제어에서는 GRANT 문을 사용하여 이용자 (인증 식별자)를 지정하여 

그 이용자가 액세스 할 수있는 개체 (관계 등) 및 액세스유형 (검색, 업데이트 등)을 정의합니다.

데이터 암호화 기능은 RDBMS를 우회 한 잘못된 데이터 액세스에 대한 대책으로 RDBMS에서 관리. 전송되는 데이터를 암호화합니다.


복구

트랜잭션 장애, 시스템 장애, 기억 매체 의 장애 복구를 실시합니다.


최적화

데이터조작언어에 의한 고차관계대수와 관계논리에서 작성된 데이터 처리요구를 저수준 절차에 최적화 실행합니다.


분산 데이터베이스

분산 데이터베이스는 네트워크로 연결된 여러 대의 컴퓨터를 사용하여 

각각의 컴퓨터에서 DBMS의 프로세스를 작동시키고 움직 전체로 가상으로 하나의 DBMS를 실현하는 기술입니다. 

여러 대의 컴퓨터를 사용하기 때문에 가용성과 성능을 향상시킬 수있습니다.

클라이언트서버의 데이터베이스는 분산데이터베이스 간단하고 특수한 형태로 자리 매김 할 수있습니다.

반응형
반응형


SELECT문


조건식

SELECT [* | DISTINCT] 컬럼

FROM TABLE명

[ WHERE 조건 ]

[ GROUP BY 컬럼 ]

[ HAVING 검색조건 ]

[ ORDER BY 컬럼 [ ASC | DESC ] 


데이터 처리순서

1. FROM

2. ON

3. JOIN

4. WHERE

5. GROUP BY

6. WITH CUBE 또는 WITH ROLLUP

7. HAVING

8. SELECT

9. DISTINCT

10. ORDER BY

11. TOP


*기본

SELECT * FROM TABLE명;  // TABLE명에 있는 모든 컬럼의 데이터를 찾는다.

SELECT 컬럼1, 컬럼2, 컬럼3 FROM TABLE명 // TABLE의 컬럼1, 컬럼2, 컬럼3의 데이터를 찾음

SELECT 컬럼1 AS 별칭 FROM TABLE명 // 컬럼1 AS 별칭 데이터를 뽑을때 컬럼1의 컬럼명이 별칭으로 바뀜


*집계 함수(숫자 데이터)

SUM() // 컬럼 데이터의 합

AVG() // 컬럼 데이터의 평균

COUNT() // 컬럼의 데이터 갯수

MAX() // 컬럼 데이터의 MAX값

NIN() // 컬럼 데이터의 MIN값


EX) SELECT SUM(컬럼1) FROM TABLE명 // 컬럼1의 모든데이터의 합을 가져옴.


*수치함수(숫자 데이터)

ROUND(데이터, 반올림위치) //반올림 및 자릿수

ABS() // 절대값

SIGN() // 부호

SQRT() // 제곱근

POWER(데이터, n) // n승


*문자열 함수(문자 데이터)

Ascii() // 문자열의 제일 왼쪽 문자의 아스키 코드 값을 반환(Integer형)

Char() // 정수 아스키 코드를 문자로 반환(Char형)

Charindex(찾을문자, 데이터, 찾을시작위치) // 문자열에서 지정한 식의 위치를 반환

Left() // 문자열에서 왼쪽에서부터 지정한 수만큼의 문자를 반환

Len() // 문자열의 길이 반환

Lower() // 대문자를 소문자로 반환

Ltrim() // 문자열의 왼쪽 공백 제거

Nchar()  // 지정한 정수 코드의 유니코드 문자 반환

Replace(데이터, 바꾸고싶은문자, 바꿀문자) -  문자열에서 바꾸고 싶은 문자 다른 문자로 변환

Replicate() // 문자식을 지정한 횟수만큼 반복

Reverse() // 문자열을 역순으로 출력

Right(데이터, 지정수) // 문자열의 오른쪽에서 부터 지정한 수 만큼 반환(Left() 와 비슷 )

Rtrim() // 문자열의 오른쪽 공백 제거

Space() // 지정한 수만큼의 공백 문자 반환

Substring(데이터,가져올자릿수, 길이) // 문자,이진,텍스트 또는 이미지 식의 일부를 반환

Unicode() // 식에 있는 첫번째 문자의 유니코드 정수 값을 반환

Upper() // 소문자를 대문자로 반환

Isnumeric() // 해당 문자열이 숫자형이면 1 아니면 0을 반환

Isdate() // 해당 문자열이 Datetime이면 1 아니면 0


WHERE 조건

SELECT * FROM TABLE명 WHERE 컬럼1=1; // 모든 컬럼의 데이터에서 컬럼1의 데이터가 1인 모든 컬럼의 데이터 값을 찾음


조건 함수

IS NULL // 데이터가 NULL인 값 가져오기 

BETWEEN A AND B // A와 B사이에 있는걸 가져옴

LIKE a% // a로 시작되는

LIKE %a% // a를 포함하는

LIKE a% // a로 끝나는

LIKE a_ // a로 시작하는 2자리

LIKE a___ // a로 시작하는 4자리

LIKE __a // a로 끝나는 3자리  

컬럼 IN (a, b) // 컬럼이 a이거나 b인 데이터 가져오기


SELECT DISTINCT 컬럼 FROM TABLE명 // 중복되지 않는 데이터만 가져옴

SELECT TOP n * FROM TABLE명 // 상위 n개의 데이터만 가져오기


ORDER BY 컬럼1 ASC  // 컬럼1 기준으로 오름차순

ORDER BY 컬럼1 DESC // 컬럼1 기준으로 내림차순



※HAVING이나 빠진부분은 추후 업데이트하겠습니다.


반응형

+ Recent posts