SQL 16

SQL(6) 제약 조건

1. 제약조건(CONSTRAINTS): 테이블에 데이터가 입력되거나 수정될 때의 규칙- 데이터 무결성을 지키기 위해 5개의 제약 조건이 존재한다. (NOT NULL, UNIQUE, PRIMARY KEY, FOREIGN KEY, CHECK 제약조건)(1) NOT NULL 제약조건 : NULL값을 허용하지 않음CREATE TABLE if NOT EXISTS user_notnull( user_no INT NOT NULL, user_id VARCHAR(255) NOT NULL, user_pwd VARCHAR(255) NOT NULL, user_name VARCHAR(255) NOT NULL, gender VARCHAR(3), phone VARCHAR(255) NOT NULL, email VARCHA..

SQL (4) TRANSACTION

1. TRANSACTION: 데이터베이스에서 한 번에 수행되는 작업의 단위- 한 번에 수행되는 작업에서, 만약 한 쿼리에 문제가 생기면 그 작업 전체를 다시 처음으로 돌려야 한다.  그런데 기본적으로 commit이 자동으로 수행되도록 설정되어 있으므로(autocommit 활성화가 default)  비활성화 해준 뒤 테스트를 한다.SET autocommit = 1; # autocommit 활성화SET autocommit = ON; # autocommit 활성화SET autocommit = 0; # autocommit 비활성화SET autocommit = OFF; # autocommit 비활성화START TRANSACTION;SELECT * FROM tbl_menu;INSERT INTO t..

SQL (3) DML

1. DML(Data Manipulation Language): 데이터 조작 언어. 테이블에 값을 삽입/수정/삭제(1) INSERT: 새로운 행 추가# menu_code의 default값이 auto_increment이므로, NULL을 입력해도 값이 들어간다.# 특정 값을 입력해주면 그 값에 문제가 없는 한 INSERT가 되고, # auto_increment는 (특정값+1)부터 다시 계속된다.INSERT INTO tbl_menuVALUES( NULL, '바나나해장국', 8500, 4, 'Y'); - NULL 허용 가능컬럼 또는 auto_increment 컬럼을 제외하고 컬럼을 명시적으로 지정해서 INSERT할 수 있다.INSERT INTO tbl_menu( menu_name, menu_price, ..

SQL 실습 (2)

* 실습은 앞의 SQL(2) 게시물에서 이용한 데이터베이스를 이용해 진행했다.# 1번. 이름에 '형'자가 들어가는 직원들의 사번, 사원명, 부서명을 조회하시오.(1행)SELECT a.emp_id , a.emp_name , b.dept_title FROM employee a LEFT JOIN department b ON a.dept_code = b.dept_id WHERE a.emp_name LIKE '%형%'; # 2번. 해외영업팀에 근무하는 사원명, 직급명, 부서코드, 부서명을 조회하시오.(9행)SELECT a.emp_name , c.job_name , b.dept_id , b.dept_title FROM employee a JOIN departme..

SQL(2) JOIN, GROUPING, ROLL UP, SUBQUERIES, SET OPERATORS

실습은 아래 코드를 이용해서 진행했다. (SQL(1) 게시글에 있는 SCRIPT도 이용)-- Dropping existing tables if they existDROP TABLE IF EXISTS EMPLOYEE;DROP TABLE IF EXISTS DEPARTMENT;DROP TABLE IF EXISTS JOB;DROP TABLE IF EXISTS LOCATION;DROP TABLE IF EXISTS NATIONAL;DROP TABLE IF EXISTS SAL_GRADE;-- DDL for Table DEPARTMENTCREATE TABLE DEPARTMENT ( DEPT_ID CHAR(2), DEPT_TITLE VARCHAR(35), LOCATION_ID CHAR(2) NOT NULL, ..

SQL (1) SELECT, ORDER BY, WHERE, DISTINCT, LIMIT

실습은 아래 코드를 이용해서 진행하였다.-- 테이블 삭제DROP TABLE IF EXISTS tbl_payment_order CASCADE;DROP TABLE IF EXISTS tbl_payment CASCADE;DROP TABLE IF EXISTS tbl_order_menu CASCADE;DROP TABLE IF EXISTS tbl_order CASCADE;DROP TABLE IF EXISTS tbl_menu CASCADE;DROP TABLE IF EXISTS tbl_category CASCADE;-- 테이블 생성-- category 테이블 생성CREATE TABLE IF NOT EXISTS tbl_category( category_code INT AUTO_INCREMENT COMMENT '..