728x90
반응형

디비의 기본 쿼리란 ?? 

 

구글 번역으로 쿼리는 질문,문의하다라는 뜻이다.

질문의 답을 달라는 요청인 것 같다. ㅇㅅㅇ

 

쿼리는 데이터베이스에 하는 요청으로 데이터를 달라고 요청한다 ~ !! 

 

쿼리는 데이터베이스에게 특정한 데이터를 보여달라는 클라이언트의 요청을 말한다 ~ !! 

 

이에 쿼리문을 작성한다는 말은 데이터베이스에서 원하는 정보를 가져오는 코드를 작성한다의 뜻으로

이해하면 된다. 쿼리문을 잘 작성한다는 것은 데이터베이스에서 필요한 데이터를 발빠르게 접근하여

데이터를 능숙하게 핸들링한다는 말로도 볼 수 있다. 

 

 

반응형
728x90
반응형

데이터베이스란 ? 

 

대량의 정보를 컴퓨터가 효율적으로 접근할 수 있도록 가공 및 저장한 것 

 

DBMS란 ?

 

다수의 사용자들이 데이터베이스 내의 데이터를 접근할 수 있도록 해주는 소프트웨어 도구의 집합

 

DBMS를 쓰지 않는다면

 

다수의 사람이 데이터를 공유하기 어렵다 

대량의 데이터를 다루기 어렵다 (txt,xls 등)

읽기/쓰기를 자동화하려면 프로그래밍 기술이 필요하다. 

만일의 사고에 대비 어렵다.

 

관계형 데이터베이스 - RDB 

 

관계형 데이터베이스는 키와 값의 간단한 관계를 2차원 표(테이블)형식으로 나타낸 데이터베이스이다. 

하나의 데이터베이스 안에는 여러 개의 테이블이 존재할 수 있다.

 

테이블

 

테이블은 행과 열로 이루어져 있다. 

 

테이블의 행은 레코드라고 브르며 데이터 한 건에 해당 

하나의 테이블은 적게는 수백개 많게는 수백만개의 레코드를 지님. 

 

 

테이블의 열에 해당하는 칼럼은 각기 구분하기 쉽게 이름을 붙여 분류 

칼럼은 특정한 데이터 타입을 가진다.

 

RDBMS는 일반적으로 클라이언트가 요청을 보내면 서버가 처리해주는 C/S구조로 되어있다.

클라이언트가 요청을 보낼때에 주로 사용하는 언어가 SQL이다.

 

사용자가 데이터를 조회하고 싶을때에 SQL문으로 작성한 요청을 RDBMS에 보내면 RDMBS는 요청된 데이터를 반환한다. 이 때 RDMBS는 2차원 표 형태의 데이터를 반환한다.

 

RDBMS의 종류 

 

어떤 RDBMS를 쓰는지에 따라 SQL 문법이 조금씩 달라진다. 쓰이는 인기 있는 RDBMS는 

아래와 같다.

 

Oracle DB - 가장 오래되었고 신뢰도도 높다. 뛰어난 기술력과 안정성을 가지고 있다. 대규모의 애플리케이션,

특히 은행 업계에서 쓰이며 유료로 사용 

MySQL - 오픈 소스이기 때문에 널리 쓰인다. 웹 개발 특히 PHP를 이용한 개발에 흔히 쓰인다. 오라클이 인수한 후

불안감 때문에 다른 곳으로 넘어가는 경우가 보임

Maria DB -오라클이 MySQL을 인수하면서 라이선스 문제가 불확실해지자 이에 반발하여 만들어졌다.

MySQL 5.5를 기반으로 만들어져 사용법이 거의 유사하고 호환성도 뛰어나다.

PostgreSQL - 버클리 대학의 프로젝트로 만들어진 오픈 소스 ORDBMS이다. 

(ORDBMS : 객체 - 관계형 데이터베이스 관리 시스템) SQL의 확장성과 표준을 준수하고 풍부한 기능을 지원한다.

SQL Server - 마이크로소프트가 개발한 RDBMS이기 때문에 윈도우 시스템 환경 지원 

SQLite - DB를 서버가 아닌 파일로 저장하는 DBMS이다. 기기에 가벼운 DB를 저장하는 목적으로 설계되었으며

대표적으로 안드로이드,iOS,mac OS에서 사용 

 

SQL 명령어 

 

DDL - 데이터베이스 스키마와 설명을 처리하는 정의하는 언어. 데이터베이스나 테이블 생성/변경/삭제 등의 작업이 여기 포함된다. 

DML - 데이터검색,삽입,변경.삭제를 수행하여 조작하는 언어.실질적으로 저장된 데이터에 처리할 때 사용 

DCL - 데이터에 접근할 수 있는 권한을 관리하는 언어

TCL - 트랜잭션을 다루는 언어 

 

반응형
728x90
반응형

1. SELECT 

 

가장 기본이 되는 데이터를 불러오는 쿼리문 입니다.

 

1) SELECT 컬럼명 FROM 테이블명;

 

- 해당 테이블의 해당컬럼의 데이터를 불러옵니다. 컬럼 전체를 불러오고 싶을때는 컬럼명 부분에 '*'를 넣으시면 됩니다.

 

 

