mysql 11

[Java] 이클립스, mySQL, 웹페이지 연결하기 1)mySQL 환경세팅

자바 언어도 간봤고 mySQL 쿼리문들도 간봤으니 몇번의 포스팅에 걸쳐 간단하게 CRUD가 가능한 웹페이지 요소에 대한 백엔드 조성을 해볼까한다. 이번 포스팅은 기본 환경 세팅이다. 먼저 mySQL에 접속하여 DB와 유저를 생성하자. 파랗게 가린 부분에는 원하는 암호를 넣으면 된다. 모든 권한을 주자. 참고로, Command Line Client로 mySQL을 바로 사용할 수도 있지만 CMD창에서도 접속 가능한데, 굳이 매번 경로를 입력해넣는게 귀찮다면 환경변수를 설정해주면 된다. 내친 김에 환경변수도 설정하자. 윈도우 설정으로 들어가고, 시스템, 좌측하단에서 정보, 우측에서 고급 시스템 설정 상단 고급 탭으로 가면 하단에 환경 변수 버튼이 있다. 시스템 변수란에서 Path를 누르고 편집을 클릭하자. 옆..

[Database] MySQL. Primary Key, Foreign Key

1. Primary Key DB에서 테이블을 생성할 때 하나 이상의 항목을 Primary Key(기본키)로 설정해줘야한다. 기본키는 해당 테이블에서 가지는 기본적인 값이다. 행을 고유하게 구분해주는 정보라고 볼 수 있을 것이다. 예를 들자면 쇼핑몰의 DB에 회원 테이블에서 회원번호가 기본키가 될 수 있겠다. 기본키로 설정한 항목은 자동적으로 unique(중복 불가), not null 제약조건을 가지게된다. 백문이불여일용. 실사용을 해보자. 예시 활용을 위해 적당히 만들어본 테이블. course 테이블을 생성하는 쿼리에서 primary key(co_num) 구문을 통해 co_num 컬럼을 기본키로 설정해주었다. desc course로 테이블 정보를 확인해보면 not null 제약조건이 기본으로 붙은걸 확인..

[Mac] MySQL 터미널 접속하기

윈도우로 MySQL 커맨드라인 접속은 앱을쓰면 바로 되지만 맥에서는 어째 그게 안되는 것 같다. 터미널을 켜고 명령어를 입력해서 접속해줘야한다. 어려울건 없지만 간단히 정리해둔다. 터미널은 켜면 반기는 화면이다. 참고로 테마 변경은 터미널 - 환경설정으로 들어가서, 프로파일 탭에서 프로파일 테마를 세팅하고, 일반 탭에서 시작 시 열기에 원하는 프로파일을 선택하면 다음 실행 시 부터 적용된다. 터미널을 실행하고 우선 디렉토리를 mysql의 bin 폴더로 옮겨간다. cd /usr/local/mysql/bin mysql 설치 경로 변경이 가능한지 모르겠는데, 별다른 세팅없이 기본설치를 했다면 위의 경로에 설치되었을 것이다. 해당 경로로 들어갔으면 ./mysql -u root -p 를 입력해준다. 이후 암호를 ..

Mac 2022.10.22

[Database] MySQL. Procedure 기본 활용

SQL에서 procedure란 자바의 메소드와 여러모로 유사해보인다. 말하자면 일련의 쿼리를 마치 하나의 함수처럼 실행하기 위한 쿼리의 집합이다. 한번의 구문으로 여러 기능들을 처리할 수 있기에 시간이 단축되고 유지보수에 편리하다는 장점이 있지만 처리성능이 떨어지고 재사용성 면이 좋지않다는 단점도 있다. procedure를 생성하는 구문은 trigger와 비슷하나 매개변수가 있다는 것이 특징이다. delimiter // create procedure [프로시저 명](in_변수명, 리턴타입(in_mode) 1: 값이 있을 경우 | 0: 값이 없을 경우) begin 쿼리문 실행 end// delimiter ; 사용 시엔 call [프로시저 명](매개변수 값); 으로 호출한다. 바로 활용해보자. 전에 만들었던..

[Database] MySQL. Trigger 기본 활용

Trigger. 방아쇠라는 명사의 뜻도 있지만 촉발시키다는 동사의 뜻도 있다. SQL에서 Trigger란 정해진 이벤트에 연이어 곧바로 실행되는 구문을 말한다. 이벤트가 발생했을 때 데이터의 무결성을 지키기 위해 사용된다. 아래는 Trigger에 쓰이는 주요 문법이다. - 변수선언 declare 변수명 자료형 기본값; set 변수명 = 값; new: 이벤트가 발생한 행의 최신 데이터 old: 이벤트가 발생한 행의 이전 데이터 - 생성 전 if not exists [이름] : 이름이 기존에 존재하지 않을 때만 생성함 drop [table/trigger/procedure etc] if exists [이름]: 이름이 기존에 존재할 경우 삭제 delimiter: 문장의 끝을 다른 기호로 표시할 때 사용 - 생성..

