IT 공부/MySQL 8

함수, 트리거

함수 - 사용자가 만드는 함수 - 복잡한 프로그램도 가능하다 - 무조건 in이다. 그래서 in을 선언할 필요가 없다. - return으로 반환 - select문안에서 호출하여 활용한다. - 함수안에서는 지정프로시저, 재귀함수를 사용할 수 없다. create function 함수명(매개변수 데이터타입) return 데이터타입 begin // SQL문 end$$ drop function 함수명 show global variables like 'log_bin_trust_function_creators'; set global log_bin_trust_function_creators = 'on'; delimiter $$ create function 강의실배정1(classNum char(4)) returns var..

IT 공부/MySQL 2022.07.18

저장 프로그램

저장프로그램 - sql문은 비절차적 언어 - 다른 응용프로그램처럼 조건 반복등을 자유롭게 구현할 수없다. - 절차적으로 처리할 수 있도록 기능을 제공하는데 이것이 저장프로그램이다. - 저장프로시저, 함수, 트리거, 커서 구성 - 정의부분 : 프로그래밍명 입출력 매개변수를 명시하는 부분 - 본문부문 : begin [변수선언] [초기화] SQL 문 --- if, case, repeat 등을 함께 구현 end 변수 : 세션변수(@변수) - 값을 대입하면 데이터타입을 자동지정 지역변수- 반드시 데이터타입을 선언 #======================================================= select * from 학생; delimiter $$ create procedure 학생내역() -..

IT 공부/MySQL 2022.07.15

view

뷰(view) . 정보보호 및 관리를 위해 필요한 정보를 추출하여 가상테이블 형태(view)로 제공 . 실제 테이블을 기준으로 생성된다 . 작업결과를 임시로 보관 . 복잡한 질의를 간소화 . 뷰를 기초로 또 다른 뷰를 생성할 수도 있다 . 뷰도 하나의 객체로 관리된다 . 목적 - 데이터베이스 보호 - 데이터의 독립성을 높이기 위함 - 다양한 구조의 테이블 효과 - 작업의 단순화 등 . 생성 create view 뷰이름 as select ... from ~ where ~ . 뷰 작업시 주의사항 - 원본에 not null 존재한다면, view 에서도 필히 입력해야 한다. - 그룹함수를 사용한 뷰에서 데이터 입력은 제한된다. - 뷰에서 가공한 데이터는 원본에 입력될 수 없다. - 뷰끼리 조인한 뷰에서는 데이터..

IT 공부/MySQL 2022.07.14

join 2

#강의번호 K031을 수강하고 있는 학생의 이름, 소속학과, 전화번호, 수강신청시각을 조회하시오. select a.학생이름, a.소속학과, a.전화번호, b.신청시각 from 학생 as a inner join 수강신청 as b on a.학생번호 = b.학생번호 where b.강의번호 = 'K031'; select * from 강의; #강의번호, 강의이름, 이수구분, 강의를 담당하는 교수의 이름, 직위를 조회하시오. select a.강의번호, a.강의이름, a.이수구분, b.교수이름, b.직위 from 강의 as a inner join 교수 as b on a.교수번호 = b.교수번호 ; #+ 컴퓨터과학과 교수만 출력 select a.강의번호, a.강의이름, a.이수구분, b.교수이름, b.직위 from 강..

IT 공부/MySQL 2022.07.14

형변환, group, union, join

형변환 ; 다른 작업에 사용하기 위해 자료의 타입을 반환해야 하는 경우가 있다. convert(x, 타입) : x를 지정된 타입으로 변환 - binary, char, date, datetime, decimal,inerger, time # 학생이름에 '님', 나이에 '세', 학년에 '학년'을 붙여서 출력하시오 select 학생이름, 나이, 학년 from 학생; select concat(학생이름,'님') 학생이름, concat(convert(나이,char), '세') 나이, concat(convert(학년,char),'학년') 학년 from 학생; desc 학생; Group정의 ; 같은 종류의 데이터를 묶어서 검색하는 것 - 단순 그룹질의 + 함수적용 그룹질의 + Group By ~ Having 조건 . a..

IT 공부/MySQL 2022.07.13

select, 함수

select 컬럼명, 컬럼명, 컬럼명,... from 테이블 select * from 테이블 [where 조건] select [distint] 컬럼, 컬럼, 컬럼... from 테이블1 [inner join] [outer join] 테이블2 [inner join] [outer join] [on 조인 조건식] [where 조건식 [중첩질의]] [group by 컬럼, 컬럼, .. [having 조건식]] [order by 컬럼, 컬럼, .. [asc|desc]] . select절 : 검색결과에 포함된 컬럼명들 . from절 : 검색해올 테이블. 만약 두개 이상의 테이블에서 조인할 경우, ON절에 정의된 조건식에 의해 조인 테이블의 별명(Alias) 처리 - as 별명 --> A.이름, B.이름 . on절 ..

IT 공부/MySQL 2022.07.13

테이블 수정, 인덱스

테이블 수정 ALTER TABLE 테이블명 ADD COLUMN 컬럼명 데이터타입 [NOT NULL|NULL][DAFAULT값] AFTER 컬럼명, DROP COLUMN 컬럼명, CHANGE COLUMN 수정전컬럼명 수정후컬럼명 데이터타입 [NOT NULL|NULL][DEFAULT값] # 강의 테이블에 깁본값을 3으로 갖는 int 데이터타입의 '이수학점' 칼럼을 추가하시오. 강의번호 뒤에 추가하시오. use test; alter table 강의 add column 이수학점 int NULL default 3 after 강의번호 ; # 강의 테이블의 '이수학점' 컬럼의 이름을 '수강학점'으로 변경하시오. alter table 강의 change column 이수학점 수강학점 char(4); # '수강학점' 컬럼..

IT 공부/MySQL 2022.07.12

테이블 생성

-- 한줄주석1 # 한줄주석2 /* 여러줄주석 ctrl+enter 한줄실행 ctrl+shift+enter 선택범위실행 */ show schemas; use myschool; show tables; desc 강의; desc 교수; desc 학생; create database test; use test; drop database test; use test; /* SQL분류 DDL(데이터 정의어) : create(생성), drop(삭제), alter(변경) - 테이블을 정의(생성,삭제,변경) DML(데이터 조작어) : insert, select, update, delete - 테이블에 들어있는 데이터 조작 DCL(데이터 제어어) : grant, revoke - 접근권한부여나 회수 데이터타입 정수 - tinyi..

IT 공부/MySQL 2022.07.11