Linux/SQL 27

[DBMS] 변수(Variable)

• 변수 변하는 데이터가 저장될 수 있는 공간 메모리 공간을 빌려 이름을 붙여 놓고 원하는 데이터를 저장해서 사용 • 명명 규칙 이름을 정하는 규칙 변수 이름은 알파벳 , ‘ _ ‘ , ‘ $ ‘ , ‘ . ‘ 으로 구성 MySQL 5.x 버전부터는 변수이름 대/소문자 구분 안 함 • 변수 데이터 조회 • 변수 설정 및 사용 mysql> SET @변수명=데이터 [ , .... ] ; - 다른 SQL 문 내에서 변수에 저장된 데이터를 불러 올 경우 mysql> @변수명 ; - 다른 SQL 문 내에서 변수에 데이터를 저장할 경우 mysql> @변수명:=데이터 ;

Linux/SQL 2021.12.08

[DBMS] 트랜잭션 Transaction : Autocommit 기능 설정

• 트랜잭션 적용 autocommit 기능 설정 모든 작업에 autocommit 기능을 사용하지 않으려면 autocommit 기능을 비활성화 하면 됨 autocommit 을 비활성화 하는 경우 작업 후 commit 을 하지 않으면 적용되지 않으므로 주의!! mysql> select @@autocommit; > autocommit 설정 확인 > 0 은 비활성화, 1은 활성화 mysql> set autocommit=0; 또는 set autocommit=1; autocommit 설정값 확인 select @@autocommit; # select를 이용한 확인 show variables like 'autocommit'; # show를 이용한 확인 autocommit 설정 또는 해제 = 임시적으로 autocommi..

Linux/SQL 2021.11.30

[DBMS] 트랜잭션 Transaction

• 트랜잭션(Transaction) 한꺼번에 수행되어야 할 최소 작업 단위 논리적 작업 단위(LUW, Logical Units of Work) 모든 작업은 반드시 한꺼번에 완료가 되야 하며 그렇지 않은 경우에는 한꺼번에 취소되어야 함 사용자가 시스템에 요구를 시작하여 시스템 내의 처리, 시스템에서 사용자에게 응답하는 모든 처리를 포함 • 트랜잭션 기술적 요건(ACID) 원자성(Atomicity) 분리 할 수 없는 하나의 단위로 작업은 모두 완료되거나 모두 취소되어야 함 트랜잭션의 처리가 취소된 경우 전혀 이루어지지 않은 것과 같아야 함 작업 중 에러가 발생되면 rollback(되돌리기) 일관성(Consistency) 트랜잭션들간의 영향이 한 방향으로만 전달되어야 함 오류 없이 유효한 데이터만 저장되어야 ..

Linux/SQL 2021.11.30

[DBMS] 뷰 View

• 뷰(VIEW) 하나 이상의 테이블(또는 다른 뷰)에서 원하는 데이터를 선택하여 새로운 가상 테이블로 만들어 주는 것 다른 테이블에 있는 데이터를 보여줄 뿐이며 데이터 자체를 포함하고 있는 것은 아님 저장장치 내에 물리적으로 존재하지 않고 가상테이블로 만들어 짐 논리적인 독립성을 제공 • 뷰(View)의 장점 데이터베이스의 구조를 변경하여도 테이블에 의존하는 어플리케이션을 변경할 필요가 없음 복잡한 쿼리를 단순하게 만들 수 있어 편리함 사용자에게 필요 없는 정보를 숨길 수 있음 • 뷰 생성 mysql> CREATE VIEW AS [ WITH CHECK OPTION ] - VIEW 리스트 및 구조 학인 기존 테이블 조회와 동일하게 조회 가능 • 뷰 데이터 조회 기존 테이블 데이터 조회와 동일하게 SELE..

Linux/SQL 2021.11.30

[DBMS] 유니온 Union

• 집합 연산자(Set Operator) 두 개 이상의 테이블에서 조인(Join)을 사용하지 않고 연관된 데이터를 조회하는 방법 여러 개의 질의의 결과를 연결하여 하나로 결합하는 방식을 사용 각 테이블의 조회 결과를 하나의 테이블에 합쳐서 반환 함 조건 SELECT 절의 컬럼 수가 동일해야 함 SELECT 절의 동일 위치에 존재하는 칼럼의 데이터 타입이 상호 호환 가능해야 함 > MySQL 은 자동 형 변환이 일어나기 때문에 동일하지 않아도 됨 • 집합 연산자 종류 MySQL 은 UNION 만 사용 가능 • UNION 테이블 A 결과와 테이블 B 결과를 합쳐서 하나의 테이블로 반환 mysql> select from union select from ;

Linux/SQL 2021.11.30