[Database] MySQL. Join문 활용하기

SQL에서는 join문이 많이 활용되는 것 같다. Join은 데이터를 서치하기 위해 두 개 이상의 테이블을 연결할 때 쓴다. Join에도 Inner join, natural join, outer join 등 다양한 형태가 있는데, 본문에서는 기본적인 활용법을 알아본다. Join을 통한 데이터 서치의 기본문 구조는 다음과 같다; select [컬럼명] from [컬럼의 테이블] join [서치될 컬럼을 가진 테이블] on [foreign key로 연결된 컬럼명] = [foreign key로 다른 테이블에 연결된 컬럼명] where [조건]; 이렇게만 봐선 아리송할 수 있다. 실제 활용을 보자. 활용을 위해 우선 univ 데이터베이스와 그 안에 들어갈 여섯가지 테이블을 생성한 후 데이터까지 추가해줬다. 위의..

[Database] MySQL. SQL 내장함수

SQL 내에서는 마치 엑셀처럼 여러 함수를 사용할 수 있는데 실제 사용법도 엑셀과 유사하다. - 산술 산술연산 +-*/ mod(값1, 값2) = 값1을 값2로 나눈 나머지 round(값1, 값2) = 값2의 소수자리수까지만 표시. 음수의 경우 해당 자리에서 반올림 format(값, 소수자리수): 천단위 구분기호 사용 celling(값, 자리수): 올림 floor(값, 자리수): 버림 sqrt(값) / power(값1, 값2): 루트/제곱 rand(): 0~1 사이의 난수 발생 abs(값): 절대값 - 문자 concat(문자, 문자): 문자열 연결 length(숫자): 숫자의 길이 length(문자): 문자의 길이(한글은 한글자에 3, 영문 알파벳은 1. 한글길이에는 char_length 사용) repla..

[Database] MySQL. 데이터 수정하기

데이터 수정 뿐만 아니라 테이블의 틀도 수정해본다. 1. 데이터 수정 성실한 학생인 박군이 싱가포르로 이민을 간다. 주소를 바꿔주자. 명령문 쪼개기; update = 데이터를 업데이트한다 student = student 테이블에 있는 데이터 중 set addr = 'Singapore' = addr을 싱가포르로 where name = 'Park' = name 값으로 'Park'을 갖는 항목의 같은 방법으로 응용도 가능하다. 영어과목에서 학생들의 단체 컨닝이 파악되었다. 재시험에 앞서 모두를 0점 처리하여 강한 선례를 만들어보자. 정의의 철퇴가 내려진걸 확인할 수 있다. 2. 테이블 수정 이제 테이블을 수정해보자. 2-1) 테이블 필드 추가 테이블에 생년월일 필드를 추가로 넣어본다. alter table [..

[Database] MySQL. 데이터 찾기

student 테이블에 한땀한땀 데이터를 넣었으니 이제 조건을 주고 꺼내보자. 먼저, 점수가 90 이상인 우등생들을 찾아보면 어떨까. 명령문을 뜯어보자면, select = 선택한다 * = 모든 정보를 from student = student 테이블에서 where score>=90 = score가 90이상인 값을 갖는 항목을. 이 때 *를 써서 모든 정보를 뽑아냈지만, 일부만 조회하는 것도 가능하다. num, name, score만 나오도록 입력했다. 재밌는건 명령문에 마치 엑셀 함수처럼 count, avg, round, if, max, min, and, or 등을 사용할 수 있다는 점이다. 이름에 특정 캐릭터가 들어가는 친구들을 찾고 싶다면 like문과 %를 사용하면 된다. 예시는 e의 앞뒤로 %를 뒀기..

[Database] MySQL. 기본 DB 생성, 연습용 데이터 넣어보기

MySQL 인스톨을 마치고 MySQL Command Line Client를 실행한 후 인스톨 시 설정한 패스워드를 입력하면 커멘드라인 사용이 가능하다. show databases; 를 입력하면 저장된 데이터베이스들을 확인 가능하다. 캡쳐된 이미지의 db들은 인스톨 패키지에 들어있는 기본 db들이다. 학습을 위해 dbPractice라는 db를 생성하였다. show databases로도 확인 가능하다. use dbpractice;를 입력하여 경로를 잡고, student라는 테이블을 생성해줬다. 필드는 학번, 이름, 과목, 주소, 점수이다. 학번은 1에서부터 자동증가, 이름과 점수는 null일 수 없음, 기본키는 학번으로 설정해줬다. 설정사항은 desc student; 명령어로 확인 가능하다. DB도, 테이블..