[MySQL] 테이블의 데이터 삭제 후 id값 초기화 하기, Auto Increment 테이블의 모든 데이터 delete 후, 새 데이터를 insert 하면, insert된 데이터의 id값이 1이 아닌, 삭제된 데이터 id의 다음 값으로 생성된다.이런 id값이 다시 1부터 생성되도록 초기화 하기 위해서는 Auto Increment를 수정해 주면 된다. - id값 초기화 하는 Auto Increment 수정하기 테이블 설정 - Options Auto Increment 값을 1로 변경해 주면, id값이 초기화 된다. Database/MySQL 2024.05.20
[MySQL] SQL의 like 와 문자열 컬럼에 fulltext 설정 like로 문자열 검색 하는 경우, fulltext 걸어주면 검색이 빨라진다. SQL의 like 와 문자열 컬럼에 fulltext 설정하기문자열 데이터가 있는 title 컬럼에서 'story' 가 포함된 데이터를 찾는 경우 FULLTEXT 설정 방법title 컬럼이 있는 테이블 툴 >> Indexs Index Name : 이름 지어주기Type : FULLTEXT 선택하기Index Columns : title 컬럼 선택Apply 까지 해주면 fulltext 설정 완료! 다른 컬럼도 추가할 수 있다.- summary 컬럼도 FULLTEXT 설정해주기 Database/MySQL 2024.05.20
[MySQL] 유니크 / 이중유니크 설정하는 방법(Error Code : 1062. Duplicate entry가 나오는 이유) 같은 데이터가 중복되어서 들어가면 안되는 경우, 유니크 처리해야 한다.중복된 데이터가 있으면 유니크 작업이 안되기 때문에, 유니크 설정 작업전에 중복 데이터가 있다면 삭제해야 한다. 1. 유니크 설정방법원하는 컬럼에 UQ 를 체크해 준다. 위에서 UQ 체크한 email의 인덱스가 UNIQUE 처리되어 있다. 'abc@naver.com' 데이터가 저장되어 있는 user 테이블에해당 값을 한번 더 insert를 하면, eamil은 유니크 처리되어 있기 때문에, Error Code : 1062. Duplicate entry 오류가 발생하고, 중복 데이터 저장을 제한한다. 2. 이중 유니크 설정방법- 두 개 이상의 컬럼값을 결합해서 유니크하게 설정하기 예를 들어, 내가 찜한 영화목록이 있다고 .. Database/MySQL 2024.05.20
[MySQL] like(SQL 예약어)를 테이블명으로 사용하는 방법 'like'와 같은 예약어를 SQL문에서 테이블명으로 사용하게 되면 충돌이 난다.그런데, 백틱을 사용하면 예약어를 테이블명으로 사용할 수 있다. 백틱 : 탭 키 위에 위치한 특수 문자, ~ 키보드에 있는 [ ' ] 표시예약어 : 특정 작업을 수행하기 위해 사용되는 특정 단어들 SQL 예약어 : like, select, insert, update, delete, from, where, join 등 - like를 테이블명으로 사용해서 빨간 밑줄이 생겼다. - like를 백틱으로 감싸줬더니, 빨간 밑줄이 사라졌다. Database/MySQL 2024.05.17
[MySQL] 다중 테이블, 3개 이상의 테이블을 조인하는 방법 MySQL 3개 이상의 테이블 조인하기select ~ on까지 하나의 테이블로 볼 수 있어서,그 아래에 또 조인할 수 있다. 테이블 쪼개서 설계하는 RDBS(관계형 데이터 베이스) 이다. Database/MySQL 2024.05.16
[MySQL] 테이블 합치기, 테이블 연결, 결합하는 join과 left join 방법과 예시 join : 두 개 이상의 테이블을 결합하여 하나로 집합하는 연산from A테이블 left join B테이블 : 왼쪽에 있는 A테이블의 모든 데이터를 보여주고, 일치하는 B테이블의 데이터를 결합한다.from A테이블 right join B테이블 : 오른쪽에 있는 B테이블의 모든 데이터를 보여주고, 일치하는 A테이블의 데이터를 결합한다. MySQL 테이블 결합하기 join과 left join - from 테이블1 join 테이블2 on 테이블1.외래키 = 테이블2.참조컬럼; 두 테이블을 결합하기 위해서는 foreigh key(외래키)가 필요하다. foreign kye 설정방법 바로가기 테이블 명이 긴 경우에는 'as 약자'로 줄여서 사용해도 된다.as 는 사용해도 되고, as 생략해.. Database/MySQL 2024.05.16
[MySQL] 여러 테이블 생성시, 연결하는 Foreign Key 설정하는 방법 Foreign Key : 테이블을 연결하는 컬럼 MySQL 테이블 연결하는 Foreign Key 설정 아래와 같은 테이블에서, 주문데이터가 추가될 때마다 유저의 정보가 중복 저장되어 비효율적이다. 그래서 테이블을 2개로 분리해 데이터 중복을 최소화 하는 것이 '정규화' 이다. 고객정보와 주문내역을 분리해서 두 개의 테이블을 만들었다. A테이블 = CUSTOMERS(참조테이블) , B테이블 = ORDERS B테이블 customer_id 값이 A테이블의 id를 가르키도록(참조) 해서 두 테이블을 연결한다.이때, customer_id 가 바로 foreign key 가 된다. 설정 방법1. 'orders' 테이블 툴 하단의 Foreign Keys 로 들어가기- 왼쪽은 Table 설정, 오른쪽은 Column .. Database/MySQL 2024.05.16
[MySQL] 테이블 툴 Datetype TIMESTAMP 디폴트 이용하기 TIMESTAMP- 날짜와 시간 정보를 저장하는 데이터 타입- UTC(협정 세계시) 기준으로 DB에 저장되고, 저장된 값은 사용자의 로컬 시간으로 표시됨 MySQL 테이블 툴 Datetype TIMESTAMP 이용하기데이터 저장할 때 now( ) 함수를 사용하면 현재 시간이 자동으로 보여진다. 그런데 데이터를 저장할 때마다 now() 함수를 입력하는 것이 번거로우니, 한 번에 처리하자. 바로, 테이블 툴에서 해당 컬럼의 데이터타입은 timestamp로 하고, 디폴트에 now() 함수를 입력해주면 된다.- 위에서 now()함수가 적용된 'createdAt' 컬럼을 수정하였다. Apply 화면에서 변경된 내용이 표시된다. 디폴트 값이 CURRENT_TIMESTAMP라고 변환되었다. 이젠,.. Database/MySQL 2024.05.16
[MySQL] 날짜와 시간관련 중요한 함수들 MySQL 날짜와 시간관련 함수들 아래 데이터를 이용하여 시간관련 함수 사용법을 알아보자. - day( ): 날짜만 가져오기 - month( ) / year( ): 월 / 년도 가져오기 - dayname() / dayofweek(): 요일 이름 / 요일 번호(1=Sunday, 2=Monday, ..., 7=Saturday)dayofweek()를 사용하면 전 세계 어느 곳이든, 모든 핸드폰 사양에 적용될 수 있다. - hour() / minute() / second(): 시 / 분 / 초 DB에 저장되는 시간데이터 디폴트는 ISO 표준형식 이다.그래서 사람이 보기 편한 문자열로 바꾸는 방법이 있다. - date_format(): 날짜와 시간 데이터를 원하는 형식으로 출력 date_.. Database/MySQL 2024.05.16
[MySQL] 데이터 범위 선택 >, <, >=, <=, between 연산자 특정 범위 내의 값을 선택할 때는 부등호( >, =, MySQL 데이터 범위 선택, 부등호 / between 연산자 between A and B- A 부터 b까지- 시작값 A와 끝값 B를 포함- 부등호 >= A and - 숫자, 문자, 날짜 데이터에 모두 사용할 수 있다. 재고가 0 이상이고 50 이하이면, *재고가 51 이상이고 100 이하이면, **이도저도 아니면, *** 로 하여stock 이라는 컬럼을 만들자. ① 부등호 사용 ② between 연산자 사용 결과 Database/MySQL 2024.05.14