데이터베이스 & SQL(11)
-
MySQL - like와 REGEXP
[ like ] like로는 간단한 걸 검색할 수 있게 도와준다. 와일드카드 개수도 몇 개 없고 간단해서 조건이 어렵지 않은 거라면 like를 사용하는 걸 권장한다. MySQL에서 제공하는 와일드카드 목록은 아래와 같다. 심볼 설명 예시 % %는 해당 부분 뒤에 어떤 게 오건 해당 부분을 제외한 부분만 일치하면 된다. bl%이면 blob, blak, bl이 매치된다. %bl%이면 bl, cblob, black이 매치된다. _ _는 딱 한 개의 문자만 일치해야 한다. h_t이면 hot, hat, hit이 매치된다. [] 브라켓 내부 하나의 문자만 일치해도 된다. h[oa]t이면 hot과 hat은 되지만 hit 안 됨 J[so]n이면 Jsn, Jon은 되지만 Json 안 됨 ^ 브라켓 내부에 있는거만 아니면..
2024.03.01 -
SQL 기초 - Select문(싱글테이블)
[ Insert 문 ] 나머지를 진행하기 이전에 가장 우선될 것은 데이터를 입력하는 것이다. 다음과 같이 MySQL 콘솔창에 데이터를 다음과 같이 입력을 해주자. INSERT에서 어려운 점은 constraint 조건에 따른 내용들인데, 이는 이 글에 정리되어있으니 보길 바란다. 어려운 부분이 없어서 넘기도록 하겠다. CREATE DATABASE study_mysql; USE study_mysql; DROP table if exists member; CREATE TABLE member ( member_id CHAR(8) PRIMARY KEY, group_id CHAR(10), member_phone CHAR(20) NOT NULL, member_age INT, member_salary INT ); INSE..
2024.03.01 -
MySQL의 격리 수준
[ MySQL의 격리 수준이란? ] 트랜잭션과 락은 떨어질 수가 없는 관계이다. 그리고 락에 따라서 더 데이터가 정합적으로 작동하게 만들 수록 동시성에 관한 문제가 생길 수 밖에 없다. 대부분의 DB는 이 정도를 옵션으로 정하게 해준다. MySQL에는 총 4가지의 옵션이 있는데, 이 옵션들에 관해서 알아보고 어떻게 이를 처리하는지 알아보자. 실습을 위한 세팅을 어떻게 하는지는 다음 글을 참고 바란다. 격리 수준 별 문제점 요약 정보: DIRTY READ NON-REPEATABLE READ PHANTOM READ READ UNCOMMITTED 발생 발생 발생 READ COMMITTED 없음 발생 발생 REPEATABLE READ 없음 없음 발생(InnoDB는 없음) SERIALIZABLE 없음 없음 없음 ..
2024.02.25 -
무결성 제약 조건 - MySQL 코드 첨부
[ 무결성 제약 조건이란? ] 무결성 제약 조건은 데이터의 정확성과 일관성을 유지하는데 도움을 주는 조건이다. 이를 통해서 데이터베이스에 저장되는 데이터는 무결성 제약 조건에 따라 특정 규칙을 따르도록 강제가 된다. 앞으로는 이에 해당하는 제약 조건의 종류와 해당 제약 조건을 MySQL에서 어떻게 기능을 지원하는지 알아보자. [ 도메인 무결성 제약 조건 ] 도메인 제약 조건은 특정 열에 대한 데이터 타입 범위 등을 정의한다. 예시에는 아래와 같은 종류가 있으며 해당 예시마다 코드도 남기도록 하겠다. [ 값 범위 설정 ] 값 범위는 두 가지 예시가 있을 것 같다. 첫 번째로는 숫자형으로 된 값에서 특정 범위이내로 제한을 하는 경우, 두 번째로는 문자형 형태로 특정한 값('남', '여')만 받을 수 있는 경..
2024.02.24 -
데이터 베이스 트랜잭션
[ 트랜잭션이란? ] 데이터 베이스 트랜잭션은 데이터 베이스의 상태를 변화시키는 하나의 논리적 단위 혹은 작업적 단위를 의미한다. 데이터 베이스에서 지원하는 트랜잭션에는 보통 두 가지 모드가 있다. System Transaction: 보통 autocommit mode로 default 값으로 설정되어있는 것을 의미한다. autocommit을 경험해보면 알겠지만 SQL문 하나마다 해당 작업을 실행하고 성공 후 commit까지 되는게 계속 반복된다. 또한 DB마다 다르지만 보통 select 문에서는 read transaction을 얻고 select를 제외한 SQL문에는 write transaction을 얻는다. User Transaction: autocommit mode를 false로 하는 JDBC 혹은 @s..
2024.02.24