Language/SQL에 해당하는 글 29

  1. Oracle 내장 함수 2022.06.21

    LENGTH : 문자의 길이를 반환한다. SELECT LENGTH('ABC'), LENGTH('코딩공부블로그') --각각 3, 7 출력 FROM DUAL; --테이블 없이 계산 출력/함수 확인용 연습테이블(오라클) UPPER : 대문자로 변환 ↔ LOWER : 소문자로 변환 INITCAP : 맨 앞글자만 대문자로 변환 SELECT UPPER('abC'), --ABC LOWER('ABc'), --abc INITCAP('something good can work') --Something Good Can Work FROM DUAL; *REPLACE(문자열, 바꿀 문자, 바뀔 문자) :문자열의 특정 문자를 다른 문자로 변경 *SUBSTR(문자열, 시작위치, 자를 문자 수) : 문자열을 원하는 위치에서 추출 시작..


  2. 데이터베이스(Database) 2022.06.17

    데이터 : 관찰의 결과로 나타난 정량적/정성적인 실제 값 정보 : 데이터에 의미를 부여한 것 데이터를 정보화하는 작업이 중요하고, 이 작업을 쉽게 하기 위해 데이터베이스가 활용된다. → 데이터베이스 = 필요한 정보를 얻기 위해 논리적으로 연관된 데이터를 모아 구조적으로 통합해 놓은 것 데이터베이스 시스템(DBMS)은 데이터의 검색과 변경 작업을 주로 수행한다. 변경 = 시간에 따라 변하는 데이터 값을 데이터베이스에 반영하기 위해 수행하는 작업(삽입, 삭제, 수정 등) 오라클은 응용 프로그램과 실제 데이터를 연결해 주는 역할. 실제 데이터는 하드디스크에 저장되며, 데이터베이스 시스템을 통해 응용 프로그램이 데이터를 사용할 수 있게 된다. 데이터베이스의 특징 1. 실시간으로 접근이 가능하다. 2. 계속적인 ..


  3. Oracle 설치 및 세팅(Windows x64) 2022.06.15

    Oracle Database XE https://www.oracle.com/database/technologies/xe18c-downloads.html Oracle SQL Developer https://www.oracle.com/tools/downloads/sqldev-downloads.html Oracle 삭제시 참고 msiexec /x {C220B7FD-3095-47FC-A0C0-AE49DE6E320A} SQL Plus 관리자 권한으로 실행 후 --계정 만들기 alter session set "_ORACLE_SCRIPT"=true; create user {$username} identified by {$password}; --권한 부여 grant create session to {$username}..


  4. 13. 정규표현식 2021.05.10

    튜토리얼 링크 👉 regexone.com/lesson/introduction_abcs 정규식을 매치해볼 수 있는 사이트 👉 regexr.com/ 이미 풀었던 문제로 다시! /*문자열에서 특정 패턴을 찾아서 규칙으로 작성*/ SELECT DISTINCT city FROM station /*REGular EXPression, aeiou중 하나로 시작(^)하면 그 이후에는 뭐가 와도(.*) 상관 없다.*/ WHERE city REGEXP '^[aeiou].*' 연습문제 1 SELECT DISTINCT city FROM station /*처음에는 뭐가 와도(.*) 상관 없지만 aeiou중 하나로 끝($)나야 한다.*/ WHERE city REGEXP '.*[aeiou]$' 연습문제 2 SELECT DISTINC..


  5. 12-1. 윈도우 함수 문제풀이 2021.05.09

    연습문제 1 SELECT DISTINCT l.Num AS ConescutiveNums FROM ( SELECT Num ,LEAD(Num,1) OVER (ORDER BY Id) AS "next" ,LEAD(Num,2) OVER (ORDER BY Id) AS afternext FROM logs ) AS l WHERE l.Num = l."next" AND l.Num = l.afternext LAG로도 풀 수 있음. 스스로 해보기! 연습문제 2 SELECT ms.department AS Department ,ms.name AS Employee ,ms.salary FROM (SELECT d.Name department) ,e.Name name ,e.Salary salary ,max(Salary) OVER (PAR..


  6. 12. 윈도우 함수 2021.05.06

    자세한 내용은 아래 링크 참고 👉 dev.mysql.com/doc/refman/8.0/en/window-functions-usage.html A window function performs an aggregate-like operation on a set of query rows. GROUP BY 함수와 비슷하게 SUM, COUNT, MAX, MIN, AVG 등을 그룹별로 구해볼 수 있는 함수. GROUP BY의 대부분의 aggregation 함수를 다 사용할 수 있다고 보면 된다. 하지만 GROUP BY와는 다르다. 어떤 점이? By contrast, window operations do not collapse groups of query rows to a single output row. Instea..


  7. 11-1. 서브쿼리 추가 문제풀이 2021.04.29

    연습문제 1 >SELECT CASE WHEN g.grade > 7 THEN s.name ELSE NULL END ,g.grade ,s.marks FROM students s JOIN grades g ON s.marks BETWEEN g.min_mark AND g.max_mark ORDER BY g.grade DESC, s.name ASC JOIN절 내에 BETWEEN을 넣어서 풀어야 하는 문제! BETWEEN을 조인 조건으로 써야한다는 사실 외에는 주어진 게 없었는데 따로 검색하지도 않고 스스로 시행착오하면서 풀어 내서 매우 뿌듯하다!!! 연습문제 2 >SELECT DISTINCT L3.num AS ConsecutiveNums FROM logs L INNER JOIN logs L2 ON L.num = L..


  8. 11. 서브쿼리 2021.04.15

    서브쿼리(Subquery) : 쿼리 안에 들어가는 또 다른 쿼리. = 가상의 테이블을 만든다. SELECT(ex.누적 합cumulative sum), FROM(ex.기간별 평균 발생량), WHERE 등에서 사용이 가능하다. *(괄호) 안에 들어가야 하며 이름을 꼭 지어 주는 게 좋다. WHERE절의 = 뒤에 들어가는 서브쿼리는 결과물(Column과 Row)이 1개여야만 한다. IN을 쓰면 여러 개의 데이터가 나타나도 된다. 연습문제 1 여기서 다른 방법으로 풀었던 문제 연습문제 2 WHERE절 내의 서브쿼리에서 출력된 Salary가 어떤 DepartmentId의 Salary 인지 알 수 없기 때문에, 최대값으로 출력된 Salary와 같은 사람이라면 모두 출력되는 상황이라서! 틀린것! JOIN할 때 키를 ..


  9. 10. ERD, 데이터 타입 2021.04.14

    ERD(Entity Relationship Diagram) : 개체/엔티티(=테이블) 간의 관계를 나타내는 그림. Attribute : 각 엔티티가 가지는 특징이자 구조적으로 각 테이블의 컬럼명, 컬럼 정보=데이터타입 해당 컬럼이 무엇을 의미하는지 등을 나타낸다. PK(Primary Key) : 주 식별자. 하나의 엔티티에 PK는 하나씩만 존재할 수 있다. 해당 엔티티(테이블)을 대표하는 키. 각 레코드마다 유니크하게 가지는 key. FK(Foreign Key) : 외부 식별자. 다른 엔티티의 PK에서 참조될 수 있다. 두 가지 이상의 엔티티에서 그 사이의 관계를 정의하는 데 사용될 수 있다. 화살표는 어떤 엔티티와의 관계를 보여주지만, 몇 개의 데이터가 몇 개의 데이터와 대응되는지 나타내 준다. (1 ..


  10. 09. 조작어 / INSERT, UPDATE, DELETE 2021.04.08

    조작어(DML, Data Manifulation Language) : DB에 저장되어 있는 데이터를 조작하는 명령어 [INSERT : 새로운 데이터를 추가 ] 1. 테이블 전체에 데이터를 추가하기 format : INSERT INTO 테이블명 VALUES (VALUE_LIST) ; VALUE_LIST는 컬럼 순서대로 입력 아래와 같은 4개의 컬럼을 가지는 텅 빈 "Salary"라는 테이블이 있을 때, id name salary date INSERT INTO Salary VALUES ('1', 'A', '250', '2021-04-07') ; 를 실행하면! id name salary date 1 A 250 2021-04-07 2. 특정 컬럼을 지정하여 데이터를 추가하기 format : INSERT INTO..