본문 바로가기

반응형

아옳옳의 코딩공부

(96)
2021-06-06안드로이드 스튜디오 (SQLite 사용하기 2) 헬퍼 클래스 @SQLiteOpenHelper 클래스 유지 보수가 더 좋기 때문에 SQLiteDatabase 보다 자주 사용이 된다. 인스턴스를 생성해주어야 사용이 가능하다 . @public SQLiteOpenHelper (Context context , String name , SQLiteDatabase.CursorFactory factory, int version) 인스턴스 생성시 전달해야하는 값인데 (1 컨택스트 , 2 db이름 , 3 커서 팩토리 (그냥 null로 씀) , 4,임의로 만들어준 버전 @ 인스턴스 생성을 하면 자동으로 콜백이 되는 메소드들 ( 보통 데이터베이스는 생성자로 생성됨) onCreat -> 생성 될때 딱 한번만 호출 되고 호출후 onOpen호출함 onOpen -> 다시 실행했을..
2021-06-03안드로이드 스튜디오 (SQLite 사용하기) 내가 공부한 MySQL은 서버쪽에서 다루는 DB이다. 서버 컴퓨터가 포맷되거나 초기화 혹은 DB를 삭제 하지 않는 한 영구적으로 남아 있다 . 하지만 안드로이드 스튜디오에서 사용할 수 있는 SQLITE는 로컬 DB라고 해서, 서버가 필요없이 클라이언트 안에 내장으로 들어가 있는 DB를 말한다. 기존 DB와 다른점은 앱이 삭제되면 해당 DB도 삭제되는것 외에는 별다른 차이가 없어서 많이 사용한다. 그렇다고 다른 DB를 사용 못하는 것도 아니라 사용이 가능하다! SQLITE사용 해보기 ( 아래에 실습한 것들 있음 같이 참조 하면 이해하자) @ 데이터 베이스를 열거나 삭제할 수 있는 메소드 # public abstract SQLiteDataBase openOrCreateDatabase ( 디비 이름 , 모드설..
2021-06-02자바공부(Mysql 연동하기 ) 드디어 막바지이다 !! 몇일 전부터 배우기 시작한 SQL 데이터베이스도 마무리를 하였고 오늘은 자바와 데이터 베이스연동을 해볼것이다!! JDBC 개념 JDBC 란 Java DataBase Connectivity의 약어로 , 자바에서 데이터베이스 연동 프로그램을 개발하려고 만든 기술이다. 아래의 순서대로 실행이 된다 (JDBC 다운로드와 설정은 맨 아래에 작성해 놓았다. ) 순서대로 진행을 해보도록 하겠다. @1. JDBC 드라이버 로드 Class.forName("com.mysql.cj.jdbc.Driver"); @2. 데이터 베이스 연결 (커넥션을 이용해준다 ) Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306..
2021-06-02 MySQL 데이터베이스 인덱스 인덱스란? 찾아보기( 목차)가 있는 책은 찾아보기에 주요 용어가 가나다순, 혹 알파벳순으로 정렬이 되어 있고 용어 옆에 쪽수가 나와 해당 페이지를 펼치면 원하는 내용을 바로 찾아을 수 있다. MySQL에서 인덱스는 바로 이와같은 찾아보기 기능이라고 생각하면된다. '데이터를 좀더 빠르게 찾기위한 도구' @인덱스의 문제점 책에서 모든 단어를 찾아보도록 목차에 모두 표시하면 책의 분량보다 목차의 분량이 많아 지는데 인덱스도 마찮가지로 인덱스가 많아지면 많아 질수록 배보다 배꼽이 더커진다. 필요없는 인덱스를 만들면 데이터베이스가 차지하는 공간이 커지므로, 인덱스를 이용해 찾는것이 전체를 검색해서 찾는 거보다 오래 걸릴수 있다. @인덱스의 장단점 장점 검색속도가 매우 빨라진다. 단점 인덱스 저장할 공간이 필요 (..
2021-06-01 MySQL 데이터베이스 테이블 종합 실습 , 유저권한 , 트렌젝션 , 뷰 테이블 종합 실습 @테이블 압축하기 압축을 하게 되면 일단 크기가 작은것이 장점이지만, 압축을 하는 과정이 있기때문에 실행시간이 더욱 길어진다는 단점이 있다. @임시 테이블 #사용법은 일반 테이블과 같으나 세션이 종료 되면 자동으로 삭제됨 . 그 말은 워크벤치를 종료하거나 MySQL을 종료하면 사라지는 테이블이다. #테이블생성한 클라이언트만 접근 가능하고 , 내 다른테이블과 동일한 이름을 사용 가능하지만 동일 이름시 임시테이블에만 접근 가능하고 기존 테이블 접근 불가 (종료 하거나 삭제해야 기존 테이블 접근 가능 ) @테이블 삭제 ( 기존에 많이 다뤘었지만 중요 하니 한번더 !! ) @ 테이블 수정 ( 기존에 많이 다뤘었지만 중요 하니 한번더 !! ) @테이블에서 칼럼 삭제하기 ( 기존에 많이 다뤘었지만..
2021-05-31 MySQL 데이터베이스 다대다 조인 (3테이블조인), 테이블생성 다대다 조인 이미 2개의 테이블 조인은 공부했기 때문에 다른 설명은 생략하고 들어가겠다 그림으로 간단하게 설명하면 다음과 같다 맨위 : item 테이블 , 중간 : review 테이블 ,마지막 : member 테이블 이렇게 3개의 테이블을 reivew 테이블에 있는 각각의 id로 연결해서묶어 주는 것이다. 이렇게 실행을 해보면 다음과 같이 나온다 . 말로 조금 설명을 하자면 처음 조인에서 LEFT OUTER JOIN으로 item테이블 기준으로 조인이 되었다. 그리고 조인이 이루어진 테이블기준으로 member테이블을 조인을 해준 것이다. 첫 기준이 item테이블이기때문에 아이템 테이블에 있는 것들은 다 출력이 되었지만 해당 간에 다른 테이블들의 정보가 없기 때문에 null로 표현 된것이다. 기본적으로 이렇..
2021-05-28 MySQL 데이터베이스 내부조인 조인 @2개 이상의 테이블을 묶어서 하나의 결과 테이블을 만드는것 다음과 같은 그림을 보면 이해가 될것이다. 그림처럼 item테이블에 id를 review테이블에서 id로 참조하며 하나의 테이블처럼 보여주는것을 조인이라고 한다 여려개의 테이블을 묶어서 만들어 줄수 있는데 일단 기본적인 2개의 테이블 묶어주는 것 부터 보자 #데이터베이스에서 조인을 얼마나 잘하는지에 따라 잘하고 못하고를 나눈다고 한다... 그만큼 중요하다... 결과를 보기전에 일단 각각의 테이블을 먼저 확인해보자 이렇게 각각의 테이블이을 stock 테이블에서 item_id를 가지고 item테이블과 조인을 시켜줄 것이다. 길어지는 아이디를 AS 앞글자로 변경해줌 ( 변경해주면 모든것 다 변경 해줘야 함 ) 이렇게 사용할려면 포린키 설정이 되어..
2021-05-27 MySQL 데이터베이스 내장함수 여러가지 함수가 있다 모든 함수를 다 외워서 사용하면 좋지만 그렇게 하기에는 힘드니 이런 함수가 있다 라고 이해하고 필요할때 찾아서 사용하도록 하면된다 . 제어흐름 함수 @IF (수식 , 참 , 거짓) 수식이 참이면 두번쨰 인수 반환 거짓으면 세 번째 인수 반환 @IFNULL (수식1 , 수식 2) 수식1일 NULL이 아니면 수식1을 반환 , 수식1일 NULL이면 수식2 반환 @NULLIF(수식1, 수식2) 수식1 과 2과 같으면 NULL , 따르면 수식1 반환 @CASE... WHEN...ELSE...END 연산자이다.. 자바에서 스위치문 생각하면 된다. 문자열 함수 @ASCII(아스키코드), CAHR(숫자) 문자의 아스키코드 값을 반환 또는 숫자의 아스키코드값 반환 @BIT_LENGTH(문자열) ,C..

반응형