728x90
반응형

전체 글 70

데이터베이스 뷰 (VIEW)

뷰 (VIEW) 뷰는 일반 사용자 입장에서는 테이블과 동일하게 사용하는 개체이다. 쉽게 생각하자면 뷰는 특정한 정보들만 따로 담아놓은 가상의 테이블이라고 생각하면된다. 형식 CREATE VIEW AS [원하는 정보의 SELECT 문] 뷰의 장점은 보안성과 쿼리의 재활용과 단순화 이다. 만약 테이블안의 중요한 내용이 들어있는경우 다른정보를 확인하려고할때 그 중요한 내용까지 출력할 수 있다. 그걸 방지하기위해 원본 테이블은 막아놓고 뷰를 생성해 필요한 정보들만 출력하는 것이다. 또한 뷰는 재활용하기에 좋다 특정 쿼리를 자주 사용하는데 그 쿼리가 복잡하다면 효율성이 떨어진다. 그래서 그 쿼리를 뷰로 정의해놓고 필요할때 마다 뷰만 출력하면 된다.

MariaDB 2023.10.13

데이터베이스 제약조건(기본키,외래키,CHECK,DEFAULT)

기본키 제약 조건 (개체 무결성) 테이블에 존재하는 많은 행의 데이터를 구분할 수 있는 식별자를 '기본 키'라고 부른다. 기본 키에 입력되는 값은 중복될 수 없으며 NULL 값이 입력될 수 없다. 예를 들어 인터넷사이트에서 회원가입을 할때 아이디값은 절대 중복 될 수 없고 NULL값도 들어가선 안된다. 이 아이디값이 기본키로 설정되어 있다. 형식 CREATE TABLE문에 PRIMARY KEY라는 예약어를 넣어주면된다. CREATE TABLE ( id CHAR(8) PRIMARY KEY , NAME VARCHAR(10), birth INT ); 만약 PRIMARY KEY를 지정하면서 키의 별칭을 지어주려면 마지막행에 CONSTRAINT PRIMARY KEY 별칭 (테이블명) CONSTRAINT는 생략해도..

MariaDB 2023.10.13

데이터베이스 UNION/ UNION ALL/ NOT IN / IN

UNION / UNION ALL UNION은 두 쿼리의 결과를 행으로 합치는 것을 말한다. 형식 SELECT 문장1 UNION [ALL] SELECT 문장2; 대신 SELECT1 과 SELECT2의 결과의 열의 개수가 같아야 하고, 데이터 형식도 각 열단뒤로 같거나 호환되는 형태여야 한다. 1은 INT인데 2는 CHAR 이라면 오류가 발생한다. 또한 열이름은 첫번째 SELECT문의 열 이름을 따른다. UNION 사용하면 중복된 열은 제거되고 데이터가 정렬되어 나오며, ALL을 사용하면 중복된 열까지 모두 출력된다. NOT IN / IN NOT IN은 첫번째 쿼리의 결과 중에서, 두 번쨰 쿼리에 해당하는 것을 제외하기 위한 구문이다. 만약 사용자테이블(usertbl)에서 전화번호를 등록하지않는 사용자를 제..

MariaDB 2023.10.12

데이터베이스 CROSS JOIN(상호조인), SELF JOIN (자체조인)

