DB/MySQL
-
Insert시 Data truncated for column 'date' at row 1 경고DB/MySQL 2020. 12. 30. 10:50
데이터 추가는 잘되지만 경고문이 떠서 알아보니 컬럼의 자료형을 넘는 큰 데이터를 넣었을때 발생하는 경고였다. mysql 테이블 생성시 DATE타입으로 컬럼을 생성하고 NOW() 함수로 데이터를 입력하자 데이터 입력은 되나 경고 메세지를 출력하였다. 위의 참고 사이트를 확인하니 DATE타입은 ‘YYYY-MM-DD’형식으로 ‘1000-01-01’부터 ‘9999-12-31’까지만 입력이 된다. DATETIME 데이터 타입은 ‘YYYY-MM-DD HH:MM:SS’형식으로 ‘1000-01-01 00:00:00’부터 ‘9999-12-31 23:59:59’까지 데이터를 입력가능하다. 결론은 NOW() 혹은 SYSDATE()로 현재 날짜와 시간을 읽어와서 데이터를 테이블 컬럼에 입력하고자 할 경우에는 데이터 타입을 D..
-
[MySQL5.7] 한글깨짐 character set UTF8 설정하기DB/MySQL 2020. 6. 4. 18:04
mysql로 jdbc를 이용해 DB에 한글 데이터를 insert하니 한글 값이 '???'로 보여 알아보니 기본값이 latin1이더라. character set을 utf8로 변경해주기로 했다. 우선 cmd창을 열어서 확인해보자. mysql을 관리자 계정(root)으로 접속 후 아래 명령 실행 show variables like 'c%'; status; 나는 다 변경을 해줘서 전부 utf8로 되어있다. 여기서부터 설정 방법! C:\Program Data\MySQL\MySQL Serer 5.7\my.ini 위 경로로 들어가 my.ini파일을 찾아 열어준다. **Program Data 폴더가 안보일 경우 숨김항목 표시 my.ini파일에서 아무것도 건들지말고 맨 아래에 다음내용 복붙! [client] defaul..
-
MySQL 데이터 정의어 DDL (create, alter, drop)DB/MySQL 2020. 6. 2. 22:16
CREATE 테이블 생성 : create table 테이블명( 필드명1 타입 [NULL | NOT NULL][DEFAULT ][AUTO_INCREMENT], 필드명2 타입 [NULL | NOT NULL][DEFAULT ][AUTO_INCREMENT], 필드명3 타입 [NULL | NOT NULL][DEFAULT ][AUTO_INCREMENT], ........... PRIMARY KEY(필드명) ); 데이터 형 외에도 속성값의 빈 값 허용 여부는 NULL 또는 NOT NULL로 설정 DEFAULT : 입력하지 않았을때의 초기값 지정 AUTO_INCREMENT : 자동으로 1씩 증가하는 번호를 위함 --테이블 생성 예제 CREATE TABLE EMPLOYEE( empno INTEGER NOT NULL PR..
-
MySQL 데이터 조작어 DML(select, insert, update, delete)DB/MySQL 2020. 6. 2. 20:15
SELECT 검색(조회) 기본구문 : SELECT(DISTINCT) 컬럼명(ALIAS) FROM 테이블명; 괄호안은 생략 가능 SELECT 뒤 검색하고자하는 데이터(컬럼)를 콤마(,)로 구분하여 나열 전체컬럼은 컬럼명 대신 '*' 를 사용 DISTINCT 사용시 중복행 제거 ALIAS 컬럼의 별칭 부여 FROM 뒤 선택한 컬럼이 있는 테이블 명시 문자열 결합함수 concat 사용 시 두개의 컬럼을 하나의 컬럼으로 결합 --SELECT 예시 --DEPARTMENT테이블의 데이터 전체 조회 SELECT * FROM DEPARTMENT; --EMPLOYEE테이블의 특정 컬럼 조회 SELECT EMPNO,NAME,JOB FROM EMPLOYEE; --컬럼에 별칭부여 select empno as 사번, name ..
-
MySQL Database 생성/계정생성/권한부여DB/MySQL 2020. 6. 2. 03:01
Database 생성하기 cmd에서 아래 명령들을 실행해보자 관리자 계정인 root로 DBMS에 접속 mysql –uroot -p password는 처음 설치 시 입력했던 암호 입력 데이터베이스 생성 명령 create database DB이름; 사용자(계정) 생성과 권한 주기 db이름 뒤의 * 는 모든 권한을 의미한다. @’%’는 어떤 클라이언트에서든 접근 가능하다는 의미이고, @’localhost’는 해당 컴퓨터에서만 접근 가능하다는 의미이다. flush privileges는 DBMS에게 적용을 하라는 의미이다. 해당 명령을 반드시 실행해줘야 한다. mysql 8버전에서는 create user를 먼저 해주고 grant를 해줘야 한다. grant all privileges on db이름.* to 계정이름..