콘솔에서 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 : 데이터 삭제
'DataBase' 카테고리의 다른 글
관계형 데이터베이스 (0) | 2021.04.08 |
---|---|
데이터와 데이터베이스 (0) | 2021.04.08 |
데이터베이스 - 제약조건 (0) | 2021.04.08 |
[Oracle] 함수 (0) | 2021.04.06 |
[MySQL] (0) | 2021.02.23 |