ex09.SQL

바보·2023년 5월 21일

JSP

목록 보기
15/18

SQL

SQL 은 DB에 Access 하는 언어이다

데이터를 정의하고 (Date Definition)
조작하며 (Date Manipulation)
조작 결과를 적용/취소가 가능하고 (Transaction Control)
접근 권한을 제어하는 (Data Control)
처리들로 구성하고 있다


DataBase : 데이터를 저장 관리하는 소프트웨어

DBMS : DB management System. DB를 효과적으로 사용하기 위한 소프트웨어

DBMS 종류 : oracle, MySQL, MS-SQL 등

  • SQL : 구조화 된 질의 언어
    Structed
    Query
    Language
select banner from v$version;

결과
Oracle Database 19c EE Extreme Perf 릴리스 19.0.0.0.0 - 프로덕션
이런식으루 나옴
사실 뭔지 모르겠음 물어봐야징
SYSTEM 계정은 관리자 계정이므로 연습할 때 좋지 못하다
따라서, 실습을 위한 일반 계정을 생성한다

c## 뒤가 아이디
by 뒤가 비밀번호

1. 계정 생성
create user c##babo identified by boba;

2. 권한을 부여
grant dba, resource, connect to c##babo;

3. 현재 접속한 계정을 확인
show user;

, 에 대하여

나의 지피티가 설명해줌
우리 지피티 똑똑행

(컬럼) 나열:
SELECT 문에서
특정 열을 선택할 때,
열 이름을 쉼표로 구분하여 나열합니다.
예를 들어,
"SELECT 컬럼1, 컬럼2 FROM 테이블"과 같이 사용합니다.


테이블 나열:
FROM 절에서
여러 개의 테이블을 참조할 때,
테이블 이름을 쉼표로 구분하여 나열합니다. 
예를 들어,
"SELECT * FROM 테이블1, 테이블2"와 같이 사용합니다.


값 나열:
INSERT 문에서
여러 개의 값을 동시에 삽입할 때,
값을 쉼표로 구분하여 나열합니다.
예를 들어,
"INSERT INTO 테이블 (열1, 열2) VALUES (값1, 값2)"와 같이 사용합니다.


조건식 나열:
WHERE 절이나 IN 절에서
여러 개의 조건식을 나열할 때,
조건식을 쉼표로 구분하여 나타냅니다.
예를 들어,
"SELECT * FROM 테이블 WHERE 조건1, 조건2"와 같이 사용합니다.


함수 인수:
함수 호출 시
여러 개의 인수를 전달할 때,
인수를 쉼표로 구분하여 나열합니다.
예를 들어,
"SELECT 함수(인수1, 인수2)"와 같이 사용합니다.

SELECT

  • Table : 테이블, 데이터가 저장되는 단위 객체
  • RDB : database management system
    관계형 데이터베이스 테이블 여러개 정의해서 여러개를 연결시킨것,
    컴퓨터에 수록한 자료들을 쉽고 빠르게 추가·수정·삭제할 수 있도록 해주는 소프트웨어
    고객 <-> 상품(구매한다) 라는 관계임
    // 솔직히 뭔 개소린가 싶음 RDB라는 것은
    후자의 내용은 이해했는데 왜 select에서 나오고
    이런걸 메모해둔건징..?

............................................................................................................................

Select : 조회
구문 : select 열1, 열2 ... from 테이블명;

select * from person;
select name from person;
select name, height form person;
select height, name from person;

아 그리고 테이블의 이름이 person임!
속성은 name, height, birth로 저장해둠

그런데
select name, age from person; 을 하게되면
ORA-00904 : "AGE": 부적합한 식별자 라고
표시를 해준다
없는 열이나, 오타는 에러가 되고
에러 된 내용을 SQL에서는 찾아준다(아직까진..?)


조건절 WHERE

각 고급 언어들은 if, for 이런 식인데
sql은 where을 쓴다

  • Where
    : 조건에 일치하는 행만 거를 수 있다

※ SQL은 ' ' 가 문자열이고
SQL 구문은 같다는 표시가 =(= equals) 라는 뜻임

select * from person where name = '홍길동';
select height, birth from person where name = '김진호';




조건을 상세하게 처리할 수 있다

select * from person where height < 170.5;
select * from person where height <= 170.5;
select * from person where birth != '99/12/30';
  1. 초과
  2. 이상
  3. 입력한 내용 이외의 모든 내용들



논리연산자 and, or, not

: 찐 상세하게 처리함

select * from person where birth >= '00/01/01' and height >= 160;

null

: 데이터가 없단 의미고 =(equals)로 판별 불가하다

select * from person where name = null; (x)

is

: null을 판별할때에는 is를 사용한다
영문법처럼 쓰이기 때문에 not is가 아니라 is not으로 작성한다

select * from person where name is null;
select * from person where name is not null;





Structured : 구조화된
Query : 질문, 질의, 의문
Transaction : 처리, 거래
Manipulation : 교묘한 처리, 조작
Definition : 정의, 명확
Control : 통제, 지배, 관리, 감독



  • 후기

줄바꿈이 난리 났지만
내 마음이 난리나서 그런 것 같다.
새벽 6시 졸리기 시작한다
SQL 부터는 복습을 다시하고
구문 및 사용방법 꼭 외우고 메모하며 보는 습관!

profile
바보는 타이핑으로 공부하자

0개의 댓글