Cloud 기반 웹 DevOps 프로젝트 개발자 과정

문이빈·2023년 6월 30일
0

MySQL

사용자(ID)별로 총 구매액을 구하고 그중에서 초구매액이 1000이상인 사용자는?

select userID as '사용자', sum(price*amount) as '총구매액'
from buytbl
group by userID
having sum(price*amount) > 1000;


buytbl에서 평균 구매 건수

select avg(amount) as '평균 구매 개수' from buytbl;


buytb1에서 사용자별 평균 구매 건수

select userID, avg(amount) as '평균 구매 개수' 
from buytbl
group by userID;


키가 제일 큰 사람 제일 작은사람

select max(height) as '키가 제일 큰사람' ,min(height) as '키가 제일 작은사람' from usertbl;

select name, max(height),min(height)from usertbl;
위 코드는 name 때문에 에러가 나는데 이유는 그룹합수가 들어가면 select절에 그룹필드와 그룹함수만 가능

select name, max(height) as '키가 제일 큰사람' ,min(height) as '키가 제일 작은사
람' from usertbl group by name;
-- 서브쿼리 활용
select name,height
    from usertb1
    where height = (select max(height) from usertbl)
       or height = (select min(height) from usertbl);

....?


고객의 총 수

select count(*), count(userid) from usertbl;

count 할 때 키를 활용하는 것이 더 좋다.


휴대폰이 있는 사람의 수

select count(mobile1) as'휴대폰이 있는 사용자' from usertbl;


추가로 정렬 총 구매애기 높은 사람이 위로

select userid as'사용자',sum(price*amount)as'총구매액'
from buytbl
group by userid
having sum(price*amount) > 1000
order by sum(price*amount) desc;


rollup 소계(합계)

방법 : group by 그룹컬럼 with rollup

use exdb;
select job, deptno, sum(sal) as total_sal
from emp
where jon in ('manager', 'clerk', 'salesman')
group by job, deptno with rollup;


use sqldb;

select num, groupName, SUM(price*amount)as'비용'
from buytbl
group by groupName
with rollup;

  • DDL명령 - CREATE, ALTER, DROP, TRUNCATE
  • CREATE - 개체 생성 형식 : CREATE 개체명
  • ALTER - 개체 수정 형식 : ALTER 개체명 수정할 대상값, 수정할 값
  • DROP - 개체 삭제 형식 : DROP 개체명;
  • TRUNCATE- 개체는 삭제하지 않고 그 안의 모든 데이터와 제약조건 일부삭제 형식 : TRUNCATE : 개체명;

