데이터베이스 16

MySQL에서 admin 계정만들기

use mysql; create user '어드민유저이름'@'%' identified by '어드민 비번' ; 이유저를 @(네트워크에 접속하게 해주겠다) 비밀번호 치고 grant all on 데이터베이스이름.* to '어드민유저이름'@'%'; 데이터베이스이름에 어드민유저이름을 관리할 권한을 주겠다 그후 새로운 커넥션 만들기 1. hostname : 내가 사용하는 aws rms주소 에 입력 2.username : 내가 방금 만든 id 3.password : 아까 만든 비밀번호 입력후 ok Test Connection까지 누르면 끝

Api 개발/flask 2023.01.04

MySQL 새로운컬럼생성,조건문: case/if함수

새로운 컬럼생성(case) select *, case when 조건 then 결과 else '@@' end as 컬럼이름 from 테이블; case when 일때 then 결과 (이 결과가 나오고) else 결과 (아닐때 이결과가 나옴) end as 컬럼이름 case when 년도가 2000년보다 크거나 같으면 then '모던 북' else 아니면 '20세기 북' end as 컬럼이름 '장르' if함수 select * , if (조건,맞는결과,아닌결과) from 테이블; 컬럼생성 select *, case when 조건 then 결과 else '@@' end as 컬럼이름 from 테이블; if함수 select * , if (조건,맞는결과,아닌결과) from 테이블; 둘다 컬럼이기때문에 select 문에..

카테고리 없음 2022.12.08

foreign key 연결된 데이터 삭제 cascade

데이터베이스에서 id로 연결된 테이블중에서 특정 id데이터를 삭제를 해야한다면 데이터를 공유하고 있는 테이블마다 데이터를 먼저 삭제를 해줘야한다. 이렇게 삭제를 지시를해도 남아있는데 foreign키로 공유되고 있는 데이터를 삭제를 해준다면 하지만 이과정은 너무나도 복잡하고 귀찮기 때문에 이렇게 cascade를 선택해 준다면 바로삭제 가능

카테고리 없음 2022.12.08

MySQL 테이블 합치기 join/left join

테이블 합치기 MySQL에서 데이터끼리 합치는 방법 테이블간 연결을 위해선 당연히 공통되는 부분이 존재 해야한다. 공통되는 부분은 보통 id컬럼으로 정하고 다른 테이블에 첫번째 id컬럼을 인식할 컬럼을 만들어주면된다. 먼저 이렇게 테이블하나를 만들었다면. 이렇게 첫번째 테이블의 id와 join이 가능한 컬럼을 만들어줘야한다. 이때 주의 해야하는게 Unsigned 즉 부호 없음을 체크를 해줘야 한다는것인데 당연히 id값엔 음수가 들어갈수없기 때문에 저부분이 체크가 되어 있어야함. 이름은 원하는대로 적고 연결해줄 테이블을 찾은다음 연결해줄 컬럼을 눌러주면됨 select * from 테이블1 join 합처질 테이블 on 테이블.id = 합처질테이블.합치기위해만든_id; 테이블1과 합처질 테이블을 join 하고..

데이터베이스 2022.12.08

MySQL datetype 컬럼, 년/월/일 호출

컬럼설정 DATE 날짜 출력 TIME 시간 출력 DATETIME 모든시간 날짜 출력 시간이 들어있는 테이블 insert into people2 (name,birthdate,birthtime,birthdt) values ('Mike','1990-11-11','10:07:35','1990-11-11 10:07:35'), ('Larry','1972-12-25','04:10:42','1972-12-25 04:10:42'); 이름과 /년월일/시간/ 년월일시 날짜정보(일 만 가저오기) select name,day(년월일컬럼) from 컬럼; 요일 출력 select name,dayname(년월일컬럼) from 테이블; 요일을 숫자로 출력 select name,dayofweek(년월일컬럼) from 테이블; 일요일:1..

데이터베이스 2022.12.07

MySQL group by된 데이터 가공 : group by having

데이터베이스안에서 테이블에 카테고리컬 데이터를 그룹화한 다음 그 그룹별로 가공하고 싶을때 단순하게 생각했을때 그룹바이를 하고 그아래 where 쓰고 조건을 쓰면 될꺼 같지만 오류가 난다 예를들어 년도별 stock_qauntity 의 평균값이 70보다 큰 책들의, 년도와 평균값을 보여주세요 란 지문이 있다면 년도별 그룹바이 하고 stock_qauntity의 평균이 70보다 큰 조건을 where에 넣으면 될꺼 같지만 오류가 나게된다 select 컬럼 from 테이블 group by 카테고리컬컬럼 having 조건 ; group having select 컬럼 from 테이블 group by 카테고리컬컬럼 having 조건 ;

