[javascript/자바스크립트] 연산자(operator)
 

 

 


자바스크립트 연산자(operator)


 이번 포스팅에서는 javascript에서 사용되는 연산자에 대해서 알아보도록 하겠다. 연산자란 값에 대해 작업을 컴퓨터에게 지시하기 위해 사용되는 기호를 의미하며, 아래와 같은 종류들이 있다.


연산자와 연산자 기호
 

산술 연산자
 
+, -, *, /, %
 

대입 연산자
 
=, +=, -=, /=, *=, %=, >>=, <<=, &=, |=
 

관계 연산자
 
>, >==, <, <==, ==, ===, !=
 

조건 연산자
 
조건식?구문1:구문2
 

논리 연산자
 
!, &&, ||
 

증감 연산자
 
++, --
 

산술 연산자

 

 산술 연산자는 말 그대로 숫자를 더하거나 빼는 등의 수학적 용도의 연산자를 의미한다. 다른 언어에서도 동일하게 사용되며, 대부분 알고 있는 기호일 것이다.


산술연사자 기호 와 내용
 

+
 
더하기
 

-
 
빼기
 

*
 
곱하기
 

/
 
나누기
 

%
 
나머지
 


대입 연산자


대입 연산자는 변수에 특정 값을 저장하기 위해 사용하는 연산자를 의미한다. 프로그래밍 언어 공부가 처음이라면 어렵고 생소할 수 있으나 굉장히 많이 사용되며 편리하다.

 

연산자와 연산자 설명
 

a=b
 
우항(b)을 좌항(a)에 대입
 

a+=b
 
좌항(a)과 우항(b)을 더한 후 좌항(a)에 대입(a = a + b)
 

a-=b
 
좌항(a)을 우항(b)으로 뺀 후 좌항(a)에 대입(a = a - b)
 

a/=b
 
좌항(a)을 우항(b)으로 나눈 후 a에 대입(a = a / b)
 

a*=b
 
좌항(a)을 우항(b)과 곱한 후 a에 대입(a = a * b)
 

a%=b
 
좌항(a)을 우항(b)으로 나눈 후 나머지를 a에 대입(a = a % b)
 

a>>=b
 
a만큼 b를 오른쪽 시프트 연산 수행 후 결과를 a에 대입
 

a<<=b
 
a만큼 b를 왼쪽 시프트 연산 수행 후 결과를 a에 대입
 

a&=b
 
a와 b를 AND 연산 후 a에 대입
 

a|=b
 
a와 b를 비트 OR 연산 후 a에 대입
 


 

 


블로그 이미지

itworldkorea

IT korea가 세상(world)을 변화시킨다.

,

오늘은  연산자에 대해서 학습합니다.

 

1) 논리 연산자

논리 연산자는 참인지 거짓인지를 나태내어 줍니다.

종류

AND(&,&&)

OR(|,||)

XOR(^)


AND 연산자는 모든 값이 참 일때 참을 뱉어냅니다.

OR 연산자는 값중에 하나라도 참 일때 참을 뱉어 냅니다.

XOR 연산자는 서로 값이 다를때 참을 뱉고 서로 값이 같다면 거짓을 뱉습니다.

아래의 표를 보면 이해가 쉽습니다.
 A가 거짓 B가 거짓 일때 AND연산자는 거짓을 알려주고 OR도 거짓 XOR도 거짓을 알려주는 구나 이렇게 이해 하시면 됩니다.

이유는 둘다 참일때 AND연산자는 참을 알려주고 OR는 하나라도 참이면 참을 알려주고 XOR는 서로 다를때 참을 알려주기 때문입니다.

 

2) 증감 연산자

증감 연산자의 종류에는 2개가 있습니다.

증가를 나타내는 ++와 감소를 나타내는 --가 있습니다.

서로 각각 1을 증가시키거나 1을 감소 시키는 기능을 하는데요.

a라는 변수가 있다고 할때

앞에 위치하거나 뒤에 위치하거나 할 때의 차이점을 나타냅니다.

