Language/SQL

[SQL] 시스템, 객체, 역할을 통한 권한 관리
·
Language/SQL
시스템 권한 관리 시스템 권한은 데이터베이스 관리자가 부여하는 것으로 테이블 생성, 삭제, 유저 계정 생성 등의 권한이다. 즉 데이터 정의어(DDL)과 관련된 권한이라 생각하면 편하다.시스템 권한 부여GRANT system_privilege TO user_name;여기서 system_privilege는 앞서 말한 시스템 권한으로 CREATE TABLE 이나 CREATE VIEW 등이 있다. 시스템 권한 취소REVOKE system_privilege FROM user_name; 객체 권한 관리 객체 권한 부여GRANT privilege ON object_name TO user_name [WITH GRANT OPTION];부여 가능한 주요 권한으로는 INSERT, DELETE, UPDATE, SELECT, ..
[SQL] 인덱스 생성 및 삭제
·
Language/SQL
생성 및 삭제 생성CREATE [UNIQUE] INDEX [index_name]ON table_name (column1 [ASC | DESC], column2 [ASC | DESC], ...);SQL은 대소문자 구분을 하지 않지만 가독성을 위해 키워드를 대문자로 작성하였다. 이때 []로 둘러쌓인 부분은 생략 가능하다.간단하게 테이블과 속성을 지정하고 인덱스 이름으로 인덱스를 만드는 문법이다. 재구성ANALYZE TABLE table_name;대량의 데이터 변경이 있을 때 사용된다. 삭제DROP INDEX index_name;인덱스를 삭제한다.
[SQL] 간단한 내장 SQL(ESQL, embedded SQL) 소개
·
Language/SQL
내장 SQL 임베디드 SQL은 C, Java, Python 등 일반 프로그래밍 언어 코드 내에 SQL 문장을 삽입하여 데이터베이스와 상호작용할 수 있도록 하는 방식이다. 즉, 일반 프로그래밍 언어 코드에서 직접 SQL 쿼리를 작성하고 실행할 수 있도록 해주는 기능을 말한다.정적 SQL을 사용하므로 컴파일 타임에 SQL 문장이 고정되며, 프로그램이 실행되면서 SQL을 실행한다. 호스트 언어와 SQL 간의 연결을 위해 특별한 프리컴파일러 또는 API가 필요한 것이 특징이다.여러 행을 결과로 반환하는 SELECT 문을 프로그램에서 사용하려면 여러 행을 한 번에 하나씩 가리키는 포인터인 커서(cursor)가 필요하다. 간단 예시 C에서를 예로 들어 설명하면 일반 명령문과 구별하기 위해 EXEC SQL을 SQL ..
[SQL] 뷰(view) 생성, 수정, 삭제
·
Language/SQL
뷰 (View) 다른 테이블을 기반으로 만들어진 가상 테이블로 데이터를 실제로 저장하지 않고 논리적으로만 존재하는 테이블이지만 일반 테이블과 동일한 방법으로 사용한다. 하나 이상의 테이블에서 데이터를 조회하기 위해 SELECT 쿼리 결과를 저장한 객체라 이해하면 편하다.뷰 기반으로 새로운 뷰를 만드는 것도 사용 가능하다. 뷰는 일반적인 테이블처럼 활용할 수 있는 경우가 많지만, 제한적인 경우에만 데이터 수정이 가능하다.복잡합 SQL 로직을 단순화하여 사용할 수 있기 때문에 사용의 간편성, 재사용 용이성에서 장점이 있다. 특정 사용자에게 뷰만 보이도록 관리하여 데이터 보안 유지에도 도움이 된다. 특정 속성만 보이도록 수정도 가능하기 때문에 가독성 면에서도 우수하다. 뷰 생성 CREATE VIEW view_..
[MySQL] 주요 내장함수
·
Language/SQL
숫자 함수 함수설명ABS(num)숫자의 절댓값을 반환CEIL(num)주어진 숫자보다 크거나 같은 최소의 정수를 반환 (올림)FLOOR(num)주어진 숫자보다 작거나 같은 최대의 정수를 반환 (내림)ROUND(num, m)숫자를 소수점 m자리까지 반올림하여 반환LOG(n, num)밑이 n인 로그값을 반환POWER(num, n)num의 n제곱 값을 반환SQRT(num)숫자의 제곱근을 반환SIGN(num)숫자의 부호를 반환 (음수는 -1, 양수는 1, 0은 0)COS(num)num 라디안의 코사인 값을 반환EXP(num)자연로그의 밑 e의 num 제곱 값을 반환LN(num)자연로그 값을 반환MOD(num1, num2)num1을 num2로 나눈 나머지를 반환RAND()0 이상 1 미만의 난수를 반환 문자 함수 ..
[SQL] 데이터 조인(join)
·
Language/SQL
데이터 조인 이너 조인 (inner join)SELECT [ALL | DISTINCT] column_listFROM table1[INNER] JOIN table2ON table1.col = table2.col;두 테이블의 속성을 통해 교집합만을 가져온다. INNER를 생략하고 사용할 수도 있다.JOIN을 아래로 추가하여 더 많은 테이블을 조인할 수도 있다. 예를 들어서 주문번호에 따른 고객이름과 제품이름을 확인하고 싶다면 다음과 같은 SQL 문을 활용할 수 있다. 이때 기준이 FROM 절의 테이블이 되고 JOIN 절의 테이블은 FROM 절의 테이블과 조인된다.SELECT 주문.주문번호, 고객.고객이름, 제품.제품이름FROM 주문JOIN 고객ON 주문.고객번호 = 고객.고객번호JOIN 제품ON 주문.제품번..
[SQL] 데이터 삽입, 검색, 수정, 삭제
·
Language/SQL
데이터 삽입 직접 삽입INSERT INTO table_name [(column_list)]VALUES (values_list);SQL은 대소문자 구분을 하지 않지만 가독성을 위해 키워드는 대문자로 작성하는 게 좋다. 이때 []로 둘러쌓인 부분은 생략 가능하다. INTO 키워드와 함께 튜플을 삽입할 테이블의 이름과 속성의 이름을 나열한다. 속성 리스트를 생략하면 테이블을 정의할 때 지정한 속성의 순서대로 값이 삽입된다. VALUES 키워드와 함께 삽입할 속성 값들을 나열하는데, 이때 INTO 절의 속성 이름과 VALUES 절의 속성 값은 순서대로 일대일 대응되어야 삽입이 정상적으로 이뤄진다. 서브 쿼리 활용 삽입INSERT INTO table_name [(column_list)]SELECT ... ;SEL..
[SQL] 테이블 생성, 수정, 삭제
·
Language/SQL
테이블 생성 CREATE TABLE table_name ( column1 data_type [NOT NULL] [DEFAULT default_value], column2 data_type [NOT NULL] [DEFAULT default_value], ... [PRIMARY KEY (column_list)], [UNIQUE (column_list)], [FOREIGN KEY (column_list) REFERENCES other_table(other_column_list)] [ON DELETE option] [ON UPDATE option], [CONSTRAINT constraint_name] [CHECK (check_condition)]);여기서 []로..
[SQL] 비교 연산자 및 논리 연산자
·
Language/SQL
비교 연산자 기본연산자의미=같다다르다!=다르다 (표준 아님)>크다>=크거나 같다작다작거나 같다 추가연산자의미BETWEEN a AND ba 이상 b 이하IN (value_1, value_2, ...)목록에 포함LIKE유사한 문자열 비교IS NULLNULL인지 검사IS NOT NULLNULL이 아닌지 검사 LIKELIKE 키워드는 % 혹은 _ 와 함께 사용하는데 예를 들어서 다음과 같이 사용한다.예시의미LIKE 'data%'data로 시작하는 문자열LIKE '%data'data로 끝나는 문자열LIKE '%data%'data를 포함하는 문자열LIKE 'data____'data로 시작하는 8자 길이(data 포함하여) 문자열LIKE '____data'data로 끝나는 8자 길이(data 포함하여) 문자열LIKE..
애스터로이드
'Language/SQL' 카테고리의 글 목록