2) SELECT 컬럼명 FROM 테이블명 WHETE 컬럼명=값;

 

WHERE 구문을 추가하여 해당 조건이 참인 데이터만 불러옵니다.

 

WHERE 뒤에오는 컬럼명의 값이 지정한 값인 데이터 행의 컬럼명만 가져옵니다.

 

 

3) SELECT 컬럼명 FROM 테이블명 WHERE 컬럼명=값 ORDER BY 컬럼명 ASC or DESC;

 

ORDER BY 뒤에 오는 컬럼명에 대하여 불러오는 데이터를 정렬합니다. ASC는 오름차순, DESC는 내림차순 입니다.

공백을 입력하면 ASC가 기본값으로 오름차순으로 정렬됩니다.

 

4) SELECT 컬럼명 FROM 테이블명 WHERE 컬럼명=값 ORDER BY 컬럼명 ASC or DESC LIMIT 개수;

 

LIMIT 구문을 추가하여 데이터 행이 많을때 개수만큼 데이터를 불러옵니다.

 

2. INSERT 

 

데이터를 삽입할때 사용하는 쿼리문입니다.

 

1) INSERT INTO 테이블명 (컬럼명1,컬럼명2,컬럼명3) VALUES(값1,값2,값3);

 

테이블명에 있는 컬럼명에 맞게 값을 입력합니다. 컬럼명과 값의 개수는 동일해야합니다.

만약에 문자열을 입력하는 경우 작은따옴표로 문자열을 감싸줘야합니다.

 

ex.INSERT INTO table_Student(Name,Class,Age) VALUES('Jane','A',16);

 

2) INSERT INTO 테이블명 VALUES (값1,값2,값3);

 

1) INSERT문에서 테이블명 다음에 컬럼명을 입력하지 않아도 됩니다 하지만 테이블에 있는 모든 컬럼의 수에 맞게 값을 입력을 해야합니다.

 

ex. 컬럼이 Name,Class,Age 이렇게 3개인 테이블에서 

 

INSERT INTO table_Student value ('Jane,'A',16); -> 성공

 

INSERT INRO table_Student value ('Jane','A'); -> 실패

 

3. UPDATE

1) UPDATE 테이블명 SET 컬럼명 = 변경할 값;

 

테이블에 있는 모든 데이터의 컬럼의 값을 변경합니다. 특정한 데이터만 수정하고 싶다면 WHERE절을 

사용해야합니다.

 

2) UPDATE 테이블명 SET 컬럼명 = 변경할 값;

 

WHERE절에 맞는 데이터만 변경합니다.

 

3) UPDATE 테이블명 SET 컬럼명1 = 변경할 값1,컬럼명2 = 변경할 값2 WHERE 컬럼명=값;

 

변경해야할 컬럼이 여러개일때 콤마(,)를 사용하여 여러개의 값을 변경할 수 있습니다.

 

4. DELETE

 

테이블에 있는 데이터를 삭제할때 사용합니다.

 

1) DELETE from 테이블명;

 

테이블에 있는 모든 데이터를 삭제합니다.

 

2) DELETE from 테이블명 WHERE 컬럼명=값; 

 

WHERE절에 맞는 데이터만 삭제합니다.

 

* WHERE절 조건 여러개 추가하기 

 

WHERE절을 통해서 쿼리문에 조건을 추가할 수 있다. 위에 있는 내용은 한가지 조건일때만 나타내었는데

만약에 여러가지의 조건을 사용하고 싶을때는 and를 사용하시면 됩니다.

 

ex WHERE 컬럼명1=값1 and 컬럼명2=값2 

 

UPDATE 쿼리문의 콤마(,)와 다르니 주의하시기 바랍니다~

 

반응형

'IT > DB' 카테고리의 다른 글

SQL 개념 정리  (0) 2021.10.20
왜 데이터베이스 튜닝을 해야할까 ?? -  (0) 2021.10.14
쿼리란 ?  (0) 2021.10.14
DBMS와 SQL이란  (0) 2021.08.19
[DB]데이터 언어 - DDL,DML,DCL,TCL의 정의  (0) 2021.08.11
728x90
반응형

전체적인 구조

DML(Data Manipulation Language, 데이터 조작어)

데이터베이스의 데이터를 관리하는데 사용됩니다. DML명령은 자동으로 커밋되지 않습니다. 즉 DML명령에 의한 변경은 데이터베이스에 영구적이지 않으므로 롤백할 수 있습니다.

 

DML(INSERT,UPDATE,DELETE,SELECT) 명령어의 경우, 조작하려는 테이블을 메모리 버퍼에 올려놓고 작업을 하기 때문에

실시간으로 테이블에 영향을 미치는 것은 아니다. 따라서 버퍼에서 처리한 DML 명령어가 실제 테이블에 반영되기 위해서는 COMMIT 명령어를 입력하여 TRANSACTION을 종료해야 한다. 그러나 SQL Server의 경우는 DML의 경우도 AUTO COMMIT으로 처리되기 때문에 실제 테이블 반영하기 위해 COMMIT 명령어를 입력할 필요가 없다.

 