예를 들어

++a, a++, --a, a--

위와 같이 사용을 하는데요.

++a 는 먼저 자신을 1증가 시키고 다른 연산을 시작하며

a++ 는 먼저 다른 연산을 한후 자신을 1 증가 시킵니다.

소스를 통하여 비교를 해봅시다.

 

<html>
<head>
<title></title>
<script>
a = 10;
b = ++a;
document.write(b);
</script>
</head>
<body>
</body>
</html>

결과값은 11

 

3)관계연산자

관계 연산자는 초등학교시절 배운거라서 쉽습니다. 부등호 아시죠? ^^

관계 연산자의 종류는 다음과 같습니다.

<크다.

<= 크거나 같다.

> 작다

> 작거나 같다

== 같다(===)

!= 같지 않다.(!==)

즉 3<4 라는 식이 있다면 거짓인 false를 출력 하게 됩니다.

그리고 4 < 3 이라는 식이 있다면 참인 true가 출력 됩니다.

같다에는 == 과 === 가 있죠. 서로 같으면 참을 보여줍니다.

같지 않다에는 !=과 !== 가 있죠 서로 같지 않으면 참을 보여줍니다.

== 과 === 의 차이 그리고 != 과 !== 의 차이는 무엇일까요?

== 은 값이 같다면 참이지만 ===은 값과 타입까지 같아야 참입니다.

!= 은 값이 다르면 참이지만 !==은 타입도 다르고 값도 달라야 참입니다.

여러 가지 식을 써서 한번 확인해보죠.

 

4) 조건 연산자

변수 = 조건?true:false;

변수 = 조건?true:false; 조건이 true면 true를 대입하고 false면 false를 변수에 대입하는데요.

예를 들어,

number = 10>5?"number":"string";

위의 식을 보면 10>5가 크면 number라는 문자열을 number변수에 대입하고 아니라면 string라는 문자열을 대입하라는 것입니다. 10은 5보다 크므로 number이라는 문자열을 number 변수에 대입합니다.

다른 예

number = 10>5?10:5;

위의 식은 10이 5보다 크면 10을 number에 대입 아니면 5를 대입하는 식입니다. 이제 아시겠죠?

 

위 결과값은 10

 

블로그 이미지

itworldkorea

IT korea가 세상(world)을 변화시킨다.

,

1. 오라클 설치
   오라클 접속 ( 툴 이용 )

2. SQL ( Structured Query Language )
: 데이터베이스 명령어
: 데소문자 구별이 없다. (리터럴 제외, 즉 실제값은 대소문자 구별됨)
: 문장의 끝은 ;

<종류>
가. DML ( Data Manipulation Language )
- insert (데이터 삽입)
- delete (데이터 삭제)
- updata (데이터 수정)
- merge  (데이터 병합)
==> 트랜잭션 (transaction) 고려해야 된다.

나. DDL ( Data Definition Language )
- create (객체 생성)
- alter  (객체 수정)
- drop   (객체 제거)

* 객체 종류( Object )
- 테이블
- 인덱스
- 뷰
- 시퀀스
- 시노님

다. TCL ( Transaction Control Language )
=> 트랜잭션 관련 명령어
- commit
- rollback

라. 권한할당 / 권한취소
- grant (권한 할당)
- revoke (권한 취소)

마. qurey
- select ( 데이터 조회 )

3. 관계형 데이터베이스
=> 데이터를 테이블 형태로 관리하며, 테이블간에 관계를 맺으면서 데이터를 관리하는 방법

 열(컬럼)
  이름     나이    주소     ==> 컬럼헤딩
 -----------------------
 홍길동     20     서울     ==> 행(레코드 : 자바의 인스턴스)
 이순신     44              ==> 비어있는 컬럼 ( null 값을 갖는다고 표현 )
 유관순     18     경기

* 제약조건 5가지
=> 테이블의 올바른 데이터 설정하기 위해서.

