일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
- 자료구조
- MariaDB
- 이팩티브 자바
- 클린코드
- 네트워크
- 자바예외
- 이펙티브 자바
- vue.js
- 스프링부트와AWS로혼자구현하는웹서비스
- aop
- 인프런김영한
- DDD
- mysql
- 알고리즘
- react
- 알고리즘분석
- jpa
- 이펙티브자바
- 혼공SQL
- 인덱스
- SQL쿡북
- CleanCode
- AWS
- 기술면접
- 도메인 주도 개발 시작하기
- 인프런백기선
- AWS RDS
- java
- 자바
- 자바스터디
- Today
- Total
목록혼공SQL (11)
기록이 힘이다.

인덱스를 생성하기 위해서는 CREATE INDEX 문을 사용하고, 제거하기 위해서는 DROP INDEX 문을 사용합니다. 인덱스 생성 CREATE [UNIQUE] INDEX 인덱스_이름 ON 테이블_이름 (열_이름) [ASC | DESC] 기본은 ASC로 만들어지며, DESC로 만드는 경우는 거의 없습니다. 인덱스 제거 DROP INDEX 인덱스_이름 ON 테이블_이름 인덱스 생성과 제거 문법 인덱스 생성 문법 CREATE [UNIQUE | FULLTEXT | SPATIAL] INDEX index_mem_name [index_type] ON tbl_mem_name (key_part, ...) [index_option] [algorithm_option | lock_option] ... key_part: {..

뷰는 데이터베이스 개체 중에 하나입니다. '가상의 테이블' 뷰는 단순 뷰와 복합 뷰로 나뉘는데, 단순 뷰는 하나의 테이블과 연관된 뷰를 말하고, 복합 뷰는 2개 이상의 테이블과 연관된 뷰를 말합니다. 뷰의 개념 뷰의 기본 생성 CREATE VIEW 뷰_이름 AS SELECT 문; SELECT 열_이름 FROM 뷰_이름 [WHERE 조건]; 뷰를 만든 후에 뷰에 접근하는 방식은 테이블과 동일하게 SELECT 문을 사용합니다. 전체에 접근할 수도 있고, 필요하면 조건식도 테이블과 동일하게 사용할 수 있습니다. 뷰를 사용하는 이유 보안(security)에 도움이 됩니다. 앞의 예에서 만든 v_member 뷰에는 사용자의 아이디, 이름, 주소만 있을 분 사용자의 중요한 개인 정보인 연락처, 평균 키, 데뷔 일자..

제약조건의 기본 개념과 종류 테이블을 만들 때는 테이블의 구조에 필요한 제약조건을 설정해줘야 합니다. 앞에서 확인한 기본 키와 외래 키가 대표적인 제약조건입니다. 이메일, 휴대폰과 같이 중복되지 않는 열에는 고유 키를 지정할 수 있습니다. 회원의 평균 키는 당연히 200cm를 넘지 않겠죠? 이때 실수로 200을 입력하는 것을 방지하는 제약조건이 체크입니다. 회원 테이블에 국적을 입력한다면 99%는 대한민국일 것입니다. 매번 입력하기 귀찮다면 제약조건으로 기본값을 설정할 수 있습니다. 또한, 값을 꼭 입력해야 하는 NOT NULL 제약조건도 있습니다. -PRIMARY KEY 제약조건 -FOREIGN KEY 제약조건 -UNIQUE 제약조건 -CHECK 제약조건 -DEFAULT 정의 -NULL 값 허용 기본 ..
테이블(table)은 표 형태로 구성된 2차원 구조로, 행과 열로 구성되어 있습니다. 행은 로우(row)나 레코드(record)라고 부르며, 열은 컬럼(column) 또는 필드(field)라고 부릅니다. SQL로 테이블 만들기 CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name col_name column_definition | {INDEX|KEY} [index_name] [index_type] (key_part, ...) [index_option] ... | {FULLTEXT|SPATIAL} [INDEX|KEY][index_name](key_part,...) [index_option] ... | [CONSTRAINT [symbol]] PRIMARY KEY [inde..

스토어드 프로시저는 MySQL에서 프로그래밍 기능이 필요할 때 사용하는 데이터베이스 개체입니다. SQL 프로그래밍은 기본적으로 스토어드 프로시저 안에 만들어야 합니다. IF문 if문의 기본 형식 조건식이 참이라면 'SQL문장들'을 실행하고, 그렇지 않으면 그냥 넘어갑니다. IF THEN SQL 문장들 END IF; IF ~ ELSE 문 조건에 따라 다른 부분을 수행합니다. 조건이 참이라면 'SQL문장들1'을 실행하고, 그렇지 않으면 'SQL문장들2'를 실행합니다. IF THEN SQL 문장들 ELSE THEN SQL 문장들 END IF; IF문의 활용 CASE문 CASE 문의 기본 형식 IF문은 참 아니면 거짓 두 가지만 있기 때문에 2중 분기라는 용어를 사용합니다. CASE 문은 2가지 이상의 여러가지..

조인(join)이란 두 개의 테이블을 서로 묶어서 하나의 결과를 만들어 내는 것을 말합니다. 두 테이블을 엮어야만 원하는 형태가 나오는 경우도 많습니다. 내부 조인 두 테이블을 연결할 때 가장 많이 사용되는 것이 내부 조인입니다. 그냥 조인이라 부르면 내부 조인을 의미하는 것입니다. 일대다 관계의 이해 두 테이블의 조인을 위해서는 테이블이 일대다(one to many) 관계로 연결되어야 합니다. 일대다 관계란 한쪽 테이블에는 하나의 값만 존재해야 하지만, 연결된 다른 테이블에는 여러 개의 값이 존재할 수 있는 관계를 말합니다. 예를 들어, 회원 테이블에서 블랙핑크의 아이디는 'BLK'로 1명(1,one) 밖에 없습니다. 그래서 회원 테이블의 아이디를 기본 키(primary key, PK)로 지정했습니다...

정수 문자형 VARCHAR가 CHAR보다 공간을 효율적으로 운영할 수 있지만, MySQL 내부적으로 성능(빠른 속도)면에서는 CHAR로 설정하는 것이 조금 더 좋습니다. CHAR는 글자의 개수가 고정된 경우, VARCHAR는 글자의 개수가 변동될 경우에 사용하는 것이 좋습니다. 대량의 데이터 형식 LONGTEXT 및 LONGBLOB로 설정하면 각 데이터는 최대 4GB까지 입력할 수 있습니다. 대량의 텍스트는 LONGTEXT, 대량의 이진 데이터는 LONGBLOB로 설정합니다. 실수형 FLOAT와 DOUBLE은 거의 비슷합니다. 소수점 아래를 어디까지 정밀하게 표현하는지의 차이인데, 과학 기술용 데이터가 아닌 이상 FLOAT면 충분합니다. 날짜형 DATE는 날짜만, TIME은 시간만 저장합니다. 날짜와 시..

데이터 입력: INSERT INSERT INTO 테이블[(열1, 열2, ...)] VALUES (값1, 값2, ...) 자동으로 증가하는 AUTO_INCREMENT 데이터 수정: UPDATE UPDATE 테이블_이름 SET 열1=값1, 열2=값2, ... WHERE 조건; UPDATE 문에서 WHERE 절은 문법상 생략이 가능하지만, WHERE 절을 생략하면 테이블의 모든 행의 값이 변경됩니다. 일반적으로 전체 행의 값을 변경하는 경우는 별로 없으므로 주의해야 합니다. 데이터 삭제: DELETE DELETE FROM 테이블이름 WHERE 조건; UPDATE와 마찬가지로 WHERE 절이 생략되면 전체 행 데이터를 삭제하므로 주의해야 합니다. 대량의 행 데이터를 모두 삭제할 때는 DELETE보다 TRUNCA..