(학) (공) (디)
01.12(2일차)
만석이
2024. 1. 12. 21:47
1교시
---릴레이션(테이블)--- - 표(테이블)을 릴레이션이라 부름 - DB에서 정보를 구분하여 저장하는 기본 단위 - 동일한 DB 내에서는 같은 이름을 가진 릴레이션이 존재할 수 없음 - 행과 열로 표현 ---애트리뷰트(속성)--- - 테이블(릴레이션)의 속성 / 하나의 열은 하나의 속성 정보를 표시 - 테이블 내부에 저장될 데이터(튜플)들의 이름을 의미 - 내가 저장하고 싶은 데이터(튜플)의 항목 - 레코드들을 설명해준다. ---차수(degree)--- 한 릴레이션에 들어 있는 애트리뷰트의 수 --- 튜플(tuple, 레코드, 데이터)--- - 릴레이션의 각 행 - 한 마디로 릴레이션에 실제적으로 들어 있는 값(데이터) - 한 릴레이션의 포함된 튜플의 개수는 계속 변함 ---도메인(Domain)---<타입과 옵션?> - 릴레이션의 포함된 각각의 속성들이 가질 수 있는 값들의 집합 - 릴레이션의 저장되는 데이터 값들이 본래 의도했던 값들만 저장되고 관리하기 위해 사용 - EX) 성별 -> ‘남’, ‘여’ 만 저장(‘남‘, ‘여‘가 도메인, 그 외의 것은 저장 X) ---스키마--- - DB의 구조와 제약 조건 - DB 구성 시 데이터가 갖는 값의 제약 조건 - 튜플의 형태 또는 모양 / 외부, 개념, 내부로 나뉨(추후에 다시 설명) ---숫자형 자료형--- - INT=INTEGER(정수형) • 일반적인 숫자 자료형 • 부호가 있는 경우 -> -2147483648 ~ 2144483647 • 부호가 없는 경우 -> 0 ~ 4294967295 • 4byte 크기를 가진다 - FLOAT(실수형) • 최소 +_1.175494351E-38 ~ 최대 +_3.402823466E_38 • 4byte 크기를 가진다 DOUBLE(실수형) • 최소 ±1.7976931348623157E-308 ~ 최대 ±2.2250738585072014E+308 • 8byte 크기를 가진다 ---문자형 자료형----- CHAR • CHAR(0)도 지원 • CHAR(N)에서 실제 값이 N만큼의 글자 수보다 작을 때 남는 자릿수는 공백 • 지정한 크기만큼 공백을 붙여 모두 사용(저장) • 1부터 최대 255의 자릿수를 지원, CHAR(N)에서 N으로 지정한 용량만큼 byte 사용 • “입력한 글자 수“ byte 사용 VARCHAR(효율이좋다) • 저장할 수 있는 길이(N)은 1 ~ 255 글자 수 지정 • VHACHAR(N)에서 사용한 길이까지 저장 / 남는 자리 사용 X • CHAR 형보다 기억 장치를 효율적으로 사용 긴 글 일때 사용 -------------------------- - BLOB • 최대 65535개의 문자를 저장 • “지정한 용량“ + 2 byte 용량 사용 - TEXT • BLOB과 같음 ----------------------------- ---날짜형 자료형------ DATE • ‘1001-01-01’ ~ ‘9999-12-31’ 저장 가능 • 저장 용량은 3byte • ‘YYYY-MM-DD’와 같은 형식 • Y 연도 / M 월 / D 일 DATETIME • 날짜와 시간을 같이 저장 • ‘1001-01-01 00:00:00’ ~ ‘9999-12-31 23:59:59’ 저장 가능 • 저장 용량은 8byte • ‘YYYY-MM-DD HH:MM:SS’와 같은 형식 • HH 시간 / MM 분 / SS 초 TIMESTAMP • ‘1970-01-01 00:00:00’ 이후부터 초를 숫자로 저장하는 자료형 • 저장 용량은 4byte • 약 40억 초를 저장할 수 있음(2037년 까지) - TIME • ‘`838:59:59’ ~ ‘838:59:59’ 저장 가능 • 저장 용량은 3byte • ‘HH:MM:SS’ 같은 형식 YEAR • 연도만 저장하는 자료형 • YEAR(N)와 같은 형식 • N은 2와 4를 지정할 수 있음 • N이 2인 경우에 값의 범위는 70 ~ 69 • N이 4인 경우에 값의 범위는 1970 ~ 2069 • 저장 용량은 1byte ---문제1--- 테이블이름 :d4 속성6개 at1(int) at2(date) at3(float) at4(varcher(20)) at5(char(20)) at6(text) #Day2라는 데이터가 있으면 삭제하고 없으면 실행문을 스킵하겠다. drop database if exists days2; |
2교시
---auto_increment--- 숫자 값이 자동으로 들어올 때 마다 1씩 증가 - 옵션의 종류 • NOT NULL : NULL값(아무것도 없는 값)이 들어가지 않아야 함 • UNIQUE : 유니크한 값(해당 테이블에서 하나인)이 들어가야 함 • PRIMARY KEY : NOT NULL과 UNIQUE의 조합 / 기본 키라고 부름 • FOREIGN KEY : 다른 테이블과 매치되는 데이터를 찾기 위한 참조 키 값 • CHECK : 값이 정해진 조건에 충족하는지 체크 • DEFAULT : 아무것도 쓰지 않으면 DEFAULT로 정해진 값을 갖는다 #첫번째 실습 drop table d13; create table d13( id int primary key auto_increment, name varchar(20) not null, age int check(age>1 and age<151) not null, weight float, height float, email varchar(30) default"NoEmail"); select*from d13; insert into d13(name,age,height) values('a',100,1.23); |
3교시
#열삭제 alter table d14 drop email; #열추가 alter table d14 add sample int ; alter table d14 add age int check(age>1 and age <151) ; #이름변경 alter table d14 rename column id2 to id; #데이터 타입변경 alter table d14 modify column id int not null; #이름과 타입 전부 변경 alter table d14 change name email varchar(20) not null; #테이블명 변경 alter table d15 rename to d14; #기본키 추가 alter table d14 add primary key(id); #기본키 삭제(notNull값은 남아있다) alter table d14 drop primary key; #실습2 create table member( id int primary key auto_increment, name varchar(10) not null, age int check(age>0 and age<151)not null, email varchar(20) default"NoEmail" ); # 실습3 create table order_product( orderno int primary key auto_increment, product varchar(10) not null, price int check(price>0) not null , member_id int, foreign key(memer_id) references member(id)); #실습4 create table teacher( id int primary key auto_increment, name varchar(10) not null, skil varchar(10) default"None" not null, email varchar(30) default"Noemail" not null); #실습5 create table lecture( id int primary key auto_increment, name varchar(20) not null, t_id int, n_student int not null, foreign key(t_id) references teacher(id)); #실습6 create table student( id int primary key auto_increment, name varchar(10) not null, l_id int, tel varchar(20) default"NoTel" not null, foreign key(l_id) references lecture(id)); |