가. primary key 제약조건 (PK)
=> 레코드를 식별하기 위해서 특정 컬럼에 지정. (유일하기 때문에)
=> 지정된 컬럼은 반드시 유일한 값을 갖는다.
   또한 null값을 갖지 못한다.
=> 중복데이터 저장을 방지할 수 있다.
=> 예> 주민번호, 사원번호, 학번

나. unique 제약조건 (UK)
=> 컬럼에 유일한 값을 저장하기 위한 제약조건.
   null값 허용.

다. not null 제약조건 (NN) (개체 무결성)
==> 컬럼에 null 값을 허용 안함.

라. check 제약조건 ( CK )
=> 컬럼에 저장할 데이터의 조건체크해서 저장여부 결정

 예> age > 20

마. foreign key 제약조건 ( FK ) (참조 무결성)
=> 다른 테이블의 PK값을 갖거나 또는 null 값을 가질수 있는 제약조건

4. select 문
- 데이터 조회시 사용되는 SQL문.

문법 :
 select 컬럼명,컬럼명2
 from 테이블명;

 select * from 테이블명;

 select salary, salary+100 -- 연산 가능
 from 테이블명;

  * 주의할점은 null을 연산하면 결과는 null이다.
   NVL (컬럼값, 초기값)
 select 컬럼명 as별명, 컬럼명 별명
 from 테이블명;
 => 모든 레코드 대상으로 출력된다.

5. 특정 레코드 검색

 select 컬럼명,컬럼명2 ( * : 모든 컬럼)
 from 테이블명
 where 조건식;

가. 비교연산자

where 컬럼 = 값;
where 컬럼 > 값;
where 컬럼 >= 값;
where 컬럼 < 값;
where 컬럼 <= 값;
where 컬럼 != 값;

 * 리터럴 종류
a. 수치
b. 문자 => ' '
c. 날짜 => ' '
==> 리터럴은 대소문자 구분됨


나. 논리연산자

AND, OR, NOT

다. 범위 지정

BETWEEN a AND b ( a부터 b까지 , a 와 b 포함 )

라. IN 연산자
=> 일치하는 값만 출력
예> salary IN(2000,4000,6000);
==> salary = 2000 OR salary= 4000 OR salary = 6000

마. LIKE 연산자
==> 일부분만 일치해도 출력
==> 2가지 심볼(symbol) 사용

% : 없거나 여러문자 대치
_ : 한문자 대치

예> s로 시작하는 사원?
    where first_name LIKE 's%';

    s로 끝나는 사원?
    where first_name LIKE '%s';

    s문자를 갖는 사원?
    where first_name LIKE '%s%';

    s로 끝나는 사원?
    where first_name LIKE '____s';

바. null 값 찾기

: IS NULL
예>
    where commission_pct IS NULL;

사. NOT 연산자
: 부정
예>  
    where commission_pct IS NOT NULL;

6. 함수 ( function )
가. 대문자로 변경 : upper(컬러명)
나. 소문자로 변경 : loewr(컬럼명)
다. NVL : null값을 다른값으로 변경
라. 변환함수
 수치데이터 문자데이터 날짜데이터 
 to_char()
 => 문자데이터로 변경
 to_number()
 => 수치데이터로 변경
 to_data()
 => 날짜데이터로 변경

 예>
 where salary = '2000';

 * 특정 포맷 지정 가능
 to_char (hire_data , 'YYYY')

마. 그룹함수
  
    - max(컬럼값)
      => 최대값
   
    - min(컬럼값)
      => 최소값

    - sum(컬럼값)
      => 합계

    - avg(컬럼값)
      => 평균
   
    - count(컬럼값)
      => 레코드 개수

    - count(*)
      =>

=======> 결과값이 하나이다. 따라서 다른 컬럼과 같이 사용불가, 같이 사용하려면 일반
         컬럼을 그룹으로 묶는다.


바. 날짜 함수
- sysdate
==> 년/월/일
- timestamp
==> 년/월/일 시:분:초.소수점9자리까지
==> 정밀도가 높다.