데이터베이스에서 데이터를 검색.(RETREVE라고도 함)

 

 SELECT    - ALL : 기본 옵션이므로 별도로 지정하지 않아도 되며,
중복되는 데이터가 있더라도 모두 출력 
 - DISTINCT : 중복된 데이터가 있는 경우 1건만 출력
INSERT 테이블에 데이터를 삽입(추가)
UPDATE 테이블 내의 기존 데이터를 수정
DELETE 테이블에서 데이터를 삭제
테이블의 전체 데이터를 삭제하는 경우, 시스템 활용 측면에서는 삭제된 데이터를 로그로 저장하는 DELETE TABLE보다는 시스템 부하가 적은 TRUNCATE TABLE을 권고한다.
단, TRUNCATE TABLE의 경우 삭제된 데이터의 로그가 없어서 ROLLBACK이 불가능하므로 주의해야 한다.
그러나 SQL Server의 경우 사용자가 임의적으로 트랜잭션을 시작한 후 
TRUNCATE TABLE을 이용하여 데이터를 삭제한 이후 오류가 발견되어
다시 복구를 원할 경우 ROLLBACK문을 이용하여 
테이블 데이터를 원 상태로 되돌릴 수 있다.
 
MERGE UPSERT 작업 (INSERT 또는 UPDATE)
데이터가 테이블에 존재하지 않으면 INSERT,존재하면 UPDATE를 수행한다.
CALL PL/SQL 또는 Java 서브 프로그램 호출
EXPLAIN PLAN 데이터 접근 경로를 해석
(SQL문이 어떻게 실행/작동하는지에 대한 점검/분석을
할 수 있도록 도와 준다)
LOCK TABLE  동시성 제어

 

DDL (Data Definition Language, 데이터 정의어) - Auto Commit 

데이터베이스 구조 또는 스키마를 정의하는데 사용

주의 : 직접 데이터베이스의 테이블에 영향을 미치기 때문에 DDL명령어를 입력하는 순간. 명령어에 해당하는 작업이 즉시 (AUTO COMMIT) 완료된다는 것을 기억하기 바란다. 

               

CREATE 데이터베이스의 객체를 생성
ALTER 데이터베이스의 구조를 변경
DROP 데이터베이스의 객체를 삭제 (테이블의 모든 데이터와 구조를 삭제)
RENAME 데이터베이스의 객체 이름을 변경
COMMENT 데이터에 주석등을 추가
TRUNCATE 테이블에 할당된 모든 공간을 포함하여 모든 레코드를 제거.
(테이블 객체의 저장공간 재사용 가능)

 

DCL (Data Control Language,데이터 제어 언어) - Auto Commit

 

데이터베이스에 권한 부여

주의 : 직접 데이터베이스의 테이블에 영향을 미치기 때문에 DCL 명령어를 입력하는 순간. 명령어에 해당하는 작업이 즉식 완료된다는 것을 기억하기 바란다.

 

GRANT 데이터베이스에 대한 사용자의 액세스 권한을 제공.
(특정 사용자만 특정 작업을 할 수 있도록 지정 가능)
REVOKE GRANT명령으로 주어진 액세스 권한을 철회

TCL (Transaction Control Language, Transaction 제어 언어)

데이터의 보안,무결성,회복,병행 수행제어 등을 정의하는데 사용 

COMMIT 트랜잭션의 작업 결과를 저장 반영 (트랜잭션 완료)
ROLLBACK 데이터베이스를 마지막 COMMIT된 시점의 상태로 복원
데이터에 대한 변경 내용은 논리적인 트랜잭션으로 그룹화 될 수 있다.
SAVEPOINT 저장점을 정의하면 롤백할때 트랜잭션에 포함된 전체 작업을 롤백하는 것이 아니라 현 시점에서 SAVEPOINT까지 트랜잭션의 일부만 롤백할 수 있다. 따라서 복잡한 대규모 트랜잭션에서 에러가 발생했을때 SAVEPOINT까지의 트랜잭션만 롤백하고 실패한 부분에 대해서만 
다시 실행할 수 있다. (일부 툴에서는 지원이 안 될 수 있음)
복수의 저장점을 정의할 수 있으며, 동일이름으로 저장점을 정의했을때는
나중에 정의한 저장점이 유효하다.
SET 
TRANSACTION
Transaction 지정

 

출처 : https://iamfreeman.tistory.com/entry/DBMS-%EB%8D%B0%EC%9D%B4%ED%84%B0-%EC%96%B8%EC%96%B4-DDL-DML-DCL-TCL-%EC%9D%98-%EC%A0%95%EC%9D%98

반응형

'IT > DB' 카테고리의 다른 글

SQL 개념 정리  (0) 2021.10.20
왜 데이터베이스 튜닝을 해야할까 ?? -  (0) 2021.10.14
쿼리란 ?  (0) 2021.10.14
DBMS와 SQL이란  (0) 2021.08.19
[DB]SQL Query문 간단하게 정리 (SELECT,INSERT,UPDATE,DELETE 쿼리문 사용법)  (0) 2021.08.11

+ Recent posts