본문 바로가기

반응형

자바스프링웹공부(2024)/마이에스큐엘

(15)
2024.09.04. 데이터정의어(DDL) - View - 뷰(view)란?  하나이상의 테이블을 기반으로 생성은 되었으나 물리적으로 존재하지 않고  DB사전에 정의만 되어 있는 가상의 논리적인 테이블- 뷰 사용 목적 : 보안성, 공간 효율성, 편의성- 뷰와 관련된 DDL : create view, alter view, drop view (1) 뷰 생성(create view)[문법] create view 뷰명 as select 컬럼1, 컬럼2, 컬럼3 from 테이블명 where 조건문; - 뷰 생성 예제 : employee 테이블에서 원하는 컬럼뽑아와서 view 생성하기(department_id가 200이상만 가져옴.)create view deptvuas select * from departmentswhere department_id > 200; - 뷰를 ..
2024.09.04. 테이블정의어(DDL) - table, 제약조건 * 데이터정의어(DDL) - Table- 데이터 정의어(DDL)란??  테이블 자체를 생성,수정,삭제함.- object(table, view, index 등등)를 생성, 수정, 삭제하는 명령어- Table과 관련된 DDL구문 종류 : create table, alter table, drop table, truncate table  (1) 테이블 생성(create table) [문법] create table 테이블명 ( 컬럼명1 데이터타입(컬럼사이즈), 컬럼명2 데이터타입(컬럼사이즈) [default 기본값], 컬럼명3 데이터ㅏ입(컬럼사이즈) [제약조건], 컬럼명n 데이터타이(컬럼사이즈)); - 데이터타입 종류  1) 숫자  -  정수형 : int, bigint                 ..
2024.09.02. 제약조건. alter. * tabld에 선언된 제약조건 조회하는 방법  * primary key 조합값에 선언하기 - pk는 테이블당 한번만 한번만 선언할수있지만 하나만 선언하는 것이 아니다.    => 여러컬럼의 조합값에 pk 선언가능하다.- 조합값에 pk를 선언할때는 무조건 테이블레벨의 문법을 사용해야한다.* foreign key - 컬럼2개의 조합값에 fk 선언을 해야한다. (그러면 부모컬럼도 조합값을 참조해야한다.)- mysql 에서는 fk만 테이블 레벨 문법을 애용하고, 나머지 제약조건들은 컬럼레벨의 문법을 많이 활용한다.- 외래키 제약조건으로 자기 자신 테이블이나 다른 테이블의 특정 컬럼(pk, uk)을 참조하는 제약조건- fk 제약조건이 선언된 컬럼 : 자식 컬럼- fk 제약조건이 참조하는 컬럼 : 부모 컬럼- 자..
2024.08.29. 트랜잭션, 트랜잭션 제어어(TCL) * 트랜잭션과 트랜잭션 제어어(TCL)* 트랜잭션이란? 하나의 논리적인 작업단위- 하나이상의 DML이 모여서 하나의 트랜잭션이 구성됨.- 트랜잭션제어어(TCL)  1. commit : 변경작업을 저장  2. rollback : 변경작업을 취소  3. savepoint : 트랜잭션 진행 중 되돌아갈 지점(기점)- 첫번째 DML이 시작되면 새려운 트랜잭션이 시작됐구나 생각하면된다. 내가 select하면 임시데이터를 보여주고 다른 사람은 원본 데이터를 보게됨. 내가 commit을 하면 임시가 아니라 모든 사람이 수정데이터를 보게됨. commit 하고나면 돌이킬 수 없다.- 워크벤치에 Auto-commit transaction 기능이 켜져있다. 그럼 DML이 시작디자마자 오토커밋이 바로 시작되면서 명령어 하나에..
2024.08.28. 데이터조작어(DML) - insert, update, delete * 데이터 조작어(DML)란?- 테이블에 데이터를 삽입, 수정, 삭제하는 명령어- DML의 종류 : insert, update, delete (1) 데이터 삽입(insert) [문법] insert into 테이블명 [(컬럼1, 컬럼2, 컬럼3, ...)]  values (값1, 값2, 값3, ...); - insert 작업시 테이블명 뒤에 컬럼리스트를 생략한 경우에는 values 절 뒤에 기본컬럼 순서대로 모든 값을 나열해야한다.- insert into 에서 컬럼명 생략하는 경우 : values에서 desc나 select * 실행시 나오는 컬럼순서대로 모두 작성해야한다.- insert 작업시 테이블명 뒤에 컬럼리스트를 작성한 경우 : values의 값 리스트와 순서/개수 등이 일치해야 함.- insert..
2024.08.13. 서브쿼리(subquery) - 단일행 서브쿼리, 다중행 서브쿼리 * 서브쿼리란?- 쿼리구문 안에 또다시 쿼리구문 이들어가 있는 형태. 모르는 값을 기준으로 쿼리구문을 작성해야 하는 경우 사용됨. - group by 절을 제외한 쿼리구문 전체에 사용 가능함. - 서브쿼리 유형 : 단일행 서브쿼리, 다중행 서브쿼리  [ 문법 ]select 컬럼1, 컬럼2, 컬럼3...from 테이블명[where 좌변 = ( select 컬럼. from 테이블명 [where 조건문] ) ] [group by 컬럼명] [having 조건문] [order by 컬럼명];-- Q. employees 테이블에서 Abel보다 급여를 더 많이 받는 사원은??select salary from employees where last_name = 'abel'; -- 아벨의 월급select e..
2024.08.13. 그룹함수, group by, having 절 * 그룹함수와 그룹화 *(1) 그룹함수 - 그룹함수란(=다중행함수)?  행그룹을 조작해서 하나의 결과값을 반환함. - 그룹함수 종류 : sum, avg, min, max, count  - 그룹함수 특징 : null값은 제외하고 작업함. - min(행그룹) : 행그룹에서 최소값을 반환함. 모든 데이터타입에 사용 가능함. - max(행그룹) : 행그룹에서 최대값을 반환함. 모든 데이터타입에 사용 가능함.-- 숫자select min(salary) as "최소 급여", max(salary) as "최대 급여" from employees;-- 날짜select min(HIRE_DATE) as "가장 오래된 입사일", max(HIRE_DATE) "가장 최근 입사일" from employees;-- 문자select m..
2024.08.12. 단일행함수 - 2. - 변환함수, 제어흐름함수, 시스템정보함수. select last_name, ifnull(commission_pct, 'No Commission')-- (==)select last_name, if(commission_pct is null, 'No Commission', commission_pct)-- (==)select last_name, if(commission_pct is not null, commission_pct, 'No Commission')from employees; (1) 변환함수 - date_format(날짜, 형식) : 날짜를 형식에 맞게 출력함. select now(), date_format(now(), '%Y/%M/%d') as Now;select now(), date_format(now(), '%y_%M_%d %W %H:%..

반응형