라벨이 Mysql인 게시물 표시

mysql dump 로컬 밖에 DB 접속해서 할때

로컬에 밖에 있는 mysql 덤프 뜨는방법 mysqldump -h 192.168.0.1 -u -p databases > target

mysql last insert id

mysql autoincreament 일 때 다음에 사용할 index 가져오기 <insert id="insert" parameterType="DeviceErrorLog">         INSERT INTO <include refid="tableName"/>         (             <include refid="baseColumns"/>         )         VALUES         (             <include refid="baseValues"/>         )         <selectKey resultType="_int" keyProperty="id" order="AFTER" >               SELECT LAST_INSERT_ID()         </selectKey>      </insert>

mysql 분단위 평균 값 구해서 사용하기(mybatis)

같은 구조의 테이블이라면 다음과 같이 모아서 사용하기 <select id="get5minList" resultMap="resultMapAvg">         SELECT date_format(log_time, '%Y-%m-%d %H:%i:%s') as time , truncate(avg(sensor_value),2) as sensor_value_avg, ${tableName}.* FROM ${tableName} <where> <if test="startDate != null"> log_time &gt;= #{startDate} </if> <if test="endDate != null"> AND log_time &lt;= #{endDate} </if> </where>     GROUP BY ceil(date_format(log_time,'%i')/5)   LIMIT 30000     </select> 위에서  ceil(date_format(log_time,'%i')/5) 이렇게 사용하면 5분 동안에 센서 데이터 값의 avg를 구해서 사용할 수 있다.

Mybatis #과 $

SELECT * FROM `aaa`; 일때 ${aaa} 이면 aaa 값이고 #{aaa} 이면 'aaa' 값으로 sql 문이 만들어 진다.

Mysql - concat

Table에 2개의 필드를 이용해서 하나의 필드를 생성할 수 있다. 고유아이디가 필요할 경우 사용하면 편리하다. 아래는 예제이다. select concat(node_id, '-', sensor_type) as sensor_id, tb_sensor.* from  `krri`.`tb_sensor`;

Mysql Auto increment 사용 주의사항

Mysql 사용시 오토 인크리먼트가 되면 마지막 아이디를 사용자에게 알려주기 위해서 아래와 같은 문장으로 마지막 아이드르 받아온다.(Mybatis) <selectKey resultType="_int" keyProperty="id" order="AFTER" >             SELECT LAST_INSERT_ID()         </selectKey> 이 때 주의 사항이 생긴다. 오토 인크리먼트를 사용하지 말아야 할 곳에서 사용하게 되면 PK값을 쓰레기 값으로 준다. 이거 조심해야것다

mysql Auto increment

mysql에서 Auto increment로 설정된 테이블에서 마지막으로 설정된 값을 불러올 때 다음과 같이 사용한다. <selectKey resultType="String" keyProperty="id" >  SELECT LAST_INSERT_ID() as id </selectKey>

Mysql JOIN 사용시 컬럼이름 중복해결

mysql에서 join을 통해서 2개 이상의 테이블을 연결했을 때 2개의 테이블의 컬럼이 중복된다면 Alias를 사용해서 중복된 컬럼의 이름을 별칭으로 사용해서 해결 한다. 예를 들면 Table A와B에 공통된 컬럼인 test가 존재하면 SELECT * A.test as Atest, b.test as Btest FROM A LEFT OUTER JOIN B USING(key)와 같이 변경 하면 컬럼의 이름이 같아서 발생하는 에러를 방지 할 수 있다.

Mysql 외래키 설정시 주의할점

외래키로 설정되어 있는 컬럼은 외래키와 연결된 값이 있는지를 검색하고 있으면 저장된다. 하지만 최초등록시 외래키값을 모른 상태에서 등록할 수 있게 하려면 "null"값이 들어갈 수 있게 컬럼의 속성을 변경해줘야 한다. 변경은 다음과 같이 한다. ALTER TABLE 'table' MODIFY 'colum' char null; 주의 : 컬럼의 속성이 기본형(int,..)이면 null 값이 들어갈 수 없다.