가000001, 가000002, 가000003, 가000004 이런식으로

 

가00000X 이런식으로 반복되는 항목이 아닌 것을 찾으려고 합니다.

 

         /가00000[0-9]{1}/g

 

식으로 정규식을 만들면 가000000 ~ 가000009까지 사용가능

 

         /가0000[0-9]{2}/g

 

식으로 정규식을 만들면 가000000 ~ 가000099까지 사용이 가능

$('#a1').val();

input tag에 ID를 부여하여 사용하는데 값이 자꾸 안 찾아지길래 확인해 보았다.

 

나는 555의 value를 얻고 싶었지만 444의 값만 얻게 되어서 확인해 보니

 

<input type="text" id="a1" val="444"/>





.....






<input type="text" id="a1" val="555"/>

 

저 위쪽에 똑같은 id 값을 가지고 있는 input 태그가 있어서 맨 위에 있는 값만 가지고 온 것 같았다.

 

 

 

'▶Devel > WEB' 카테고리의 다른 글

[정규식] 반복적인 정규식 만들기  (0) 2021.05.01
[보안] XSS 개념  (0) 2020.06.08
[JS] javaScript 특정문자 치환 - 함수 : replace()  (0) 2020.06.03

sysdate()와 now()는 현재 시간, 날짜를 가져올 수 있는 편리한 함수입니다.

 

그런데 차이를 아시나요??

 

sysdate()는 문구가 나올 때 마나 조회를 해서 가지고 오는 것이고

now()는 쿼리가 실행했을 때 시간을 가지고 옵니다.

 

예를 들어 설명을 드리겠습니다.

 

pg_sleep()을 사용해서 함수의 차이를 보여 드리겠습니다.

 

먼저 sysdate()입니다.

 

sysdate() 함수

 

2초의 시간 차이가 나타났습니다.

 

 

now()입니다.

 

now() 함수

 

시간 차이가 없습니다.

 

그리고 now()함수가 sysdate()보다 빠르다고 합니다.

 

대량의 시간으로 조회하는 쿼리를 작성하시는 분들은 sysdate()보다 now()를 사용해서 작성하는 쿼리가 더 많습니다.

PostgresSQL에도 MySQL처럼 sleep() 함수가 pg_sleep()로 있습니다.

 

sleep()함수는 해당 시간 만큼 프로세스의 기동을 멈추는 역할을 하는 함수입니다.

 

사용법은

 

pg_sleep(2) : 2초 delay.

 

2초 딜레이 발생

 

b.date_completed >  a.dc::date + INTERVAL '1 DAY 7:20:00'

a.dc::date 처럼 나타 나 있는 절이 코드를 보면 가끔 있을 것이다.

 

::(double colon)은 CAST/CONVERT 함수와 같은 역활을 하고 있습니다.

 

CAST/CONVERT 함수는 데이터 형식끼리 실시간으로 변환하는 함수입니다.

 

사용법은 

 

CAST(abc AS type)

abc::type

CONVERT(type, abc)

 

세가지 전부 사용가능하며 abc를 type으로 데이터 형식을 변환합니다.

'▶Devel > DB' 카테고리의 다른 글

[MySQL] sysdate() / now() 함수  (0) 2020.06.11
[PostgresSQL] sleep() 함수  (0) 2020.06.11
[PostgreSQL] 집계 함수  (0) 2020.04.06
[PostgreSQL] JOIN(INNER, OUTER, SELF)  (0) 2020.04.06
[PostgreSQL] ROWNUM - 행의 수 / LIMIT - 행 갯수 제한  (0) 2020.04.06

