DataBase

[Oracle] SQL 명령어

Dahoon06 2021. 4. 5. 12:20
728x90
반응형

콘솔에서 sqlplus로 이동 후

 

사용자 계정을 생성하기 위한 관리자 접속

conn sys as sysdba

conn => 데이터 접속 명령

sys => 데이터베이스 시스템

sysdba => 데이터베이스 시스템관리자

 

 

 

계정 생성

SQL > Create user 사용할계정명 identified by 비밀번호;

create user => 새로운 사용자 계정을 생성하는 명령

identified by => 비밀번호 부여

 

 

생성된 사용자 계정에 접속, 테이블을 생성할 수 있게 권한 부여

grant 권한, 권한, 권한,... to 부여받을 계정명

SQL > grant connect, resource to 계정명;

grant => 권한을 부여

connect => 접속에 관한

resource => 테이블등을 생성할 수 있는 권한

 

뷰를 생성할 수 있는 권한

SQL > grant create view to 계정명;

 

 

비밀번호를 까먹었을 때 새로운 비밀번호 부여

alter user 변경할사용자계정명 identified by 변경비밀번호;

 

 

기존 계정에 접속 방법

conn 계정명/비밀번호;

 

계정 삭제

시스템 계정으로 접속 후

SQL> drop user 계정명;


 

직전에 실행했던 명령문 보기 

SQL> list; (방금 사용한 명령문이 나옴)

 

직전에 실행했던 명령문 다시 실행

SQL> run; (직전에 사용했던 쿼리문을 쓰지않고 바로 실행)

 

직전에 실행했던 명령문 파일로 저장

SQL> save 파일명;

 

save로 저장된 파일 불러오기

SQL> get;

 

 

SQL*PLUS사용중에 운영체제 명령 실행

SQL> host;

=> 다시 SQL로 돌아올때는 exit;

 

콘솔창 지우기

SQL> cl src;

 


계정내의 테이블 조회

select * from tab; 

select => 선택(조회)

* => 모든 파일

from => ~로 부터

tab => table의 약자

 

 

테이블 생성 ( 현재 어떤 계정에 접속하고 있는지 반드시 확인!!! )

* 사용중인 계정 확인 => SQL> show user;

create table 테이블명 (필드명 데이터형,필드명 데이터형, ....);

 

예) 이름, 아이디, 비밀번호를 저장하는 테이블 생성

 

SQL> create table member(
  2  name varchar2(10),
  3  userID varchar2(10),
  4  userPassword varchar(20)
  5  );

 

varchar(크기)
varchar : 가변성 캐릭터
크기 : byte단위
varchar2(10) => 10byte 크기를 설정
=> 'abcde' 이렇게 들어오게 된다면 자동으로 5byte로 줄여줌
=> 'abcdefghig' : 10byte다 쓴거고
=> 'aaaaaaaaaaabbbbbbbbbbccccccc' : 오류(설정 크기를 초과했기 때문에)

 

 

테이블 조회

desc 테이블명; => descript(또는 description)의 약자 ( 테이블의 구조를 보는 명령어)
SQL> desc member;

 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 NAME                                               VARCHAR2(10)
 USERID                                             VARCHAR2(10)
 USERPASSWORD                                 VARCHAR2(20)

 

 

 

테이블에 데이터 추가(삽입)

insert into 테이블명 (필드명, 필드명, 필드명....) values (데이터, 데이터, 데이터,.....);

* 주의사항 : 필드의 개수와 데이터 개수가 다른 경우 오류
               필드의 데이터 타입과 데이터의 데이터타입이 다른 경우 오류
               문자열 데이터는 무조건 '  '  로 감싸서 입력 
=> SQL내부에서는 작은 따옴표 사용!!! 큰따옴표X


예)
SQL > insert into member (name, userID, userPassword)
     2  values
     3  ('사용자','testID','1234');

테이블을 생성할 때 필드명의 순서대로 데이터를 입력할 경우에는 필드명 생략가능

SQL > insert into member values ('사용자2',testID2','1234');

 

자바에서 하나의 문자열로 받아들인다.그렇기에 테이블명과 데이터를 입력할때공백을 확실히 구분해줘야한다.

"insert into member (name, userID, userPassword ) values ('사용자','testID','1234');"

 

 

테이블 데이터 확인

SQL> select * from 테이블명(member);

NAME                 USERID             USERPASSWORD
-------------------- ------------------- ---------------------

-------------------- ------------------- ---------------------
사용자                testID                1234

사용자2                   testID2               1234

 

 

특정부분만 확인(필드명) from 테이블명;

이름

SQL> select name from member;

 

아이디랑 비밀번호만 확인

SQL> select userID,userPassword from member;

 

아이디가 'testID'인 사람의 정보 조회

SQL> select * from member where userID = 'testID';
조회 => select
userID = 'testID'  => 조건(where)
사람의 정보 => *
조회할 테이블명 => member

조건 => AND 또는 & 사용가능

 

 

데이터 변경

update 테이블명 set 필드명=변경값 where 검색필드명=검색값(조건);

SQL> updata member set userID='tID2' where userID='testID' AND userPassword='1234';

 

NAME                 USERID             USERPASSWORD
-------------------- ------------------- ---------------------

-------------------- ------------------- ---------------------
사용자                 tID2                 1234

사용자2              testID2               1234

 

 

테이블 구성요소 수성

컬럼명 변경

alter table 테이블명 rename column 이전컬럼명  to 새로운컬럼명;

컬럼 데이터 타입,길이 변경

alter table 테이블명 modify (컬럼명 데이터타입(길이));

* 단 데이터가 이미 들어가 있는 상태에서 수정하는 것이면

delete from 테이블명; 을 통하여 데이터를 한번 지워 빈 테이블을 만들어야한다.

 

 

 

 

데이터 삭제

delete from 테이블명; => 테이블의 모든 데이터 삭제(데이터가 다 지워지므로 주의해서 사용)

delete from 테이블명 where 검색필드명=검색값;

 

SQL> delete from member where userID='tID2';

 

NAME                 USERID             USERPASSWORD
-------------------- ------------------- ---------------------

-------------------- ------------------- ---------------------
사용자2              testID2               1234

 

 

 

불필요한 테이블 삭제

SQL> drop table 테이블명;

 

** delete레코드(record)를 지우는것이고 drop테이블을 지우는것

 

 

 

작업을 멈출 때 반드시 commit; (그래야 데이터가 날라가지 않는다.)

 


 

표준 SQL(ANSI SQL) : 데이터베이스 종류에 관계없이 표준적으로 쓰이는 SQL명령어

select~from : 정보 조회

insert into : 데이터 삽입
update ~ set : 데이터 수정(변경)
delete from : 데이터 삭제

 

 


 

23일차 수업 추가 명령어

 

 

 

 

 

 


 

728x90
반응형

'DataBase' 카테고리의 다른 글

관계형 데이터베이스  (0) 2021.04.08
데이터와 데이터베이스  (0) 2021.04.08
데이터베이스 - 제약조건  (0) 2021.04.08
[Oracle] 함수  (0) 2021.04.06
[MySQL]  (0) 2021.02.23