본문 바로가기

SQL

(6)
[SQL] NOT NULL & DEFAULT 비교하기 DB 테이블 생성 중 NOT NULL 에 대해 검색해보다가 흥미있는 글이 있어 정리해본다. DB constraint에서 NOT NULL과 DEFAULT를 동시에 쓸 필요가 있나요? name 칼럼만 있는 테이블을 다음과 같이 만들고 다음의 두 가지 제약을 설정한다. NOT NULL : 해당 칼럼이 NULL 값이 되면 안된다. DEFAULT "홍길동" : 값이 입력되지 않으면 "홍길동" 값으로 저장된다. CREATE TABLE SAMPLE_TABLE ( NAME VARCHAR(30) NOT NULL DEFAULT "홍길동" ); Query를 다음과 같이 작성을 때 결과는 어떻게 나올것인가? /* QUERY 1 */ INSERT INTO SAMPLE_TABLE (NAME) VALUES (NULL); /* QU..
[MYSQL]처음 생성된 데이터에 null값이 있는지 확인하는 쿼리 -- sampleTable : sampleZone(지역이름), sampleState(날씨상태), SampleDate(저장시각) -- sampleState : '비', '눈', '맑음' 등 날씨를 저장 -- sampleState 상태값을 변경할 때마다 sampleTable에 저장 -- sampleZone이 처음 만들어진 데이터중 sampleState 값이 null인 데이터가 있는지 확인하는 쿼리 select * from sampleTable a inner join ( select sampleZone , min(SampleDate) as SampleDate from sampleTable group by sampleZone ) a on a.sampleZone = a.sampleZone where a.nullC..
[MYSQL] 계정 생성 관리 및 권한 설정 1. 접속 mysql -u root -p 2. 데이터베이스 조회 show databases; 3. 데이터 베이스 선택 use mysql; 4. 사용중인 DB 테이블 목록 조회 show tables; 사용중인 DB의 테이블 목록 조회 mysql> SHOW TABLES; 특정 테이블 패턴만 조회하기 mysql> SHOW TABLES LIKE 'sample%'; 복잡한 조건 조회 mysql> SHOW TABLES WHERE Tables_sample LIKE 'sample%' AND Tables_sample != 'sample_sub'; 다른 DB의 테이블 목록 조회하기 mysql> SHOW TABLES FROM sample_db; 5. 계정정보를 조회 select host, user, plugin from u..
[MYSQL-SQL] 중복 데이터 조회 중복 데이터 검토가 들어오는 일이 잦아져서 작성 SELECT * FROM DATA_TABLE GROUP BY /*중복이 의심되는 컬럼명*/ HAVING COUNT(*) > 1 ;
[MYSQL] InnoDB VS MyISAM InnoDB? MyISAM? MySQL의 스토리지 엔진으로 가장 많이 사용하는 InnoDB와 MyISAM의 차이를 정리하자. InnoDB 엔진은 트랜잭션 처리가 필요하고, 대용량의 데이터를 다루는 부분에서 효율적 MyISAM 엔진은 트랜잭션 처리가 필요 없고, Read only 기능이 많은 서비스일수록 효율적 정리하면, InnoDB는 데이터의 변화가 많은 서비스에 적합하다 MyISAM은 SELECT가 많은 서비스에 적합하다 용도에 따라 InnoDB나 MyISAM 스토리지 엔진을 결정하는데, InnoDB와 MyISAM 테이블을 같이 사용할 경우, 조인시 주의해야 한다! InnoDB -InnoDB 및 BDB 스토리지 엔진은 트랜젝션에 안전한 테이블을 제공하는 트랜잭션-세이프 스토리지 엔진이다. -InnoDB..
[MYSQL] Crontab으로 migration 작업 중 생긴 중복 오류 com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Duplicate entry '@@@@@@-@@@@' for key 'PRIMARY' at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) a..