[DBMS] JOIN 조인

• JOIN 두 개 이상의 테이블에서 연관성을 가지고 있는 열을 기반으로 레코드를 결합하는 기능 • Join 종류 INNER JOIN(내부 조인) : 교집합 OUTER JOIN(외부 조인) : 합집합 LEFT OUTER JOIN(왼쪽 외부 조인) RIGHT OUTER JOIN(오른쪽 외부 조인) FULL OUTER JOIN(완전 외부 조인) • INNER JOIN(내부 조인) 테이블 A 와 테이블 B 모두 조건구문에 일치하는 데이터만 반환 명시적 조인 표현 mysql> SELECT FROM INNER JOIN ON ; 암시적 조인 표현 mysql> SELECT FROM , WHERE ; LEFT OUTER JOIN(왼쪽 외부 조인) 테이블A 모두 반환 테이블B 조건구문에 일치하는 데이터만 반환 mysql..

Linux/SQL 2021.11.30

[DBMS] 데이터베이스 엔진 (Database Engine)

• mysql 데이터베이스 엔진 = 스토리지 엔진(storage engine) MySQL에는 그 특성에 따라 여러 종류의 데이터베이스 엔진(스토리지 엔진 이라고도 함)이 존재 가장 많이 알려져 있고 또 가장 많이 사용하고 있는 엔진은 MyISAM과 InnoDB가 있음 기존 MyISAM이 MySQL의 기본 엔진이었다면 MySQL 5.5부터는 InnoDB가 기본 엔진으로 변경됨 InnoDB 특징 트랜젝션 지원 빈번한 쓰기/수정/삭제 시 처리 능력 향상 디스크, 전원 등의 장애 발생시 복구 성능 향상 동시처리가 많은 환경에 적합 Row 단위 Locking MyISAM 특징 상대적으로 높은 성능, 읽기 위주의 요청에 유리 MyISAM은 트랜젝션 지원이 안됨 여러 SQL문을 실행한 후 commit 또는 rollb..

Linux/SQL 2021.11.30

[DBMS] 문자 인코딩 확인하고 설정하기 (Character Encoding)

• DBMS 기본 인코딩 확인 mysql> status; MySQL 기본 패키지는 기본 인코딩이 latin1 으로 설정되어 있음 • DBMS 기본 인코딩 확인 mysql> show variables like 'c%'; 상세 확인 • 데이터베이스 인코딩 확인 mysql> show create database; • 테이블 인코딩 확인 mysql> show create table ; mysql> select table_name, table_collation from information_schema.tables [ where 조건 ] ; • 데이터베이스 생성 시 인코딩 설정 mysql> create database default character set [ collate ]; • 기존 데이터베이스 인코딩 변경..

Linux/SQL 2021.11.29

[DBMS] 데이터베이스 사전 (Database Schema)

• Database Schema(데이터베이스 스키마) DB구조를 정의하기 위해 사용하는 개념 자료의 구조, 자료의 표현 방법, 자료 간의 관계를 형식 언어로 정의(개체, 속성, 관계, 제약조건 등) DBMS에서 주어진 설정에 따라 데이터베이스 스키마를 생성 사용자가 자료를 저장, 조회, 삭제, 변경할 때 DBMS는 자신이 생성한 데이터베이스 스키마를 참조하여 명 령을 수행 사용자의 관점에 따라서 외부,개념,내부 스키마로 구분 외부 스키마(extended schema) 사용자의 입장에서 본 데이터베이스 구조 사용자 또는 응용 프로그램이 질의(SQL)나 프로그래밍 언어를 이용해 접근하는 데이터베이스를 정의 전체 데이터 베이스의 한 논리적 부분을 정의(서브 스키마) 개념 스키마를 통해 생성되고 지원을 받기 때..

Linux/SQL 2021.11.29

[DBMS] DCL 명령어 정리 (계정 확인/생성/삭제 & 권한 확인/생성/삭제)

• 데이터 제어어(DCL, Data Control Language) DB에 대한 보안, 무결성, 복구 등 DBMS를 제어하기 위한 언어 GRANT(권한할당), REVOKE(권한해제), COMMIT(실행), ROLLBACK(복구) COMMIT, ROLLBACK 은 트랜젝션에 관련된 언어로 TCL 로 구분하기도 함 • 계정 확인 mysql DB의 user Table 에서 DBMS 계정에 대한 정보를 관리 mysql> desc mysql.user ; > 현재 선택된 DB와 다른 DB의 테이블을 조회 하고 싶은 경우 . 으로 접근 가능 - mysql> select user, host, password from mysql.user; • 계정 생성1 mysql> create user ‘user명’@’접속경로’ [ ..

Linux/SQL 2021.11.29