데이터베이스 2022.12.07

MySQL 집계하기,최대,최소,합계,평균 : group by/max()/min()sum()/avg() /sub query

집계하기 select 컬럼 from 테이블 group by 카테고리컬럼 ; 카테고리컬 데이터를 하나로 묶어서 원하는 컬럼 데이터를 호출할수 있다. 그룹할 컬럼을 적을때 컬럼명을 다 적어주면 다 묶어줌 최대/최소값 select max(컬럼) from 테이블; order 말고 sub query를 통해 최대값 호출하기 select * from 테이블 where 컬럼 = (select max(컬럼) from 테이블) ; 서브쿼리: 명령 안에 또 명령을 넣는것으로 조건을 wher 안에 넣어주면 된다 이때 다른 조건은 ()를 통해 먼저 실행하게 해야함 이렇게 가능 합계 select sum(컬럼) from 테이블; 평균 select avg(컬럼) from 테이블; 집계하기 select 컬럼 from 테이블 group..

데이터베이스 2022.12.07

MySQL distinct(유니크)/order by(정렬하기)/limit(조회한계설정)/like(문자검색)

데이터를 유니크하게 만드는 키워드 테이블안 어떠한 컬럼안 데이터가 카테고리컬 데이터 일경우 이 데이터를 유니크하게 보고 싶다. select distinct 컬럼 from 테이블; 중복되는 데이터를 하나로 합침 정렬하기 테이블위에 특정 컬럼을 중심으로 데이터를 정렬하고 싶을때 select * from 테이블 order by 컬럼 asc or desc; 정렬시 중요한건 정렬한 컬럼외에 다른 같은데이터도 따라 나오는게 중요 기본 디폴트는 asc(오름차순) 이고 desc를 입력시 내림차순으로 정렬이 된다 order by 로 정렬시킬 컬럼을 as로 만든 이름을 적는다 하더라도 똑같이 제대로 인식을 한다. 무슨소리냐면 order by라는 명령어 위에 일어나는 명령이 먼저 실행되고 그후 order by가 실행되는 식..

데이터베이스 2022.12.07

MySQL 문자열 컬럼의 데이터를 가공하는 함수 concat/substring/replace/reverse/upper/lower/char_length

컬럼 합치기 1) 기본형 select concat(컬럼 , 컬럼 ) 합칠때 컬럼과 ,로 공백이나 다른문자를 끼어 넣을수 잇음 2) concat ws select concat_ws( 컬럼과 컬럼을 합치는방법 ,컬럼명, 컬럼명) 문자열 일부 가지고오기 select substring(컬럼 , 시작숫자, 끝나는숫자 ) 데이터베이스의 시작숫자는 1이다 뒤에서 부터 셀때는 음수로 (-n) 세면됨 문자열 일부 내용 바꾸기 select replace(컬럼 , '기존문자' , '바꿀문자') 문자열 역순으로 배치 하기 select reverse(컬럼명) 문자열 갯수 구하기 select char_length(컬럼) 대소문자로 변환 select upper(컬럼) select lower(컬럼) 모든 컬럼 뒤에 as를 붙이고 원..

데이터베이스 2022.12.06

MySQL CRUD 작업 create(생성)/read(읽기)/update(추가)/delete(제거)

create insert into 테이블 (컬럼) values ('데이터') 테이블안 어떤 컬럼안에 어떠한 데이터를 집어넣을때 사용 read select *(컬럼) from 테이블 select명 다음 * 오면 모든 컬럼, 특정 컬럼을 불러오고 싶을땐 컬럼명을 적어주면 된다 1)전체 테이블 2) 특정 컬럼 update update 테이블 set 컬럼 = '바꿀내용' where 조건 만약 ~이라면(where) 이컬럼에 이 내용을 이렇게 바꿔라(set) 이 테이블에서(update) delete delete from 테이블 where 컬럼 조건 delete from 테이블만 적을경우 모든 데이터가 사라지지만 테이블의 형태는 남아잇게 된다 조건을 달아줄경우 그조건에 맞는 데이터만 삭제 create insert i..

데이터베이스 2022.12.06