본문 바로가기
반응형

전체 글125

[MySQL] Join 1. Join 두 개의 테이블을 서로 묶어서 하나의 결과를 만들어내는 것 2. 1 대 다 관계 ex) 회원 테이블과 구매 테이블은 회원 1명이 여러 번 구매할 수 있으므로 1대 다 관계이다. 회원 테이블의 PK(기본키)는 구매 테이블의 FK(외래 키)로 설정할 수 있다. 구매 테이블에는 FK로 지정한 사용자 아이디가 여러 번 중복하여 존재할 수 있지만 아이디를 따라가 회원 테이블에서 유일한 정보를 찾을 수 있음! 3. 내부 조인의 기본 (INNER JOIN) SELECT FROM INNER JOIN ON WHERE 검색 조건 * INNER JOIN을 JOIN으로 써도 INNER JOIN으로 인식한다. -- 예시 SELECT * FROM BUY INNER JOIN MEMBER ON BUY.MEM_ID = .. 2022. 9. 26.
[SQL] SQL 고급 문법(데이터 형식) 1. 데이터 형식 정수형, 문자열, 실수형, 날짜형, 변수, 형 변환 2. 정수형 데이터 형식 바이트 표현 범위 TINYINT 1 -128 ~ 127 SMALLINT 2 -32,768 ~ 32,767 INT 4 - 21억 ~ 21억 BIGINT 8 -900경 ~ 900경 * [데이터 형식] UNSIGNED로 표현하는 경우 양의 정수로 이루어진 데이터에 대해 사용 가능하다. 3. 문자형 데이터 형식 바이트 수 CHAR(개수) 1 ~ 255 VARCHAR(개수) 1 ~ 16,383 CHAR : 고정형 문자형 최대 N자 까지 입력 가능하고, 메모리에 N글자 공간만큼 할당 속도가 더 빠르다 글자가 고정적인 경우 좋다. VARCHAR : 가변형 문자형 최대 N자 까지 입력 가능하고, 메모리에 실제 입력한 글자만큼.. 2022. 9. 25.
[MySQL] 데이터 변경을 위한 INSERT / UPDATE / DELETE Select 는 데이터를 보기위한 명령어였다면 Insert / update / delete 는 데이터를 변경하기 위한 명령어다. Insert into [테이블이름] (컬럼명,,,) VALUES (값,,,); 특징 - 필수값이 아니라면 null 입력을 해도된다. - auto increment : Ex) 아이디는 자동으로 증가하도록 하고싶다면? - auto increment 조건 : primary key 이어야 한다. 데이터가 의미 있는 것이 아니라 번호를 매기는 그 자체가 의미 있을 때 활용 Q. auto increment 값을 바꾸고 싶다면? A. ALTER TABLE 테이블 AUTO_INCREMENT = 100; 과 같이 auto increment 값을 바꿔주는 명령어를 실행하여 바꿀 수 있다. Q. .. 2022. 9. 25.
[MySQL] SQL 기본 문법(SELECT FROM WHERE) 1. USE 데이터베이스가 여러개일때 USE MARKET_DB; SELECT * FROM MARKET_DB.MEMBER; 근데 Error Code: 1064. You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'MEMBER' at line 1 위와 같은 에러 발생하는 이유는 WORKBENCH 와 MYSQL 서버 버전이 안맞는 경우 2. WHERE 조건식 SELECT * FROM MARKET_DB.MEMBER WHERE MEM_NAME = '블랙핑크'; SELECT MEM_ID, HEIGHT FROM MARKET_DB... 2022. 9. 19.
[MySQL] 데이터베이스 개체(인덱스, 뷰, 스토어드 프로시저) 1. 인덱스 데이터가 많을 수록 검색이 오래걸리니 인덱스가 필요하다. MySQL Workbench에서 인덱스를 생성하기 전 execution plan 탭에서 인덱스 생성하기 CREATE TABLE {인덱스 이름} ON {테이블} ( {컬럼} ); CREATE TABLE idx_member_name ON member(member_name); 인덱스 생성 후 조회 쿼리 실행하면 execution plan 탭에서 Non-Unique key lookup 과 같이 실행계획이 바뀐것을 확인할 수 있다. 2. 뷰 가상의 테이블로 Window 환경에서의 바로가기 아이콘과 비슷하다. 테이블을 select 하는 구문으로 이루어져있고, 보안에 좋다. 생성 방법 CREATE VIEW {뷰이름} AS {select 구문}; C.. 2022. 9. 18.
[프로그래머스] 동적계획법 > 정수 삼각형 (Java) 문제 설명 위와 같은 삼각형의 꼭대기에서 바닥까지 이어지는 경로 중, 거쳐간 숫자의 합이 가장 큰 경우를 찾아보려고 합니다. 아래 칸으로 이동할 때는 대각선 방향으로 한 칸 오른쪽 또는 왼쪽으로만 이동 가능합니다. 예를 들어 3에서는 그 아래칸의 8 또는 1로만 이동이 가능합니다. 삼각형의 정보가 담긴 배열 triangle이 매개변수로 주어질 때, 거쳐간 숫자의 최댓값을 return 하도록 solution 함수를 완성하세요. 제한사항 삼각형의 높이는 1 이상 500 이하입니다. 삼각형을 이루고 있는 숫자는 0 이상 9,999 이하의 정수입니다. 입출력 예 triangle result [[7], [3, 8], [8, 1, 0], [2, 7, 4, 4], [4, 5, 2, 6, 5]] 30 class Sol.. 2022. 9. 4.
[프로그래머스] 완전탐색 > 카펫 문제 설명 Leo는 카펫을 사러 갔다가 아래 그림과 같이 중앙에는 노란색으로 칠해져 있고 테두리 1줄은 갈색으로 칠해져 있는 격자 모양 카펫을 봤습니다. Leo는 집으로 돌아와서 아까 본 카펫의 노란색과 갈색으로 색칠된 격자의 개수는 기억했지만, 전체 카펫의 크기는 기억하지 못했습니다. Leo가 본 카펫에서 갈색 격자의 수 brown, 노란색 격자의 수 yellow가 매개변수로 주어질 때 카펫의 가로, 세로 크기를 순서대로 배열에 담아 return 하도록 solution 함수를 작성해주세요. 제한사항 갈색 격자의 수 brown은 8 이상 5,000 이하인 자연수입니다. 노란색 격자의 수 yellow는 1 이상 2,000,000 이하인 자연수입니다. 카펫의 가로 길이는 세로 길이와 같거나, 세로 길이보다 .. 2022. 9. 4.
[Java] 예외처리 1. 예외란? 프로그램에 문제가 있는것을 말하며, 예외로 인해 시스템 동작이 멈추는 것을 막는 것을 예외처리 라고한다. Exception : 개발자가 대처할 수 있음 Error : 개발자가 대처할 수 없음. Exception - CheckedException : 예외처리를 반드시 해야하는 경우 (ex 파일시스템, 네트워크 등) 컴파일러가 예외처리 했는지 확인함 - UncheckedException : 예외처리를 개발자의 판단에 맡기는 경우(ex 데이터 오류) 2. Exception 클래스 Exception 클래스의 하위클래스로 대표적으로 NullPointerException, NumberFormatException 등이 있다. NullPointerException : 객체를 가리키지 않고 있는 레퍼런스를.. 2022. 9. 4.
[Java] Collection 1. List List 인터페이스로 구현한 클래스는 인덱스를 이용해서 데이터를 관리한다. - 인덱스를 이용한다. - 데이터 중복이 가능하다. ArrayList list = new ArrayList(); list.add("Hello"); list.add("Java"); list.add("World"); //특정 인덱스에 추가하거나 데이터를 바꿈 list.add(2, "Programing"); -> Hello Java Programing world list.set(1, "C"); -> Hello C World //데이터추출 String str = list.get(2); //데이터 제거 str = list.remove(2); //전체 제거 list.clear(); //데이터유무 //비어있으면 true, 1개이.. 2022. 9. 4.
[Java] 문자열 클래스 1. String 객체의 메모리 문자열을 다루는 String 클래스는 데이터가 변하면 메모리 상의 변화가 많아 속도가 느리다. String str = "JAVA"; str = str + "_8"; 메모리상에 JAVA 라는 문자열이 저장되고 그 시작점 주소를 str이라는 변수가 갖게 됨 근데 JAVA라는 문자열에 _8을 붙이게 되면 기존의 객체를 버리고 메모리상에 JAVA_8을 작성하고 str이 변경된 주소를 갖게 되므로 속도가 느리다! 2. StringBuffer, StringBuilder StringBuffer sf = new StringBuffer("JAVA"); sf.append("_8"); String 클래스의 단점을 보완한 클래스로 데이터가 변경되면 메모리에서 기존 객체를 재활용한다. (Stri.. 2022. 9. 4.
728x90
반응형