mysql에서 timestamp 자료형이 있습니다. 이것은 datetime 이랑 비교해서 어떠한 차이점을 가질까요? mydb에는 2개의 테이블이 있습니다. 하나는 dt, 다른 하나는 ts입니다. 각각 datetime과 timestamp를 저장합니다. ts와 dt에 현재 시간인 now()를 저장해 보겠습니다. 사실 이 함수는 CRUD를 구현할 때 상당히 많이 쓰는 것 중 하나가 됩니다. 예를 들어서, 게시판에서 글을 등록할 때도, 보통은 작성 날짜를 표시해 줍니다. 그러니, now와 같이 작성할 당시에 '시간'을 구해주는 것이 필요합니다. 그리고 dt와 ts에 저장된 내용을 보니, 2020년 8월 30일 48분 17초, 48분 23초가 저장되어 있습니다. 현재 system의 time zone을 보니, KS..
코딩 검색 결과
이번 실습도 이어서 해 보겠습니다. 유저를 추가하고, 해당 데이터베이스의 모든 권한을 새로 생성한 유저에게 주기만 하면 됩니다. 먼저, 모든 location에서 접속이 가능한 test 계정을 생성해 보겠습니다. mysql에서는 caching_sha2_password로 인증을 하게 하겠습니다. 추가를 하고 난 후에, mysql.user에서 User 필드만 보면, test가 추가되었다는 것을 알 수 있습니다. mysql.user에서 User가 'test'인 것만 뽑아보겠습니다. 그러면 죄다 'N'이 찍힌 것을 알 수 있습니다. test로 데이터베이스를 생성하는 것도 못 하겠네요. 특정 유저에게 읽을 권한, 쓸 권한 등을 주는 것은 꽤 위험 부담이 따릅니다. 누군가 내가 만든 데이터베이스를 날려버릴 수도 있다..
데이터 베이스를 다루실 때, User를 관리하는 것도 꽤 중요한 일 중 하나입니다. mysql에서 유저를 어떻게 추가하는지 간단하게만 짚고 넘어가 보겠습니다. 8버전 들어오고 나서 부터, 인증 방식도 상당히 많아졌는데, 이들에 대해서는 천천히 알아보도록 하겠습니다. 당연하게도, 공식 레퍼런스 문서인 링크에 설명이 잘 되어 있습니다. 이것을 기반으로 간단하게 실습만 해 보도록 하겠습니다. 레퍼런스에 따르면, mysql.user에 무언가 특별한 정보들이 저장이 되어 있다고 합니다. 이 중에서 여기서 다룰 중요한 정보들만 짚고 넘어가 보겠습니다. Host와 User, PlugIn을 보겠습니다. User는 유저 이름이고, Plugin은 무엇인지는 잘 모르겠습니다만, caching_sha2_password가 눈에..
테이블에서 collation은 어떤 것일까요? 사실, 저는 별 게 아니겠구나. 라고만 생각하였습니다. 그냥 인코딩에 대한 것만 중요하겠거니, 싶었습니다. 결론부터 말하자면, 그런 제 생각은 오만했다는 것이였습니다. testVC 테이블에 있는 데이터를 모두 조회해 보겠습니다. 이것을 str 오름차순으로 정렬해 보겠습니다. heroes, HEROES, kiwoom, KIWOOM, kIWOOM, Lotte giant, ... 이렇게 8개의 레코드가 있습니다. 여기서 의문점이 들 수 있습니다. 왜 대문자 소문자 구분없이 sorting이 되어 있지? 이는 테이블의 Collation을 보면 알 수 있습니다. utf8mb4_*_ai_ci. 이것은 Accent와 Case 둘 다 INSensitive하다는 것입니다. 앞..
crud를 구현하실 때, update 문도 상당히 많이 쓰는 편입니다. 예를 들어 게시물 수정. 그렇게 내용이 길지는 않으니 천천히 보셔도 좋을 듯 싶습니다. 먼저 instructor 테이블을 보겠습니다. 전체 레코드의 모든 필드들을 조회하기 위해서 select * from instructor 쿼리를 입력하였습니다. 이것을 salary 내림차순으로 정렬하였습니다. 저는 이 중에서 2번째와 3번째의 salary 값에 집중해 보도록 하겠습니다. update 다음에 테이블 명이 오고, set 다음에 어떠한 필드를 어떤 값으로 업데이트 할 것인지가 옵니다. 이 예제는, 모든 교수들의 연봉을 10% 인상하는 쿼리입니다. 실행 후에, 다시 instructor 테이블을 보시면, 모든 교수의 연봉이 10% 인상된 것을..
최근댓글