예 > select sysdate,timestamp
     from dual;   //daul 은 임시테이블

     select 123*234
     from dual;

7. 정렬
==> SELECT문의 마지막 문이다.

: 오름차순(기본) : asc,ASC
    ==> order by 컬럼명 ASC;
 order by 컬럼명;

: 내림차순 : desc,DESC
    ==> order by 컬럼명 DESC;

select
where
groub by
having
order by

* 다중정렬
order by 컬럼명 DESC ,  컬럼명 ASC;

-----------------------------------------------------------------------------------------
8.DDL (Data Definition Language)
- create
- alter
- drop

 * 스키마 ( schema )
: 특정 사용자가 접속해서 생성한 객체들의 대표이름.
: 사용자 개정명과 동일하다.
  스키마라고 하면 계정을 의미한다.

: 스키마는 반드시 소유자가 있다.
  다른 스키마는 접속 불가. ( 권한 없기 때문에 )

==> 스키마.테이블명;

예> select * from hr.employee;  -- hr 스키마의 employees 테이블 접근

* 객체 종류
- 테이블 : 데이터 저장
- 뷰 : 테이블의 창 , 보안과 편리한 조회
- 시퀀스 : 테이블의 특정 컬럼의 값을 자동으로 증감시키는 객체. 예> 게시판의 글번호
- 인덱스 : 테이블의 검색속도를 향상시키기 위해서, 책의 인덱스
           PK,Unique 컬럼에는 자동으로 부여된다.
- 시노님 : 테이블의 별명 예> hr.employees


9. 테이블 생성
문법>

 create table 테이블명(
    컬럼명  데이터형  제약조건
      컬럼명  데이터형 ,
        컬럼명  데이터형
 );

* 데이터형
가. 수치형 : number(자릿수) ==> 정수
      number(자릿수, 소수점자릿수)  ==> 실수
          예>
       age NUMBER(3), ==? 000 ~ 999

나. 문자형 : char( 바이트 ) ==> 캐릭터 --> 고정형( 크기고정 )
      예> name char(10) ===> 'aaa' 저장해도 10byte가 크기 지정됨
      => 최대 2000바이트까지

      varchar2( 바이트 ) ==> 박캐릭터투, 바차투 --> 가변형 (크기가변)
      예> name varchar2(10) ===> 'aaa' 저장해도 3byte가 크기 지정됨
      => 최대 4000바이트까지
다. 날짜형 : data

       timestamp

* 실습
가. scott 계정생성 => 관리자만 가능

 create user 계정명
 identified by 비번;
예>
 create user scott
 identified by tiger;

나. 권한 부여
==> 접속권한(connect),객체생성권한(resource)
==> 관리자만 부여
     
 grant 권한, 권한2
 to 계정;

예>
        grant connect, resource
        to scott;

* 권한 과 롤 (role)
권한 : 사용자가 특정 작업을 가능하게 할 수 있는것.

권한 종류
a. 시스템 권한 : 관리자만 부여 가능
b. 객체 권한 : 객체를 소유한 사용자가 부여 가능

권한 형태
: create table
: create view
: create index
: drop table
: create session

롤( role )?
==> 권한들의 묶음을 의미.
==> 권한부여 및 취소를 편리하게 하기 위해서....
예> connect, resource

다. person 테이블 생성
--> scott 계정에서
 create table person(
 num NUMBER(4),    -- 숫자
 name VARCHAR(10), -- 이름
 age NUMBER(3),    -- 나이
  address VARCHAR(100) --주소
    );

* default 키워드 사용
==> null 방지 기능 및 특정값 입력 가능한 방법.

   create table person2(
   num NUMBER(4),            -- 숫자
   name VARCHAR2(10),        -- 이름
   age NUMBER(3) DEFAULT 20, -- 나이
   address VARCHAR2(100)     -- 주소
 );

 예 >
   --게시판
 create table board(
  
   writeday DATE DEFAULT SYSDATE,  --작성한 날짜를 항상입력하는게아니라 자동적으로
   ...

 );

