IT수업/데이터베이스 28

it 수업 6주차 (18) if, case when 조건문

● IF조건문 먼저 set@변수명 으로 변수를 지정해 준다. 그리고 select if(비교값, 참, 거짓); 으로 출력해준다. select if(@var1>@var2,concat(@var1,'이 더 큽니다'),concat(@var2,'이 더 큽니다')); 하면 var1이 var2보다 작으므로 거짓으로 'var2이 더 큽니다' 가 출력이 된다. buytbl에서 amount 값이 5보다 크면 우수고객 아니라면 일반고객이 나오도록 출력해볼 것이다. select * ,if(amount>5,'우수고객','일반고객') as '등급' from buytbl; 다음은 usertbl에 키가 170이상이라면 '170이상' 아니라면 '170미만'이 출력되도록 할 것이다. select *,if(height>=170,'170이상..

it 수업 6주차 (17) 내장 함수

● Concat(), Concat_ws() : 두 개 이상의 문자열을 결합한다. select concat('hello','-','world'); select concat('hello','-','world',5,6); select concat_ws("-",'hello','world',5,6); ● SubString(), SubString_index(): 문자 잘라내기 select substring("HELLO WORLD",6); 는 6번째 index부터 마지막 index까지 잘라내는 것이다. select substring("HELLO WORLD",1,7); 는 1번째 index부터 7번째 index까지 잘라낸다. ● Substring_index : 찾는 문자열이 n번째 등장하면 그 뒤 문자열부터는 버려짐 ..

it 수업 6주차 (16) 변수, LIMIT, 형 변환, 비교연산자

변수는 변하는 수로 수는 (Data, 자료)는 기본 선저장, 후처리를 원칙으로 한다. 또한 저장된 수가 특정상황에 있어 바뀔 가능성이 있는 경우 이 수를 변수라고 한다. @var에다가 각각 정수, 실수, 문자열을 지정해본다. 그리고 select로 출력해본다. set @var1 = 5; select @var2; select @var3; select @var1+@var2; select @var3, name, addr from usertbl; as로 열이름을 지정해주면 이렇게 나온다. select @var3 as 'TITLE', name, addr from usertbl; limit는 출력되는 결과 값 갯수를 제한 하는 것이다. PREPARE stmt_name FROM '출력할 ..

it 수업 6주차 (15) UNIQUE, CHECK, DEFAULT

UNIQUE는 중복은 허용되지 않지만 NULL값은 허용이 된다. 예시로 e-mail 등록이 있다. tbl_a테이블을 만드는데 email열에 unique조건을 줄 것이다. 이렇게 유니크가 설정된 테이블에 값을 넣어 볼 것이다. 우선은 e-mail열에 다른 값을 주고 apply를 해보면 성공적으로 값이 들어가는 것을 볼 수 있다. 하지만 e-mail 값에 같은 값을 넣어주면 실패하게 되는 것을 볼 수 있다. 또 다른 방법으로 unique 조건을 줘볼 것이다. 다음은 테이블을 미리 만든후 나중에 유니크를 설정하는 것이다. 유니크 설정 alter table 테이블명 add constraint 유니크제약조건 unique(열명); 테이블만 만들었을 때는 이렇게 유니크 설정이 되어 있지 않다. 여..

it 수업 6주차 (14) 제약조건 PK, FK

이번에는 제약조건에 대해 적어볼 것이다. 먼저 기본키(PK)를 본다. 이렇게 테이블 tbl_aa를 만들고 id 컬럼에 기본키를 설정해준다. 이 테이블의 구조를 살펴보면 이렇게 기본키가 설정된 것을 볼 수 있다. tbl_aa의 설정에 들어가서 index탭을 보면 자동으로 인덱스 설정이 되어있는 것을 볼 수 있는데 id열이 오름차순으로 되어 있는 것을 볼 수 있다. 그래서 여기에 값을 1이 아닌 2부터 넣어주고 나중에 1을 넣어도 pk가 오름차순으로 index되어 있기 때문에 1번 값이 먼저 나오게 된다. 또 다른 기본키를 설정하는 방법은 이런게 있다. 그러면 이렇게 기본키가 설정 된 것을 볼 수 있다. 다음은 두개의 열을 기본키로 설정하는 것이다. 이렇게 설정하면 id열과 name열에 기본키가 설정되는 것..

it 수업 6주차 (13) insert문

insert문을 공부해 볼 것이다. create table tbl_buy_copy4(select * from buytbl); 로 테이블을 복사하면 이런 테이블이 나온다. 여기에 insert into tbl_buy_copy4 values (8, 'aad', '운동화', '의류', 1000, 2), (9, 'aad', '운동화', '의류', 1000, 2), (10, 'aad', '운동화', '의류', 1000, 2), (11, 'aad', '운동화', '의류', 1000, 2); 를 입력하면 기존 테이블에 여러 값들이 들어가는 것을 볼 수 있다. 이번에는 넘버링 자동 증가를 해볼 것이다. 먼저 테이블을 하나 만들어 준다. 이때 기본값 열에 AI(auto increment)를 체크해준다. desc tbl_a..

it 수업 6주차 (12) Group By 절

※ group by로 묶어줄 땐 group by 뒤에 들어오는 열의 순서가 중요하다. 순서가 바뀌면 출력되는 표도 바뀌게 된다. 묶어준 열은 나타낼 표에도 적어줘야한다. 즉, 나누고자 하는 그룹의 컬럼명을 SELECT절과 GROUP BY절 뒤에 추가하면 된다. 또한 집계함수와 함께 사용되는 상수는 GROUP BY 절에 추가하지 않아도 된다. ex) select 열이름1, 열이름2, 집계함수 from 테이블명 group by 열이름1, 열이름2; ● 총합 구하기 sum(열이름) 하면 총합을 구할 수 있다. select userid, sum(amount) as '구매총량' from buytbl group by userid; ● 평균 구하기 avg(열이름)하면 평균 값을 구할 수 있고 truncate(값, 소..

it 수업 6주차 (11) SQL문 2 (ORDER BY, DISTINCT, 복사)

※ 조회 ● Select Order By order by는 값을 정렬시키는 명령문이다. 기본은 오름차순이다, ● asc : 오름차순 ● desc : 내림차순 select * from usertbl order by mDate asc; 는 mDate를 기준으로 오름차순이다. select * from usertbl order by mDate desc; 은 mDate를 기준으로 내림차순하는 것이다. order by하면 같은 값에 한해 내림차순이되는데 뒤에 ', name'이 붙으면 같은 값을 오름차순으로 변경해준다. ● distinct : 단일 열 값을 기준으로 중복값 없애기(단, 같은 열에 같은 값이 들어있어도 다른 열에 다른 값이 들어있으면 안 사라짐) select distinct addr, name from..

it 수업 6주차 (10) SQL문 (SELECT)

우선 만들어진 db데이터를 가져올 것이다. db 샘플 데이터는https://www.mysqltutorial.org/getting-started-with-mysql/mysql-sample-database/ 여기서 가져오면 된다. 다운받은 샘플db가 있는 폴더에서 cmd를 입력해 cmd창으로 들어가 mysql -u root -p를 클릭해 접속해준다. 그리고 shopdb를 만들어 받아온 샘플 데이터베이스를 source 코드를 이용해 가져온다. 이어서 다른 db도 가져올것이다. 이 db는 db명이 이미 선언되어 있어서 다른 방식으로 가져올 것이다. 이 파일에서 마우스 오른쪽을 눌러 메모장으로 연결해준 뒤 ctrl+a로 전체 선택을 해 복사하여 workbench로 붙여넣기 해주면 된다. 붙여넣기는 새로운 sql창..

it 수업 6주차 (9) ER다이어그램으로 리버싱하기

draw.io 로 만든 다이어그램을 만들어 볼 것이다. 먼저 학생 테이블이다. 그리고 강의 테이블이다. 강의 테이블과 학생테이블은 다대다의 관계로 묶여 있으므로 중간에 수강신청 테이블을 넣어 연결해 줄 것이다. 이렇게 설정을 한 뒤 foreign key로 가서 외래키를 설정해 준다. 외래키를 설정 할 때는 foreign key option을 CASCADE로 해주고 외래키의 이름은 'fk_외래키가 포함된 테이블_기본키가 포함된 테이블'로 해주면 된다. 그래서 registration테이블에 lecture테이블의 기본키를 가져오려면 'fk_registration_lecture_id'해주면 된다. 다음은 강사 테이블과 강의 테이블을 연결 해줄 것이다. 먼저 강사 테이블을 만든다. 그리고 강의테이블과 다대다연결이..