(Cross-site Scripting)는 웹 상에서 가장 기초적인 취약점 공격 방법의 일종으로, 악의적인 사용자가 공격하려는 사이트에 스크립트를 넣는 기법을 말합니다. 공격에 성공하면 사이트에 접속한 사용자는 삽입된 코드를 실행하게 되며,  보통 의도치 않은 행동을 수행시키거나 쿠키나 세션 토큰 등의 민감한 정보를 탈취합니다. 크로스 사이트 스크립팅이란 이름 답게, 자바스크립트를 사용하여 공격하는 경우가 많습니다. 공격 방법이 단순하고 가장 기초적이지만, 많은 웹사이트들이 XSS에 대한 방어 조치를 해두지 않아 공격을 받는 경우가 많습니다. 여러 사용자가 접근 가능한 게시판 등에 코드를 삽입하는 경우도 많으며, 경우에 따라서는 메일과 같은 매체를 통해서도 전파됩니다. 물론, HTML을 사용하는 것이기 때문에, Text-Only 게시판이나, BBCode를 이용하는 위키위키 등에서는 XSS가 발생할 일은 없습니다. 단, <code>{{{#!html HTML}}}<code> 을 이용해서 HTML 태그를 사용할 수 있으므로 취약점이 있을 수도 있습니다. 주로 CSRF를 하기 위해서 사용되기 때문에 종종 CSRF와 혼동되는 경우가 있으나, XSS는 자바스크립트를 실행시키는 것이고, CSRF는 특정한 행동을 시키는 것이므로 다릅니다.

 

 

예제 글 등록

 

 

 

글 등록 후 실행 했을 때.

 

 

 

<c:out> 처리함으로써 그냥 문자열로 출력이 가능함.

js에서 어떤 문자를 수정하기 위하여 사용하는 함수 replace

 

// test용 문자열
var test = "a가나다A부비비";

// 'a'를 문자열에서 제거하기 위함.
test = test.replace("a","");

// alert으로 test출력
// 가나다A부비비 를 출력합니다.
alert(test);

 

replace("변경이 필요한 문자", "변경할 문자");

- 변경이 필요한 문자를 => 변경할 문자로 변경함.

- ex) replace("a", "b") => a를 b로 바꾸는 것을 뜻합니다.

- 변경할 문자가 "" 공백일시 해당 문자를 삭제합니다.

- 변경이 필요한 문자에 정규식을 사용할 수 있습니다.

 

 

 

 

 

따옴표(")를 제거하기 위한 방법

replace(/^"(.*)"$/, '$1') -> 이 정규식을 사용하면 해당 변수의 처음과 끝에만 있는 "를 제거합니다.

 

 

 

 

 

 

 

 

 

참고 : https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/String/replace

'▶Devel > WEB' 카테고리의 다른 글

[정규식] 반복적인 정규식 만들기  (0) 2021.05.01
[jQuery/js] 아이디 값 중복시 나타나는 현상  (0) 2021.04.27
[보안] XSS 개념  (0) 2020.06.08
  • 집계 함수 : 입력이 여러개 이고 출력이 하나인 것을 말합니다.
  • count : 행의 갯수를 세는 집계 함수
1
2
select count(*)
  from A;
cs

 

 

 

 

 

 

  • avg : 행의 평균을 구하는 집계 함수 
1
2
select avg(c) *c는 상수로 이루어진 항
  from A;
cs

 

 

 

 

 

 

  • sum : 행의 총합을 구하는 집계 함수
1
2
select sum(c) *c는 상수로 이루어진 항
  from A;
cs

 

 

 

 

 

 

  • max : 행 중에 최대값을 구하는 집계 함수
1
2
select max(c) *c는 상수로 이루어진 항
  from A;
cs

 

 

 

 

 

  • min : 행 중에 최솟값을 구하는 집계 함수
1
2
select min(c) *c는 상수로 이루어진 항
  from A;
cs

 

 

 

 

 

  • 집계 함수를 사용함으로 써 WHERE문을 사용하여 조건을 걸어 행을 줄여서 계산도 가능합니다.
1
2
3
select sum(c) *c는 상수로 이루어진 항
  from A
 where c < 10;
cs

 

 

 

 

 

  • GROUP BY/HAVING절 그룹을 짝지어서 나누어 사용도 가능합니다. 
1
2
3
4
select count(c)
  from A
 order by c
having count(c) < 10;
cs
  • JOIN의 기본 형태

    • 테이블을 같이 연결하여 자료를 뽑아내는 것을 JOIN이라고 합니다.

    • 기본 형태 (c는 A의 칼럼, d는 B의 칼럼)

1
2
3
select *
  from A, B
 where c = d;
cs

 

  • INNER JOIN

    -JOIN시 칼럼앞에 지정자를 사용하여 명시해주면 오류를 줄일 수 있습니다.

    • 형태
1
2
select *
  from A INNER JOIN B ON (A.c = B.d);
cs

 

 

  • OUTER JOIN

  • LEFT OUTER JOIN은 왼쪽자료를 기준으로 오른쪽 자료가 만족하는 것이 없으면 그 값을 null로 출력합니다.

    • RIGHT OUTER JOIN은 LEFT와 반대로 오른쪽 자료를 기준으로 왼쪽 자료에 만족하는 것이 없으면 그 값을 null로 출력합니다.

    • FULL OUTER JOIN은 LEFT OUTER JOIN / RIGHT OUTER JOIN을 합쳐 놓은 조인형태를 보여준다.

1
2
select A.c, A.g, B.k
  from A (left/right/full) outer join B on (A.c = B.d);
cs
  • SELF JOIN

    • 자기 자신을 JOIN하여 사용하는 형태
1
2
3
4
select A.c, A.g, B.k
  from A A1, A A2
 where A1.g < A2.g
   and A1.h > A2.h;
cs
  • MySQL과 같이 LIMIT를 사용

      WHERE 구문 다음에 LIMIT 문구를 사용한다.

     맨 마지막에 들어가야 된다.

      item_box에서 상위 5개만 출력하기 위한 SQL 

1
2
3
select *
  from item_box
 limit 5;
cs

      

 

 

  • 해당 행에 ROWNUM 출력하기
1
2
3
select (row_number() over()) as rownum, 
       *
  from item_box
cs

 

 

 

 

  • LIMIT는 LOWNUM과 상관없이 정해진 행만큼 자른다.

     LIMIT 5일시 상위 5행만 출력된다.

'▶Devel > DB' 카테고리의 다른 글

[PostgresSQL] sleep() 함수  (0) 2020.06.11
[PostgreSQL] ::(double colon)의 의미  (0) 2020.06.11
[PostgreSQL] 집계 함수  (0) 2020.04.06
[PostgreSQL] JOIN(INNER, OUTER, SELF)  (0) 2020.04.06
[PostgreSQL] Table / Row 정보조회 SQL  (0) 2020.04.06

+ Recent posts