CROSS JOIN(상호조인) CROSS JOIN은 한쪽 테이블의 모든 행들과 다른 쪽 테이블의 모든 행들을 조인하는 기능이다. 그래서 결과 개수가 두 테이블 개수를 곱한 개수가된다. 테이블1의 첫행이 테이블2의 모든 행과 조인되고 그다음 테이블1의 두번째행이 테이블2의 모든 행과 조인되는 것을 반복하는 것이다. 만약 테이블1이 10개의 행이고 테이블행이 12개면 120개의 결과가 되는것이다. 그래서 CROSS JOIN 을 '카티션 곱' 이라고도 부른다. 형식 SELECT FROM CROSS JOIN ; [WHERE 검색 조건] CROSS JOIN에는 ON구문을 사용할 수 없지만 WHERE 조건을 달 수 있다. SELECT COUNT(*) FROM usertbl CROSS JOIN buytbl; /* S..

카테고리 없음 2023.10.12

데이터 베이스 조인 (Join), 내부 조인 (INNER Join), 외부 조인 (OUTER Join)

조인 (Join) 조인이란 두개 이상의 테이블을 서로 묶어서 하나의 결과 집합으로 만들어 내는 것을 말한다. 데이터베이스의 테이블은 중복과 공간 낭비를 피하고 데이터 무결성을 위해 여러 개의 테이블로 분리하여 저장한다. 그리고 테이블 끼리는 서로 관계를 맺고 있다. 1대1 또는 1대다 관계이다. 이러한 관계에서 공통된 테이블로 합쳐 값들을 출력하려고 할때 쓰이는것이 조인이다. 그중 가장 많이 사용하는것이 내부조인이다. 내부 조인 (INNER Join) 형식 selct from INNER JOIN ON [WHERE 검색조건] 여기서 INEER JOIN을 JOIN으로 써도 내부조인으로 인식한다. 사용자 테이블이 존재한다고 봤을때 사용자 테이블의 ID는 기본키로 지정이되어있어 한사람이 여러개의 물품을 구매할때..

MariaDB 2023.10.12

MariaDB 내장 함수 (수학 함수, 날짜 및 시간 함수, 시스템 정보 함수)

수학 함수 ABS(숫자) 숫자의 절대값을 반환한다. CEILING(숫자), FLOOR (숫자), ROUND (숫자) 올림, 내림, 반올림을 계산하여 반환한다. CONV(숫자, 원래 진수, 변환할 진수) 숫자를 진수로 변환하여 반환한다. SELECT CONV('AA',16,2), CONV(100,10,8); 2진수로 변환한 '10101010' 과 8진수로 변환한 '144'를 반환한다. MOD(숫자1, 숫자2) 또는 숫자1 % 숫자2 또는 숫자1 MOD 숫자2 숫자1을 숫자2로 나눈 나머지값을 구한다. SELECT MOD(15,10), 15%10, 15 MOD 10; 전부다 5를 반환한다. POW(숫자1, 숫자2), SQRT(숫자) 거듭제곱값 및 루트 값을 반환한다. POW()와 POWER()는 동일한 함수..

MariaDB 2023.10.11

MariaDB 내장 함수 (제어 흐름 함수, 문자열 함수)

제어 흐름 함수 IF(수식 , 참 , 거짓) 수식이 참 또는 거짓인지 결과에 따라서 2중 분기한다. SELECT IF (100>200, '참이다', '거짓이다'); 거짓이 출력된다. IFNULL(수식1, 수식2) 수식1이 NULL이 아니면 수식1이 반환되고, 수식1이 NULL이면 수식2가 반환된다. SELECT IFNULL(NULL,'널이군요'), IFNULL(100,'널이군요') 첫번째는 '널이군요'가 출력되고 두번째는 100이 출력된다. NULLIF(수식1, 수식2) 수식1과 수식2가 같으면 NULL을 반환하고, 다르면 수식1을 반환한다. SELECT NULLIF(100,100), NULLIF(200,100); 첫번째는 NULL, 두번쨰는 200 반환 CASE ~ WHEN ~ ELSE ~ END CA..

MariaDB 2023.10.11

데이터베이스 WITH절과 CTE

WITH절과 CTE WITH 절은 CTE를 표현하기 위한 구문이다. CTE는 ANSI-SQL99 표준에서 나온것이다. CTE는 비재귀적과 재귀적으러 나뉜다. 재귀적은 잘사용되지않으니 비재귀적으로 배워보자 비재귀적 CTE는 말그대로 재귀적이지 않는 CTE다. 단순한 형태이며, 복잡한 쿼리 문장을 단순화 시키는 데 적합하게 사용될 수 있다. 형식 WITH CTE_테이블이름(열이름) AS ( ) SELECT 열이름 FROM CTE_테이블 이름; select말고 update 등도 가능하지만 주로 사용되는것은 select이다. 형식이 생소하지만 위에를 뗴버리고 select문만 생각해도된다. 기존에 실제 DB에 있는 테이블을 사용했지만, CTE는 바로 위의 WITH절에서 정의한 'CTE_테이블이름'을 사용하는 것만..

MariaDB 2023.10.11

데이터베이스 SQL 분류

SQL 분류 DML DML은 데이터를 조작(선택, 삽입, 수정, 삭제) 하는 데 사용되는 언어이다. DML 구문이 사용되는 대상은 테이블의 행이다. 그러므로, DML을 사용하기 위해서는 꼭 그 이전에 테이블이 정의되어 있어야 한다. INSERT, SELECT, UPDATE, DELETE 가 해당한다. 또 트랜잭션이 발생하는 SQL도 DML이다. DDL 데이터베이스, 테이블, 뷰, 인덱스 등의 데이터베이스 개체를 생성/삭제/변경 하는 역할을 한다. CREATE, DROP, ALTER 등이 존재한다. DDL은 트랜잭션을 발생시키지않아 되돌림(ROLLBACK), 완전적용(COMMIT)을 시키는 것이 아닌 즉시 DB에 적용된다. DCL 사용자에게 어떤 권한을 부여하거나 빼앗을때 주로 사용하는 구문이다. GRAN..

MariaDB 2023.10.11

데이터베이스 테이블 생성 및 INSERT, UPDATE, DELETE

DataBase 생성 형식 CREATE DATABASE 데이터베이스이름; 사용 USE 데이터베이스이름 ; 데이터베이스를 생성하였다면 데이터를 담는 표인 테이블을 생성하여 값들을 저장해야한다. Table 생성 형식 CREATE TABLE 테이블명 ( 열이름 타입 (키지정도 가능) ID VARCHAR(8) PRIMARYKEY ... ); 여기서 ID는 속성명이고 VARCHAR는 문자이다. CHAR도 있는데 CHAR은 고정문자열, VARCHAR는 가변문자열이다. VARCHAR는 최대값을 지정하지만 크기가 변한다. 이제 테이블을 생성하였다면 테이블안의 데이터를 집어넣어야한다. 그것이 INSERT문이다. 테이블삭제 DROP TABLE 테이블명; INSERT문 형식 INSERT INTO 테이블명(속성명, ...) ..

MariaDB 2023.10.10
728x90
반응형