프로시저는 프로그램의 함수와 같은 개념으로 SQL명령어의 조합으로 새로운 함수를 만들어 저장 해 놓고 사용하는 것이다. > 삭제 DROP PROCEDURE IF EXISTS INSERT_BOARD; //프로시저를 생성하기 전에 INSERT_BOARD라는 프로시저가 있으면 삭제한다. > 생성 CREATE PROCEDURE INSERT_BOARD(PREGION INT(11), PWRITER VARCHAR(30), PTITLE VARCHAR(200)) BEGIN INSERT INTO BOARD(REGION, WRITER, TITLE) VALUES (PREGION,PWRITER,PTITLE); END; //보라색의 PREGION, PWRITER 등의 변수는 외부에서 함수를 호출할 때 넣어줄 인자의 타입을 결정 ..
웹서핑을 하다가 게시판 글이 과거는(어제기준) 날짜로 표기되고 금일은 시간으로 데이터가 표시되는 것을 보고 현재 공부하면서 만들고 있는 게시판의 쿼리를 바꿔보았다. (물론 뇌입원님의 은총을 받아서..) 기존에는 그냥 무책임하게 (년도 일자 오전오후 시간) 다 보여주는 형태였는데 이렇게 바꿔주니 한결 나아보인다. 애초에 화면 레이아웃이 엉망인지라(CSS를 잘몰라서 이곳저곳 오픈소스를 막 적용하다보니....) 다른 사람이 본다면 거기서 거기라고 느낄 것 같다... MYSQL에서 날짜 형식바꾸기 DATE_FORMAT(DATE,'형식문자'); //이렇게 하면된다. 아래는 형식문자에 들어갈 수 있는 문자들의 표이다. select NO, CASE WHEN DATE_FORMAT(REG_DATE,'%y.%m.%d') ..
무결성 제약조건은 데이터베이스 내의 데이터의 정확성을 유지하면서 바람직하지 않은 데이터가 저장되는 것을 방지하는 것을 말합니다. NOT NULL 제약 조건 - NULL값이 들어가며 안되는 칼럼에 설정합니다. UNIQUE 제약 조건 - 이 제약 조건은 유일하게 구분해야 하는 칼럼에 적용합니다. - NULL 데이터가 삽입되는 것을 허용합니다. PRIMARY KEY 제약 조건 - 이 제약 조건은 유일하게 구분해야 하는 칼럼에 적용합니다. - NULL 데이터가 삽입되는 것을 불허합니다. FORIGHT
인덱스란? 인덱스란 SQL 조회의 처리 속도 향상을 위해 칼럼에 생성하는 객체 새로운 인덱스 생성하기 CREATE INDEX 인덱스명 ON 테이블이름(칼럼명); 테이블의 인덱스 확인하기 SHOW INDEX FROM 테이블이름; 인덱스 제거 DROP INDEX 인덱스명; 인덱스를 무조건 사용한다고 해서 검색속도가 빨라지는 것은 아니다. 맹목적인 인덱스 지정시 성능 저하의 요인이 될 수 있다.(보통 한 테이블에 4~5개 이상의 인덱스를 지정하는건 권장하는 방법이 아니다) 인덱스를 사용해야 할 경우 - 테이블 행의 수가 많을 때 - 검색 결과가 전체 데이터의 5%이내 일때 - 컬럼에 대하여 변경보다 검색이 잦을 때 - WHERE문에 해당 컬럼이 많이 사용 될 때 - 컬럼값이 다양한 값을 지녔을 때 인덱스를 사..