테이블 생성 형식
CREATE TABLE 테이블명(
필드명 데이터타입 (null여부)[auto_increament(자동증가,숫자만 가능)][제약조건],
필드명 데이터타입 (null여부)[auto_increament(자동증가,숫자만 가능)][제약조건],
..
..
[제약조건];

create table testTb1( id int, username char(3), age int);

insert into testTb1 values (1, '홍길동', 25);
insert into testTb1(id, userName) values (2, '설현');
insert into testTb1(userName, age, id) values ('하니', 26, 3);
select * from testTb1;

테이블 연습 끝났으면 삭제
drop table testtb1;


제약사항을 추가하는 테이블 생성

create table testtbl2
(id int auto_increment primary key,
 username char(3),
 age int);
 
insert into testTbl2 values (null, '지민', 25);
insert into testTbl2 values (null, '유나', 22);
insert into testTbl2 values (null, '유경', 21);
insert into testTbl2(username,age) values ('지윤', 21);
select * from testTbl2;

MySQL의 내장함수로 마지막 insert된 id 확인

select last_insert_id();


테이블을 수정, auto_increment는 1씩 증가함
auto_increment를 100부터 증가하게 수정하여 1씩

alter table testtbl2 auto_increment=100;
insert into testtbl2 values(null,'찬미',23);
select * from testtbl2;

show variables like 'auto_inc%';


insert into testtbl2 values (null,'미나', 24); -- 101

실수로 같은 값을 2개 넣어서 101자리 뺏김


create table testtbl3
(id int auto_increment primary key,
 username char(3),
 age int);
 
alter table testtbl2 auto_increment=1000;
show variables like 'auto_inc%';

-- 3씩 증가
set @@auto_increment_increment=3;

insert into testTbl3 values (null, '나연', 20);
insert into testTbl3 values (null, '정연', 18);
insert into testTbl3 values (null, '모모', 19);

select * from testTbl3;


use sqldb;

create table testtbl4
(id int, Fname varchar(50), Lname varchar(50));

다른 데이터베이스의 테이블의 정보를 가져와서 저장(권한이 있다면 이것도 가능)

insert into testtbl4
select employee_id, first_name, last_name
from hrdb.employees;

서브 쿼리를 이용한 테이블 생성, 그런데 다른 데이터베이스의 테이블을 참조

create table testtbl5
select employee_id, first_name, last_name
from hrdb.employees;

select * from testtbl4;

필드 정보 변경
update 테이블명 set 필드명 1 = '값1', ... where 조건;

-- Fname = 'Kyoichi'인 사람의 Lname을 '없음'으로 수정

update testtbl4
  set Lname = '없음'
  where Fname = 'Kyoichi';

-- 가격인상이 50%인상 buytbl에 price 수정

update buytbl set price = price*1.5;

-- 튜플 삭제 Fname = 'Aamer'인 사람

delete from testtbl4 where Fname = 'Aamer';


테이블에서 위에서부터 10개만 나와라 (limit)

SELECT * FROM sqldb.buytbl limit 10;


create table bigtbl1 (select * from HRDB.employees);
create table bigtbl2 (select * from HRDB.employees);
create table bigtbl3 (select * from HRDB.employees);
delete from bigtbl1;
select * from bigtbl1;
desc bigtbl1;

drop table bigtbl2; 아예 삭제되어서 복수 시스템을 돌렸을 때 백업까지만 살아남


truncate table bigtbl3;
desc bigtbl3;
select * from bigtbl3; 

데이터 없음


create table memberTBL
(select userID, name, addr from usertbl limit 3); -- 3건만 선택해서 생성
alter table memberTBL
    add constraint pk_memberTBL primary key(userID); -- pk를 지정함
    
select * from memberTBL;

insert into memberTBL values('BBK', '비비코', '미국'); -- pk중복 오류
insert into memberTBL values('SJH', '서장훈', '서울');
insert into memberTBL values('HJY', '현주엽', '경기');


pk 중복되면 수정해라

insert into memberTBL values('BBK', '비비코', '미국')
    on duplicate key update name='비비코',addr='미국';
insert into memberTBL values('DJM', '동짜몽', '일본')
    on duplicate key update name='동짜몽',addr='일본';

select * from memberTBL;


구매자 아이디 별로 총구매액을 구하는 조회 select, with~select

select userid as '사용자', sum(price*amount) as '총구매액'
from buyTBL group by userid;

with ABC(userid, total) -- 사용자와 총구매액
as (select userid, sum(price*amount)
	from buytbl group by userid) -- ABC 테이블이 됨
select userdi, total
from ABC
order by total desc;


각 지역별 최고 키, (평균)

select addr, max(height) from usertbl group by addr; 평균을 위해 ( )씌어야 함

with CTE_USERTBL(addr, maxheight)
as (select addr, max(height) from usertbl group by addr) -- 임시 테이블 만들어짐
select avg(maxheight*1.0) as '지역별 최고키들의 평균'
from CTE_USERTBL;


조건 문

select if(100>200, '참이다', '거짓이다');


select ifnull(null, '널이군요'), ifnull(100, '널이군요'); -- 해당 필드가 null이면 ,뒤에 일을 하고 아니라면 자신의 값을 돌려줌.

select nullif(100,100), ifnull(200,100);


switch 와 비슷한 case ~ when

select case 100 -- 여기가 switch에 해당
	   when 1 then '일' -- 자바 case 값 : 에 해당
       when 5 then '오'
       when 10 then '십'
	end as 'case 연습';


select ascii('A'), char(65); -- 아스키 값, 문자로 변환

select bit_length('abc'), char_length('abc'), length('abc');

select bit_length('가나다'), char_length('가나다'), length('가나다');
한글은 영어와 다르게 한 글자당 3byte씩 차지해서 lengh에서 차이가 난다.


select concat('/','2025','01','01');

select elt(2,'하나','둘','셋'),
field('둘','하나','둘','셋'),
find_in_set('둘','하나,둘,셋'),
instr('하나둘셋','둘'), locate('둘','하나둘셋');


select format(123456.123456, 4);

select bin(31), hex(31), oct(31);


select left('abcdefghi', 3), right('abcdefghi',3);

select lower('abcdEFGH'), upper('abcdEFGH'); -- 소문자로, 대문자로

select lpad('이것이', 5, '##'), rpad('이것이', 5, '##'); -- 5글자를 찍는데 왼쪽에 붙여라, 오른쪽에 붙여라, 나머지는 ##으로 채워라

select ltrim(' 이것이'), rtrim(' 이것이');

select trim(' 이것이 '), trim(both 'ㅋ' from 'ㅋㅋㅋ재밌어요.ㅋㅋㅋ'); -- ㅋ 다지워라
select substring('대한민국만세', 3, 2);


select current_user(), database();

select * from usertbl;

select found_rows(); -- 좀 전에 검색한 행의 수 확인


update buytbl set price=price*2; -- 가격 2배 인상, where절 없어서 하나도 수정되지 않음
select row_count();


select sleep(5); -- 5초뒤에 창이 뜸

select '5초 후에 이게 보여요';


create table pivotTest
  ( uName char(3),
    season char(2),
    amount INT  );
    
insert into pivotTest values
    ('김범수','겨울',10),('윤종신','여름',15),
    ('김범수','가을',25),('김범수','봄', 3),
    ('김범수','봄', 37),('윤종신','겨울',40),
    ('김범수','여름',14),('김범수','겨울',22),
    ('윤종신','여름',64);
select * from pivotTest;

select uName,
   sum(if(season='봄', amount, 0)) as '봄',
   sum(if(season='여름', amount, 0)) as '여름',
   sum(if(season='가을', amount, 0)) as '가을',
   sum(if(season='겨울', amount, 0)) as '겨울',
   sum(amount) as '합계' from pivotTest group by uName;


                     테이블 생성
create table stdtb1
( stdName varchar(10) not null primary key,
  addr    char(4) not null);
  
create table clubtb1
( clubName varchar(10) not null primary key,
  roomNo   char(4) not null);
  
create table stdclubtb1 -- 관계 테이블 생성
( num int auto_increment not null primary key,
  stdName  varchar(10) not null,
  clubName varchar(10) not null,
foreign key(stdName) references stdtb1(stdName),
foreign key(clubName) references clubtb1(clubName));


                      정보 입력
insert into stdtb1
values('김범수','경남'),('성시경','서울'),('조용필','경기'),
      ('은지원','경북'),('바비킴','서울');

insert into clubtb1
values('수영','101호'),('바둑','102호'),
      ('축구','103호'),('봉사','104호');

insert into stdclubtb1
values(null,'김범수','바둑'),(null,'김범수','축구'),(null,'조용필','축구'),
	  (null,'은지원','축구'),(null,'은지원','봉사'),(null,'바비킴','봉사');

회원의 이름, 주소, 클럽이름, 방번호

select s.stdName, s.addr, sc.clubName, c.roomNo
from stdtbl s
inner join stdclubtbl sc
        on sc.stdname = s.stdname
inner join clubtbl c
        on c.clubname = sc.clubname;

클럽을 기준으로 클럽이름, 방번호, 회원명, 회원주소 클럽이름 순으로 정렬

-- 클럽을 기준으로 클럽이름, 방번호, 회원명, 회원주소 클럽이름 순으로 정렬
select s.stdName, s.addr, sc.clubName, c.roomNo
from stdtbl s
inner join stdclubtbl sc
        on sc.stdname = s.stdname
inner join clubtbl c
        on c.clubname = sc.clubname
order by c.clubName;


buytbl과 usertbl을 조인

-- buytbl과 usertbl을 조인
select U.userID, U.name, B.prodName, U.adr,Concat(U.mobile1,U.mobile2) as '연락처'
from usertbl U
inner join buytbl B
on u.userid = b.userid;

-- 구매를 하지 않은 사람도 확인
select U.userID, U.name, B.prodName, U.adr,Concat(U.mobile1,U.mobile2) as '연락처'
from usertbl U
left outer join buytbl B
on u.userid = b.userid;

-- 구매되지 않은 상품
select U.userID, U.name, B.prodName, U.adr,Concat(U.mobile1,U.mobile2) as '연락처'
from usertbl U
right outer join buytbl B
on u.userid = b.userid;


select S.stdName, S.addr, C.clubName, C.roomNo
   from stdtbl S
   left outer join stdclubtbl SC
        on S.stdName = SC.stdname
   left outer join clubtbl C
        on SC.clubName = C.clubName;

select C.clubName, C.roomNo, S.stdName, S.addr
   from stdtbl S
     left outer join stdclubtbl SC
        on S.stdName = SC.stdname
     right outer join clubtbl C
        on SC.clubName = C.clubName
   order by C.clubName;

  • 두가지 결과를 합쳐서 봐야 할 경우 Union이나 union all 쓴다.
  • 좋은 방법은 아님, 차라리 역정규화를 통해서 모델링을 다시 하는게 좋음
  • Union(합집합)은 두가지 결과를 합하는데 중복은 제거
select S.stdName, S.addr, C.clubName, C.roomNo
   from stdtbl S
   left outer join stdclubtbl SC
        on S.stdName = SC.stdname
   left outer join clubtbl C
        on SC.clubName = C.clubName
union   
select C.clubName, C.roomNo, S.stdName, S.addr
   from stdtbl S
     left outer join stdclubtbl SC
        on S.stdName = SC.stdname
     right outer join clubtbl C
        on SC.clubName = C.clubName;


union all을 하면 중복을 제거하지 않는다.


select stdName, addr from stdtbl
union all
select clubName, roomNo from clubtbl;


drop procedure if exists ifProc; -- 기존에 만든적이 있다면 삭제
delimiter $$
create procedure ifProc()
begin
  declare var1 int;  -- var1 변수선언
  set var1 = 100;    -- 변수에 값 대입
  
  if var1 = 100 then -- 만약 @var1이 100이라면,
    select '100입니다.';
  else
    select '100이 아닙니다.';
  end if;
end $$
delimiter ;

call ifProc();

drop procedure if exists ifProc3;
delimiter $$
create procedure ifProc3()
begin
  declare point int;
  declare credit char(1);
  set point = 77;
  if point >= 90 then
     set credit = 'A';
  elseif point >= 80 then
     set credit = 'B';
  elseif point >= 70 then
     set credit = 'C';
  elseif point >= 60 then
     set credit = 'D';
  else
     set credit = 'F';
  end if;
  select concat('취득점수==>', point), concat('학점==>', credit);
end $$
delimiter ;

call ifProc3();


view sql문을 저장해서 테이블처럼 사용할 수 있는 개체

-- view sql문을 저장해서 테이블처럼 사용할 수 있는 개체
create view v_usertbl
as
select userid, name, addr from usertbl;

select * from v_usertbl; -- 뷰를 테이블이라고 생각해도 무방


create view v_userbuytbl
as
select U.userid, U.name, B.prodName, U.addr, concat(U.mobile1, U.mobile2) as '연락처'
from usertbl U
    inner join buytbl B
    on U.userid = B.userid;
    
select * from v_userbuytbl where name = '김범수';


drop view v_userbuytbl; -- 위 view를 드랍
create view v_userbuytbl
as
  select U.userid as 'USER ID', U.name as 'USER NAME', B.prodName as 'PRODUCT NAME',
         U.addr, concat(U.mobile1, U.mobile2) as 'MOBILE PHONE'
  from usertbl U
  inner join buytbl B
  on U.userid = B.userid;
  
 select `USER ID`, `USER NAME`, `PRODUCT NAME`, `MOBILE PHONE`
from v_userbuytbl;

select `USER ID`, `USER NAME`, `PRODUCT NAME`, `MOBILE PHONE` `는 esc 밑에 있는 키


rop view v_userbuytbl;
create or replace view v_usertbl
as
  select userid, name, addr from usertbl;
describe v_usertbl;          -- desc 와 같음
show create view v_usertbl;  -- 쿼리로 저장된거 확인
update v_usertbl set addr = '부산' where userid='JKW';
insert into v_usertbl(userid, name, addr) values('KBM','김병만','충북');
-- 기존 테이블에 not null필드가 존재하여 삽입 불가

insert 조건
1. 기존 테이블의 Not null 열이 뷰에 모두 포함
2. 기존 테이블의 Not null 열이 뷰에 미포함 되면 뎅터가 입력되지 않아도 에러 없도록 수정


select * from v_usertbl;
desc v_usertbl;
drop view v_usertbl;

create view v_height177
as
select * from usertbl where height >= 177 ;
select * from v_height177;
delete from v_height177 where height < 177 ;

insert into v_height177
values('KBM','김병만',1977,'경기','010','5555555',158,'2023-01-01') ;

-- 들어가 지는데
-- view를 select 하면 보이지 않음(왜? 키가 작은 김병만은 조건에 걸려서 안보임)

alter view v_height177
as
  select * from usertbl where height >= 177
     with check option ; -- 해당 view 조건을 검사
     
insert into v_height177
values('WDT','서장훈',2006,'서울','010','3333333',155,'2023-03-03') ;


Java script

어제 이어서

<!DOCTYPE html>
<html lang='ko'>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>버큰을 클릭해서 상세 설명 표시하거나 닫기</title>
<link rel="stylesheet" href="../css/event.css">
</head>
<body>
  <div id="item">
    <img alt="" src="../images/flower.jpg">
      <button class="over" id="open">상세 설명 보기</button>
    <div id="desc" class="detail">
      <h4>등심붓꽃</h4>
        <p>북미 원산으로 길가나 잔디밭에 자라는 여러해살이풀이다. 줄기는 높이 20~30cm 곧추서며, 납작하고, 아래쪽에 좁은 날개가 2개 있다.<br>
           잎은 줄기 아래쪽에 여러 장이 어긋나며, 납작한 선형이고 끝이 뾰족하다. 꽃은 푸른 보라색 또는 하얀 보라색으로 4~6월에 피며<br>
           줄기 끝에 3~6개가 산형꽃차례를 이룬다. 꽃의 지름은 1~1.5cm이다. 포는 2장이며 피침형이다. <br>
           화피는 종 모양이며 깊게 6갈래로 갈라진다. 열매는 삭과이며 둥글고, 밑을 향한다. 우리나라 남부지방과 제주도에 귀화되어 분포한다.<br>
           일본에도 귀화종으로 분포한다.</p>
           <button id="close">상세 설명 보기</button>
    </div>
  
  </div>
<script type="text/javascript">
	//Dom객체 이용
	document.querySelector('#open').onclick = function(){
	document.querySelector('#desc').style.display = "block";
	document.querySelector('#open').style.display = "none";
	}
	document.querySelector('#close').onclick = function(){
	document.querySelector('#desc').style.display = "block";
	document.querySelector('#open').style.display = "none";
	}
</script>
</body>
</html>


객체 알아보기

객체란?

프로그래밍 언어에서 객체는 여러 가지 의미로 해석할 수 있지만, 자바스크립트에서 객체는 프로그램에서 인식할 수 있는 모든 대상을 가리킨다는 정도로 이해하자.
자바스크립트 는 웹 사이트나 웹 애플리케이션을 개발하는 언어이므로 웹과 관련된 대상을 모두 객체로 인식합니다.

  • 문서 객체 모델(DOM): 웹 문서 자체도 객체이고 그 안에 삽입되어 있는 이미지와 링크, 텍스트 필드 등도 모두 객체입니다. 일반적으로 웹 문서에 삽입하는 요소는 document, image, link 객체 등이 있습니다.
  • 브라우저 관련 객체: 웹 브라우저에서 사용하는 정보도 객체로 나타낼 수 있습니다. 사용하는 브라우 저 정보를 담고 있는 navigator 객체를 비롯해 history, location, screen 객체 등이 있습니다.
  • 내장 객체: 웹 프로그래밍을 할 때 자주 사용하는 요소는 자바스크립트 안에 미리 객체로 정의되어 있는데, 이를 내장 객체라고 합니다. 예를 들어 날짜, 시간과 관련된 프로그램을 개발하려면 Date 객 체를 가져와 쉽게 사용할 수 있습니다.

Date 객체의 인스턴스 만들기

<!DOCTYPE html>
<html lang='ko'>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>지금 몇시인고?</title>

<style type="text/css">
body{font-size: 2em;
     text-align: center;}
</style>

<script type="text/javascript">
var now = new Date();
document.write("현재 시각은 " + now);
</script>

</head>
<body>


로컬 형식으로 현재 시각 표시하기

<title>지금 몇시인고?</title>

<style type="text/css">
body{font-size: 2em;
     text-align: center;}
</style>

<script type="text/javascript">
var now = new Date();
document.write("현재 시각은 " + now);
document.write("현재 시각은 " + now.toLocalString());
</script>

</head>
<body>

document.write("현재 시각은 " + now.toLocalString());추가 해줌


내장 객체

Array 객체

배열을 만들고 요소 표시하기

<html lang='ko'>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>배열을 만들고 요소 표시하기</title>

<style type="text/css">
body{text-align: center;}
</style>

</head>
<body>

<h1>배열의 각 요소</h1>

<script type="text/javascript">
var numbers = ["one", "two", "three", "four"];

for (i=0; i<numbers.length; i++){
	document.write("<p>" + numbers[i] + "</p>");
}
</script>

</body>
</html>


<!DOCTYPE html>
<html lang='ko'>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Array</title>

<style type="text/css">
body{font-size: 2em;
     text-align: center;}
</style>

<script type="text/javascript">
var season = ["봄", "여름", "가을", "겨울"];

for (i=0; i<season.length; i++){
	document.write(season[i]+ (" "));
}
</script>

</head>
<body>


배열 2개를 합쳐서 새로운 배열 만들기

<!DOCTYPE html>
<html lang='ko'>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Array</title>

<script type="text/javascript">
var nums = [1, 2, 3];
var chars = ["a", "b", "c", "d"];

var numsChars = nums.concat(chars);
var charsNums = chars.concat(nums);
document.write("nums에 chars 합치면: ", numsChars, "<br> chars에 nums 합치면: ", charsNums);

</script>

</head>


배열 안에 요소 합치기

<html lang='ko'>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>배열 안에 요소 합치기</title>

<script type="text/javascript">
var nums = [1, 2, 3];
var chars = ["a", "b", "c", "d"];

var string1 = nums.join();
document.write("구분자 없이: ", string1);
document.write("<br>");
var string2 = chars.join('/');
document.write("'/' 구분자 지정: ", string2);
</script>

</head>
<body>


배열에 새로운 요소 추가하기

<html lang='ko'>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>배열에 새로운 요소 추가하기</title>

<script type="text/javascript">
var nums = [1, 2, 3];

var ret1 = nums.push(4,5);
document.write("length: ", ret1, " | 배열: ", nums);
document.write("<br>");
var ret2 = nums.unshift(0);
document.write("length: ", ret2, " | 배열: ", nums);
</script>

</head>


배열에서 요소 꺼내기

<html lang='ko'>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>배열에서 요소 꺼내기</title>

<script type="text/javascript">
var chars = ["a", "b", "c", "d"];

var popped1 = chars.pop();
document.write("꺼낸 요소: ", popped1, " | 배열: ", chars);
document.write("<br>");
var popped2 = chars.shift();
document.write("꺼낸 요소: ", popped2, " | 배열: ", chars);
</script>

</head>


splice()메소드의 인수가 1개인 경우 요소 삭제하기

  • 원하는 위치에 요소를 추가•삭제하는 splice()
  • 괄호 안에 인수는 배열의 위치를 가리키고, 지정한 인수 부터 맨 끝 요소까지 삭제한다.
<html lang='ko'>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>splice()메소드의 인수가 1개인 경우 요소 삭제하기</title>

<script type="text/javascript">
var numbers = [1, 2, 3, 4, 5];

var newNumbers = numbers.splice(2);
document.write("반환된 배열: " + newNumbers + "<br>");
document.write("변경된 배열: " + numbers);
</script>

</head>


splice()메소드의 인수가 2개인 경우 요소 삭제하기

<title>splice()메소드의 인수가 2개인 경우 요소 삭제하기</title>

<script type="text/javascript">
var study = ["html", "css", "web", "jquery"];

var newStudy = study.splice(2,1);
document.write("반환된 배열: ", newStudy, "<br>");
document.write("변경된 배열: " + study);

</script>


splice()메소드의 인수가 3개인 경우 요소 삭제하기

<script type="text/javascript">
var study = ["html", "css", "jquery"];

var newStudy2 = study.splice(2, 1, "js");
document.write("반환된 배열: " + newStudy2 + "<br>");
document.write("변경된 배열: " + study);

</script>


slice()메소드

  • 기존 배열을 바꾸지 않으면서 요소를 꺼내는 기능을 한다.
  • slice()메소드에서 인수를 하나만 지정하면 그 인수를 시작 인덱스로 간주하고 지정한 요소부터 마지막 요소까지 꺼내서 변환한다.

slice()메소드의 인수가 1개인 경우 요소 꺼내기

<title>slice()메소드의 인수가 1개인 경우 요소 꺼내기</title>

<script type="text/javascript">
var colors = ["red", "green", "blue", "white", "black"];

var color2 = colors.slice(2);
document.write(color2);

</script>


slice()메소드의 인수가 2개인 경우 요소 꺼내기

  • 배열의 인덱스 2부터 시작하여 인덱스 4의 직전 인덱스까지 꺼낸다.
<script type="text/javascript">
var colors = ["red", "green", "blue", "white", "black"];

var color3 = colors.slice(2,4);
document.write(color3);
</script>

0개의 댓글