본문 바로가기
반응형

MySQL19

[MYSQL] 에러 번호 1175 Safe Update 해결방법 MySQL에서 쿼리를 실행하다보면 다음과 같은 에러를 마주할 때가 있다. Error Code: 1175. You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column To disable safe mode, toggle the option in Preferences -> SQL Editor and reconnect. 어떤 행을 삭제하거나 수정하려할 때 나오는 에러인데, 삭제 / 수정시에는 Key 열을 이용해서만 가능하도록 설정되어 있기 때문에 등장한다. 첫 번째 해결 방법으로는 메시지에 나온대로 Preferences -> SQL Editor 에 들어가서 safe mode 를 disabl.. 2018. 7. 17.
[MYSQL] 쿼리에서 변수 활용하기 SET test 라는 테이블에서 어제자 데이터를 출력해야 하는 상황을 생각해 보자. SELECT * FROM test WHERE date >= '2018-06-18' and date = subdate(curdate(), 1) and date < curdate(); 위와 같이 쿼리를 구성하면 매일 별도로 날짜를 입력할 필요 없이 쿼리만 실행시키면 된.. 2018. 6. 19.
[MYSQL] 오늘, 어제, 내일 날짜 자동으로 입력하기 curdate() 오늘 날짜는 curdate()로 입력할 수 있다. cur는 current를 의미한다. 날짜의 증감은 adddate() 혹은 subdate()를 이용한다. sub은 subtract를 의미한다. 2018. 6. 12.
[MySQL] 날짜, 시간 표기 방식 지정하기 DATE_FORMAT() 다음과 같이 id 와 datetime 2열로 이루어진 간단한 테이블을 생성하고 임의로 날짜와 시간을 만들어 넣자. insert into sandbox2 (datetime) VALUES('2017-08-28 17:22:21'),('2017-02-15 10:22:24'),('2017-12-09 22:13:24'),('2017-07-06 20:15:18'),('2017-11-19 23:13:19'),('2017-03-06 19:19:11'),('2017-03-07 19:18:13'),('2017-10-01 19:18:15'),('2017-07-02 20:21:21'),('2017-11-20 23:16:23'),('2017-12-11 14:24:20'),('2017-12-21 12:16:14'); 이제 다음과 .. 2017. 12. 31.
[MySQL] 행, 열 바꾸어 출력하기 CASE ~ AS sandbox 테이블에 다음과 같은 자료를 입력하고 cat1, cat2, cat3 의 합계를 구해 보자. INSERT INTO sandbox (name, value, note) VALUES('a',174,'cat1'),('b',164,'cat2'),('c',168,'cat3'),('d',170,'cat1'),('e',197,'cat2'),('f',109,'cat3'),('g',139,'cat1'),('h',138,'cat2'),('i',197,'cat3'),('j',146,'cat1'),('k',148,'cat2'),('l',112,'cat3'),('m',137,'cat1'),('n',119,'cat2'),('o',167,'cat3'); 합계는 다음과 같이 구하면 되겠다. SELECT note, sum(.. 2017. 12. 30.
[MySQL] 결과를 특정 순서로 정렬하기 ORDER BY FIELD() 다음과 같은 sandbox 테이블의 결과를 id 2, 1, 3 순서로 정렬하여 표기할 수 있을까? 가능하다. ORDER BY 자체는 오름차순ASC 과 내림차순DESC 만 가능하나, 뒤에 FIELD() 를 붙여 주면 우리가 원하는 순서로 정렬할 수 있다. 사용법은 다음과 같다. FIELD(필드명, 순서) 위에서 이야기한 대로 ID 2, 1, 3 순서로 결과를 정렬하고 싶다면 다음과 같이 적는다. SELECT * FROM `sandbox` ORDER BY FIELD(id, 2, 1, 3); 결과는 다음과 같다. 2017. 12. 29.
[MySQL] 데이터 변경하기 UPDATE 다음과 같은 sandbox 테이블의 데이터를 변경해 보자. 데이터 변경에는 UPDATE 명령이 사용되며, 사용법은 다음과 같다. UPDATE 테이블 SET 필드명 = 필드값 WHERE 조건 예를 들어 2행, jkl 의 note 부분에 test 라는 글자를 넣으려면 다음과 같이 적는다. UPDATE sandbox SET note = 'test' WHERE id = 2; 일괄적으로 적용할 수도 있다. VALUE 필드의 값을 모두 x 10 하려면 다음과 같이 적는다. UPDATE sandbox SET value = value*10; 2017. 12. 28.
[MySQL] 데이터 삭제하기 DELETE, TRUNCATE 지난 번 sandbox 테이블에서 데이터를 삭제해 보자. 특정 행의 데이터를 삭제하려면 SELECT 대신 DELETE 를 쓰고 where 로 조건을 걸어 준다. DELETE FROM sandbox WHERE id=5; id = 5 에 해당하는 행이 삭제된 것을 볼 수 있다. 만일 테이블 전체의 데이터를 삭제하려면 Truncate를 사용한다. 2017. 12. 27.
[MySQL] 테이블에 데이터 입력하기 INSERT INTO sandbox라는 테이블이 있다고 하자. 아직 데이터가 입력되지 않은 테이블이다. 열(필드)은 총 4개이며, 이중 id 필드에는 자동증가(auto increment) 속성이, note 필드에는 기본값으로 NULL이 지정되어 있다. 또한 name 과 note 필드는 텍스트, id 와 value 는 정수를 입력받도록 설정하였다. 일단 데이터를 입력해 보자. 다음과 같이 insert into 명령을 사용한다. INSERT INTO sandbox VALUES (1, 'abc', 10, 'first'); 한 행의 데이터가 삽입된 것을 볼 수 있다. 만일 특정 필드에만 값을 입력하려면 VALUES 앞에 다음과 같이 입력할 필드를 선언해 준다. INSERT INTO sandbox (name, value, note)V.. 2017. 12. 10.
[MySQL] 테이블 이름 확인하기 SHOW TABLES DB에 포함된 테이블이 너무 많으면 가끔 헛갈릴 때가 있다. 그럴 때 테이블들의 이름을 출력해 주는 명령이 SHOW TABLES 다. SHOW TABLES IN [DB명] 위와 같이 명령하면 DB에 있는 테이블명을 죽 보여준다. 사실 테이블 목록 자체는 보통 인터페이스에서도 볼 수 있지만, show tables 명령이 좋은 것은 like 를 사용할 수 있기 때문이다. '예를 들어 coin 이라는 글자가 들어간 테이블이 뭔가 있었는데...' 싶을 때 다음과 같이 찾으면 쉽게 결과를 얻을 수 있다. SHOW TABLES IN [DB명] LIKE '%coin%' 2017. 12. 8.
반응형