본문 바로가기

개발/database

(14)
[DB] MySQL 사용자 생성 및 권한 부여 mysql 접속mysql -u 유저명 -p유저 생성, 권한 부여CREATE USER '유저이름'@'%' IDENTIFIED BY '데이터베이스비번'; GRANT ALL PRIVILEGES ON 데이터베이스이름.* TO '유저이름'@'%';FLUSH PRIVILEGES;권한 확인SHOW GRANTS FOR '유저명'@'%';
[DB] SEQUENCE, INDEX, SYNONYM =자동으로 unique한 번호 생성공유 가능한 객체, 여러 테이블에서 사용 가능주로 기본키에 저장될 값 만드는 데 사용애플리케이션 코드 대체메모리 Cache되면 시퀀스 값 사용하는 효율성 향상 시퀀스 생성예제create sequence depts_seq start with 91 increment by 1 maxvalue 100 nocycle nocache;시퀀스 확인select seqence_name, min_value, max_value, increment_by, last_numberfrom user_sequences;select object_namefrom user_objectswhere object_type='SEQUENCE'; NEXTVAL과 CU..
[DB] View =테이블또는 다른 뷰를 기초로 하는 논리적 테이블view는 USER_VIEWS 딕셔너리에 저장된다. (select * from USER_VIEWS;)사용 목적1. 접근제한을 통한 자동 보안이 제공→ 일부 정보를 공유할 때 테이블 자체에 읽기 권한을 준다면 모든 행, 열이 조회가 된다.(보안 취약)view는 테이블의 일부 행, 열로 만들 수 있는데이렇게 정의한 view만 공유한다면 자동으로 보안이 제공된다 2. join구문을 이용하여 view를 만들고그 데이터로 부터 조회를 하면 훨씬 더 편리한다. 3. 같은 데이터를 다른 뷰로 나타낼 수 있으므로같은 데이터에 대해 동시에 여러 사용자의 다른 응용프로그램 요구를 지원 단순 뷰, 복합 뷰특징단순뷰복합뷰테이블 수12이상함수 포함XO데이터 그룹 포함XO뷰를 통한..
[DB] 제약조건 =테이블의 특정 컬럼에 원하지 않는 데이터가 입력 수정 삭제 되는 것을 방지 하기 위한 조건 🍏제약 조건 유형NOT NULL = null포함 안함UNIQUE KEY = 테이블의 모든 행에 대해 유일한 값을 가진 열PRIMARY KEY = 유일하게 테이블 각행 식별하는 키FOREIGN KEY = 열, 참조된 테이블의 열 사이 관계 적용CHECK = 참이어야 하는 조건 지정 🍏제약 조건 정의1️⃣ 열 레벨 제약조건=열 별로 제약조건 정의.테이블 생성하면서 제약조건 설정 예제create table emp4( empno number(4) constraint emp3_empno_pk primary key, ename varchar2(10) not null, sal number(7,2)..
[DB] 테이블 생성과 관리 table 이름 규칙 1. 문자로 시작. 1~12byte 길이 가질 수 있다.2. 이름은 영 대문자, 소문자, 숫자, _, $, # 만 포함 가능3. 다른 객체 이름과 중복되면 안됨4. 일반적으로 복수형이다. exmployees, departments...5. 이름 대소문자는 구별하지 않는다. " "로 묶을 경우에는 대소문자 구별한다.create table "Test"(c1 varchar2(1)); data type create table=(DDL) 테이블 생성. create table [schema.] 테이블명( 열이름 데이터타입, 열이름 데이터타입...); ex) dept, emp table만들기create table dept( deptno number(2), dname varchar2(14), lo..
[DB] Transaction =논리적인 작업의 단위. 분리되어서는 안된다 commit, rollback으로 적용하거나 종료할 수 있다DCL, DDL 실행으로 자동 커밋되기도 한다데이터베이스 비정상적으로 종료되면 변경사항이 취소된다.  1. 명시적 transaction=commit, rollback등으로 적용하거나 종료하는 것트랜잭션 논리 제어COMMIT데이터 영구 변경, 현재 트랜잭션 종료SAVEPOINTsavePoint지정ROLLBACK미결정 데이터 버리고 트랜잭션 종료.ROLLBACK TO 세이브포인트 이름 = 해당 savePoint와 그다음 변경들을 버린다 COMMIT, ROLLBACK 사용 장점데이터 일관성 제공데이터 영구적으로 변경하기 전에 데이터 변경 미리 확인 가능관련 된 작업을 논리적으로 그룹화하나의 트랜잭션이 끝난 ..
[DB] 데이터 조작(DML) =데이터 조작테이블에 새로운 행 추가(INSERT), 행 수정(UPDATE), 행 제거(DELETE) 등.. DML문장의 모음을 트랜잭션이라고 한다.( 트랜잭션=작업의 단위. ) =Create table as select. 테이블 복제.NOT NULL제약조건만 복사된다.Create table 테이블명 as select 테이블생성서브쿼리 예제테이블 구조, 데이터 생성create table emp1 as select * from employees;구조만 있는 테이블 생성- where 1=2는 항상 FALSE이므로 구조만 가지게 된다.create table emp2 as select * from employees where 1=2;  =테이블에 새로운 행을 추가🍏insert 구조insert into tabl..
[DB] 서브 쿼리 =다른 SELECT문장의 절에 내장된 SELECT 문장 서브 쿼리 구조select ___from tablewhere ___ (select ___ form table); 서브 쿼리 조건1. 서브 쿼리는 괄호로 둘러싸야 한다2. 비교 연산자의 오른쪽에 있어야한다.3. 서브 쿼리에서는 두 종류의 비교 연산자를 사용한다.단일 행 서브쿼리에는 단일 행 연산자를 사용해야하며다중 행 서브쿼리에는 다중 행 연산자를 사용해야 한다. 서브 쿼리 예제ex) Nancy보다 급여를 많이 받는 직원의 이름과 급여를 출력하라select first_name, salaryfrom employeeswhere salary>(select salary from employees where first_name='Nancy');  =내부 sel..