view
·
DB
view하나 이상의 테이블에서 원하는 데이터를 선택하여 새로운 가상 테이블로 만들어 주는 것데이터 자체를 포함하고 있지는 않고 단지 테이블에 있는 데이터를 보여줄 뿐이다 뷰 장점데이터 베이스의 구조를 변경하여도 테이블에 의존하는 어플리케이션을 변경할 필요가 없음 -사용자에게 필요없는 정보를 숨길 수 있음 뷰생성create view 뷰이름 as select 구문 with check option; ex.create view art_board_list as select b_suject, u_name, reg_date from art_board join art_member on b_id = u_id;
DB 암호화, 관리자 계정 접근, 데이터베이스 백업
·
DB
데이터베이스에서 지원하는 암호화 기능암호화의 필요성기밀성을 보장하려면 데이터가 외부에 노출되지 않도록 해야 한다. 그러나 완벽한 보안은 현실적으로 어려운 부분이기 때문에, 노출이 되더라도 문제가 없도록 데이터를 암호화하는 방법을 사용한다.1. 단방향 암호화 (Hashing)단방향 암호화는 복호화가 불가능한 암호화 방식이다. 주로 비밀번호와 같은 민감한 정보를 저장할 때 사용된다. 대표적으로 MD5, SHA-1, PASSWORD() 함수 등을 사용한다.하지만 MD5와 SHA1은 충돌문제가 밝혀져 안 쓰고 현재는 SHA-256을 쓰고 있다.select sha2('hello',0);0은 256의미 그냥 256 쳐도 되고 256,384,512중에 고를 수 있음 MD5 암호화MD5('데이터');SHA-1 암호화S..
저장 함수 (Stored Function), 트리거 (Trigger),MariaDB 접속 (로그인)
·
DB
저장 함수 (Stored Function)정의저장 함수는 여러 SQL문을 하나의 실행 단위로 묶어서 저장하는 기능. 저장 프로시저와 비슷하지만, 큰 차이점은 반드시 결과값을 반환해야 한다. 즉, 함수는 실행 후 반드시 값을 반환하며, 그 반환된 값을 다른 SQL문에서 사용할 수 있다.구문문자 변경저장 함수를 생성할 때도 구문문자를 변경해야 한다.delimiter //저장 함수 생성저장 함수는 CREATE FUNCTION 문을 사용하여 생성한다. 함수명, 입력값, 반환 데이터 타입을 정의하고, 함수 내에서 실행할 SQL문을 작성한 후 RETURN으로 결과값을 반환한다.기본 형식CREATE FUNCTION 함수명 (입력값) RETURNS 데이터타입BEGIN -- 실행문들 RETURN 반환값;END..
procedure (저장 프로시저)
·
DB
저장프로시저(Stored Procedure):명령문 여러개를 하나로 합쳐서 실행 할 수 있게 해 놓은 것 특징복잡한 SQL문을 하나로 묶음사용자 친화적사용자가 DB에 대한 복잡한 정보를 몰라도, 프로시저만 실행함으로써 DB 제어가 가능.검증되지 않은 프로시저는 주의제대로 검증되지 않은 프로시저는 예상치 못한 결과를 초래할 수 있으므로, 신중하게 사용해야 한다.구문문자 (Delimiter)구문문자(Delimiter)는 SQL문이 끝났음을 컴퓨터에 알려주는 기호. MySQL에서는 기본적으로 세미콜론(;)을 구문문자로 사용. 그러나 프로시저를 생성할 때, SQL문 내부에서도 세미콜론(;)을 사용하기 때문에, 구문문자를 다른 문자로 바꾸어야 한다.구문문자 변경delimiter //구문문자 원상복구프로시저 생성 ..
DCL - grant, revoke +commit, rollback(transaction)
·
DB
grant show grants;현재 로그인한 계정의 권한 확인 show grants for '계정명'@'위치정보';특정 계정의 권한 확인권한 확인show grants for 'root'@'localhost';'' 안써도 되긴 함. 1. 권한 종류usage기본 권한(초기권한)계정을 생성 시 처음으로 설정되는 기본 권한all privileges모든 권한 권한 추가 GRANT privileges[(columns)] ON item TO ‘계정명'@’접속경로' IDENTIFIED BY ‘비밀번 호’ WITH GRANT OPTION grant all privileges on shop to kuser1@localhost;ex. shop이라는 db의 모든 권한을 주는 명령어grant select(depart..
변수
·
DB
변수 - 변하는데이터가저장될수있는공간- 메모리공간을빌려이름을붙여놓고원하는데이터를저장해서사용 사용자가 입력한 값을 더하는 프로그램 int a;a = 사용자 입력값;a+고정되지 않고 변하는 값을 임시로 프로그램을 동작하는 동안 사용하기 위해서 만든 것이 변수이다. 임시로 내가 쓰기 위해서 만든 것이다.@num을 만들고 더하면 그 안의 데이터가 출력된다. 현재의 @변수를 확인할 수 있다.select @num; 마리아 db에서 변수 초기화 set @변수값=값;변수명 앞에 @가 들어감 set @num=1000;select no + @num from naver_db.member; #no 컬럼의 모든 데이터에 1000을 더하여 출력select * from naver_db.member where age > @nu..
transaction 트랜잭션 / autocommit 기능 키고 끄기
·
DB
트랜잭션이란?Transaction (거래,처리)쪼갤 수 없는 업무 처리의 최소 단위모든작업은반드시한꺼번에완료가되야하며그렇지않은경우에는한꺼번에취소되어야함하나라도 실패하면 마치 작업하지 않은 것처럼 모든 동작을 취소, 복구하고 전으로 돌아가야 한다transaction 예시 기본적으로 autocommit이 설정되어 있음 -> 내가 명령어를 쳤을 때 하나라도 오타가 나면 작업이 안되지만 한번 완료된 것은 되돌릴수가 없음. 내가 삭제하거나 수정하는 것만 가능. 이것도 트랜잭션의 예시트랜잭션 핵심 속성,기능,특징 원자성(Atomicity): 트랜잭션은 모두 완료되거나, 전혀 실행되지 않아야 한다. 즉, 중간에 실패하면 모든 변경 사항이 롤백된다일관성(Consistency): 트랜잭션 실행 전후의 데이터 상태가 일관..
서브쿼리 sub query 란 무엇인가, 의미, 기본, 종류, 예시, 주의점
·
DB
서브쿼리 sub query쿼리문 안에 쿼리문을 작성하여 쿼리문을 완성시키는 기능하나의 SQL문에 포함되어 있는 또 다른 SQL문고정되어 있지 않거나, 알려지지 않은 조건에 근거한 값을 검색하는 select 문장 작성시 유용select, update, insert, delete 까지도 전부 사용 가능 조건의 인자값이 상수(시험 볼 때 0~100점 사이의 수만 나올 수 있다. 이처럼 절대 변하면 안되는 값. 어떤 조건에서 이 범위는 절대 변하지 않는다는 것)가 아닌 경우 -> 고정이 안 되어 있는 경우. 레벨이 가장 높은 사람이 몇인지 알 수없다면? 정해진 수가 없다면? 나이가 가장 많은 사람 select max(s_level)from sword; -> 100이라고 한다면 100을 모르면?select * ..
MariaDB - schema스키마/ information_schema
·
DB
schema-데이터 베이스의 전체적인 구조와 그 구조를 표현하는 설정 정보, 출력되는 데이터 전체를 하나의 스키마라고 함 -데이터베이스의 전체적인 구조를 바라보는 관점에 따라 내부 스키마, 개념 스키마, 외부 스키마로 나뉨-db의 구조,방식을 스키마라고 한다-권한 설정을 통해 같은 DB의 같은 테이블이라도 서로 다른 테이블로 인식하게 만드는 것을 schema라고 한다 관리자가 보는 db의 구성을 개념스키마사용자별로 다르게 보이는 db의 구성을 외부스키마 🔸 개념 스키마 (Conceptual Schema)관리자 관점에서 바라본 데이터베이스 구조전체 DB 구조와 논리적인 설계🔸 외부 스키마 (External Schema)사용자나 프로그램이 바라보는 구조각 사용자 또는 애플리케이션이 접근 가능한 범위에 ..
join, union
·
DB
Join join: 두개 이상의 테이블에서 중복이거나 특정 연관있는 데이터를 기반으로 데이터를 출력, 조회하는 기능 여러개의 테이블의 데이터를 가져와 마치 하나의 테이블인 것처럼 출력하는 기능 아무 데이터나 가져와서 출력하는 기능은 아니고 연관있는 데이터를 조건으로 지정하여 출력하는 기능 컬럼을 기반으로 출력특정 테이블의 컬럼의 데이터와 다른 데이터의 컬럼의 데이터를 가져와 마치 하나의 테이블처럼 붙여서 출력 Join 종류- INNER JOIN(내부 조인) : 교집합OUTER JOIN(외부 조인) : 합집합 LEFT OUTER JOIN(왼쪽 외부 조인)RIGHT OUTER JOIN(오른쪽 외부 조인)FULL OUTER JOIN(완전 외부 조인) INNER JOIN(내부 조인)MariaDB > SEL..