기록해! 정리해!

2-2 본문

Oracle

2-2

zsuling 2022. 5. 17. 12:44

4) update 연습 & 전산 연산

 

Create table T0517(
 sno char(3),
 sname nvarchar2(5),
 age number(3)
 );
 
insert into t0517(sno,sname,age)values('B03','효리',24);

update t0517 set sname='솔라', age='21' where sno='B01';

update t0517 set age='23' where sname='효리';

update t0517 set age=age-2;

 

select sno, sname, age from T0517;

 

* 전산연산

a = a+1 ; 오른쪽에서 왼쪽으로 넘김, 자기 자신 값에 1을 더하는 것

예) a = 5

    a = a+1

    즉, a는 6

 

S = S+a ; 누적

i = i+1 ; 1을 증가하는 식

예) age = age+1

 

 

 

5) or 연산

 

update t0517 set age='23' where sname='효리' or sname='솔라'; --권장

update t0517 set age='24' where sno in ('B01','B03');

 

update t0517 set age='23' where sname='효리' or sno='B04'; 

 

6) select 연습

 

insert into t0517(sno, sname, age) values ( 'A01', '하나', '17');
insert into t0517(sno, sname, age) values ( 'A02', '두리', '15');
insert into t0517(sno, sname, age) values ( 'A03', '마리', '13');

 select sno, sname, age from T0517;
 
 select sno from T0517;
 select sno, sname, age from T0517 where sno='A01';
 select sno, sname, age from T0517 where sno='A01'or sno= 'A02'; --둘 중 하나만 만족하면 됨
 select sno, sname, age from T0517 where sno='A01'and sname='하나'; --둘 다 만족해야함
 select sno, sname, age from T0517 where sno like'A%'; --A로 시작하는 모든 것 (%:모든,all)
 select sno, sname, age from T0517 where sno like'%0%';--0이 들어가는 모든 것
 select sno, sname, age from T0517 where sno like'_0%';--2번째 글자에 0이 있는 것
 select sno, sname, age from T0517 where sno like'__0%';--3번째 글자에 0이 있는 것
 select sno, sname, age from T0517 where sno like'%0%'or sname like '%리%';
 select sno, sname, age from T0517 where sno like'%A%'or sname like '%리';
 
 select sno, sname, age from T0517 where age >=20;
 select sno, sname, age from T0517 where age =>20; --에러 , =은 무조건 연산자 뒤에 
 select sno, sname, age from T0517 where age <=20;  
 select sno, sname, age from T0517 where age =23; --나이가 23
 select sno, sname, age from T0517 where not age=23; --나이가 23이 아닌
 select sno, sname, age from T0517 where age!=23;
 select sno, sname, age from T0517 where age<>23;
 select sno, sname, age from T0517 where age >=23; --나이가 23 이상
 select sno, sname, age from T0517 where age <15; --나이가 15 미만
 select sno, sname, age from T0517 where age >=15 and age <23;--나이가 15이상이고 23살 미만
 select sno, sname, age from T0517 order by age asc; --나이를 기준으로 오름차순 정열하시오
 select sno, sname, age from T0517 where sno like '%A%' order by age asc; 

 

* = 대입 / == 같다 이므로 원래는 ==써야함 

 

7) 기본키 (p.k)

1. 중복불가

2. null 사용불가

3. 테이블에 하나만 존재할 수 있다

4. 두개의 칼럼을 하나의 키로 만들 수 있다

예) a 001 =a001

    a 002 =a002

    b 001 =b001

    b 002 =b002

5. 유니크 제약 조건

 

 

 drop  table enrol;  --얘부터 지워야함
 drop  table student;
 drop  table course;
 
 create table student( --기본 컬럼을 다 적고 제약조건에 대한 키를 밑에 작성 (자동적으로 이름부여)
 sno varchar2(3) ,
 sname nvarchar2(10),
 year varchar2(10),
 dept nvarchar2(10) ,
 primary  key(sno));
 
 create table student( --제약조건에 대해서 수동적으로 이름을 부여한 것 
 sno varchar2(3) ,
 sname nvarchar2(10),
 year varchar2(10),
 dept nvarchar2(10) ,
 constraint   student_sno_pk   primary  key(sno,sname)); --2개의 컬럼에 1개의 pk
 
insert into student(sno,sname,year,dept)
values('100','나연묵','4','컴퓨터');

insert into student(sno,sname,year,dept)
values('100','둘리','4','컴퓨터');

insert into student(sno,sname,year,dept)
values('200','둘리','4','컴퓨터');

insert into student(sno,sname,year,dept)
values('200','둘리','4','컴퓨터'); --에러/ 유니크 제약조건; 동일한게 있으면 안됨


select * from student;
 
 
 create table student(
 sno varchar2(3) not null  primary  key ,  --컬럼 옆에 pk가 기본
 sname nvarchar2(10),
 year varchar2(10),
 dept nvarchar2(10) 
);

 

'Oracle' 카테고리의 다른 글

2-3  (0) 2022.05.17
2- 예제1  (0) 2022.05.17
2-1  (0) 2022.05.17
1-SQL 기본문법 정리  (0) 2022.05.16
1-예제1  (0) 2022.05.16
Comments