10. 데이터 저장
==> insert 문

문법>
 insert into 테이블명 ( 칼럼명, 컬럼명2 )
 values( 값, 값2 );

 => 컬럼명과 값이 일대일 대응.
    지정하지 않은 컬럼에는 null값이 저장됨
예>
 insert into person ( num, name, age )
 values( 10, '홍길동', 20 );
 insert into person ( num, name, age, address )
 values( 11, '이순신', 44, '전라');
 insert into person ( num, name, age )
 values( 12, '유관순', 18, '서울' );

나.
 insert into 테이블명
 values( 값, 값2, 값3, 값4 );
 
   ==> 반드시 테이블의 모든 컬럼에 데이터 저장해야 된다.
              또한 반드시 테이블의 컬럼순서대로 저장해야 된다.

     예>  insert into person
          values(15,'이순신',44,'전라');

 -- 에러난다.
   insert into person
          values('이순신',15,44,'전라');

11. 제약조건 ( constraints )

  가. primary key
    ==> 레코드 식별하기 위해서 특정 컬럼에 부여 가능.
    ==> 자동으로 인덱스 생성된다.
    ==> 제약조건은?
 : 반드시 유일한 값 + null값이 아닌값을 저장해야 된다.
    ==> 일반적으로 테이블당 하나씩 생성한다.
    ==> 문법 >

      가. 컬럼레벨 지정 방식
 ==> 컬럼을 지정시 같이 제약조건 지정하는 방식

 num NUMBER(4) CONSTRAINT 제약조건이름 PRIMARY KEY
   ==> 제약조건이름은 '테이블명_컬럼명_PK'형식을 지정.

 또는
 num NUMBER(4) PRIMARY KEY  ==> SYSXXXX 자동으로 지정.


     예 >
 drop table person purge; 

 create table person3(
   num NUMBER(4) constraint person3_num_PK primary key,   --  숫자
   name VARCHAR2(10),  --이름
   age NUMBER(3) DEFAULT 20,  --나이
   address VARCHAR2(100)  --주소
 );

 insert into person3 ( num, name, age )
        values(10,'이순신',44,);

 insert into person3 ( num ,name, age )
        values(10,'이순신',44);   -- 에러발생(중복값:10)

 insert into person3 ( name, age )
        values('이순신',44); --에러발생(null)

 insert into person3 ( num, name, age )
        values(null,'이순신',44); --에러발생(null)

 


      나. 테이블 레벨 지정 방식
 ==> 컬럼을 모두 지정하고 마지막으로 제약조건 지정하는 방식.

 drop table person purge; 
 create table person4(
   num NUMBER(4),   --  숫자
   name VARCHAR2(10),  --이름
   age NUMBER(3) DEFAULT 20,  --나이
   address VARCHAR2(100),  --주소
   CONSTRAINT person4_num_PK PRIMARY KEY(num)
 );

 

12. DML( insert, delete, update, merge ) 관련 작업 고려 사항
  ==> 요청한 작업이 DB에 반영이 안된 상태이다.
      언제든지 요청작업을 취소가 가능하다.
  ==> 요청작업 확정 : commit
      요청작업 취소 : rollback


  ==> 트랜잭션(transaction)과 관련됨.

    *트랜잭션 정의?
 ==> 작업단위
 ==> '여러 작업들의 묶음'으로서 하나의 작업처럼 처리하는 개념.
 
 예> 계좌이체

        500
   A --------> B    ==>A에서 수정(1000 --> 500 : update)
 1000        B에서 사입(null --> 500 : insert)

 결과 :  성공시 :
            A --------> B
           500         500


  실패시 :
     A --------> B
          1000          0

 ==> 반드시 DML작업은 트랜잭션이 발생된다.
     따라서 트랜잭션을 종료시키는 작업이 필요하다.( commit, rollback )

블로그 이미지

itworldkorea

IT korea가 세상(world)을 변화시킨다.

,