MySql - SELECT
27742 ワード
1. DESC
表バーの表示
DESC [테이블명] ;
2.SELECT-クエリーデータ
SELECT [컬럼명 또는 표현식] FROM [테이블명, 뷰명] ;
すべての列を表示SELECT * FROM t_emp;
必要な列のみ表示SELECT empno, ename FROM t_emp;
式出力の使用SELECT name, '교수님~배고파요' FROM t_professor;
カラム別名(alias)出力の使用SELECT studno '학번', name '이름' FROM t_student;
SELECT studno AS 학번, name AS 이름 FROM t_student;
SELECT studno "학번", name "이름" FROM t_student;
SELECT studno AS "학생 학번", name AS "학생 이름" FROM t_student;
[コード練習]SELECT 'abcde'; -- CTRL + ENTER
SELECT '안녕하세요', '목요일입니다', 2022;
SELECT * FROM phonebook;
-- 숫자, 문자, 날짜시간
SELECT * FROM t_professor ;
SELECT name, POSITION, pay FROM t_professor;
SELECT POSITION, pay, name, pay, pay FROM t_professor;
-- 컬럼 별칭(alias) 사용
SELECT POSITION 직위, pay 급여, name 이름
FROM t_professor;
SELECT * FROM t_student;
SELECT studno "학생 학번", name AS 이름, grade FROM t_student;
-- 연습1
-- t_emp 테이블을 사용하여 empno 를 '사원번호',
-- ename을 '사원명'
-- job을 '직업' 으로 별명을 설정하여 출력
SELECT empno 사원번호, ENAME 사원명, job AS 직업
FROM t_emp;
-- t_dept 테이블을 사용하여 deptno를 '부서#', dname을 '부서명', loc를 '위치' 로 별명을 설정하여 출력
SELECT deptno AS 부서, DNAME AS 부서명, loc AS 위치
FROM t_dept;
# 이것은 MySQL 에서
# 사용가능한 주석입니다
3.DISTINCT-重複値を消去して出力
4.CONCAT()関数:カラム接続
SELECT CONCAT(name, '-', position) FROM professor;
[コード練習]
-- DISTINCT
SELECT deptno FROM t_emp;
SELECT DISTINCT deptno FROM t_emp;
-- 문자열 연결 concat()
SELECT concat('hello', 'mysql');
SELECT concat(name, ' ', position) AS 교수님목록 FROM t_professor;
5.算術演算子
+, - , *,/
SELECT ename, sal, sal+100 FROM emp;
SELECT sal, sal+100/2, (sal+100)/2 FROM emp;
6.WHERE:必要条件のみ検索
SELECT [컬럼명 또는 표현식] FROM [테이블명, 뷰명] WHERE [조건절] ;
[コード練習]-- WHERE 조건절
SELECT * FROM t_emp;
SELECT ename, sal, deptno FROM t_emp WHERE deptno = 10;
SELECT ename, sal FROM t_emp WHERE sal > 4000;
SELECT ename, empno, sal FROM t_emp WHERE ename = 'SCOTT';
SELECT ename, empno, sal FROM t_emp WHERE ename = 'Scott'; -- MySQL 은 = 연산자로 문자열 비교시 대소문자 불문
7.複数演算子の使用
8.Likeとともに使用するワイルドカード%
9. ORDER BY
ソート出力
SELECT [컬럼명 또는 표현식]
FROM [테이블명, 뷰명]
WHERE [조건절]
ORDER BY [정렬열] [ASC/DESC];
[コード練習]# 산술연산자
-- t_emp 테이블
-- 직원이름(ename), 급여(sal), 급여10%인상분
SELECT ename, sal, sal * 1.1 "10% 인상분"
FROM t_emp;
SELECT ename, empno, sal FROM t_emp WHERE ename = 'Scott'; -- MySQL 은 = 연산자로 문자열 비교시 대소문자 불문
-- MySQL 에서 대소문자 구분하여 비교하기
SELECT ename, empno, sal FROM t_emp WHERE BINARY(ename) = 'Scott';
-- 학생 테이블(t_student) 에서
-- 2,3학년(grade) 학생의 이름(name), 학년(grade) 출력
SELECT name, grade FROM t_student
WHERE grade = 2 OR grade = 3;
SELECT name, grade FROM t_student
WHERE grade IN (2, 3);
SELECT name, grade FROM t_student
WHERE grade NOT IN (1, 4);
SELECT name, grade FROM t_student
WHERE grade BETWEEN 2 AND 3;
SELECT * FROM t_professor;
-- 교수님의 이름, 급여, 보너스, 급여 + 보너스
-- null 값과의 연산결과는 무.조.건 null 이다!!★
SELECT name, pay, bonus, pay + bonus
FROM t_professor;
-- LIKE 와 같이 쓰는 와일드 카드 % , _
-- % : 글자수 제한 없고 어떤 글자가 와도 됨
-- _ : 글자수는 한글자가 반드시 와야 되고 어떤 글자 와도 좋음
-- 교수님 중에서 김씨 성을 가진 교수님의 이름만 출력 (LIKE 사용)
SELECT name FROM t_professor
WHERE name LIKE '김%';
-- 연습
-- 직원 테이블(t_emp)에서 직원이름 (ename) 중에
-- 두번째 글자가 'A'인 사람의 이름(ename)만 출력
SELECT ename FROM t_emp
WHERE ename LIKE '_A%';
-- ORDER BY
SELECT name, grade, height, weight FROM t_student
ORDER BY grade ASC, height DESC;
-- 직원(t_emp)중 이름에 L 이 들어간 사람의 이름을 사전오름차순으로 출력하기
SELECT ename FROM t_emp
WHERE ename LIKE '%L%'
ORDER BY ename ASC
;
-- SELECT
[実習]# p14, 15, 16
SELECT name, height FROM t_student
WHERE height >= 180;
SELECT name, weight FROM t_student
WHERE 60 <= weight AND weight <= 80;
SELECT * FROM t_student
WHERE deptno1 IN (101, 201);
SELECT * FROM t_student
WHERE name LIKE '김%';
-- t_student 테이블에서 키(height)가 180 보다 크거나 같은 사람 이름, 키 출력
SELECT name, height
FROM t_student
WHERE height >= 180;
-- t_student 테이블에서 몸무게(weight)가
-- 60~80 인 사람의 이름과 체중 출력
SELECT name, weight
FROM t_student
WHERE weight BETWEEN 60 AND 80;
-- t_student 테이블에서는 제1전공이 101번 학과(deptno1) 학생과 201번 학과 학생들을 모두 출력하세요 (in 연산자 활용)
SELECT name, deptno1
FROM t_student
WHERE
deptno1 IN (101, 201);
-- deptno1 = 101 OR deptno1 = 201 (O)
-- deptno1 = 101 OR 201 (X)
-- t_student 테이블에서 성이 ‘김’ 씨인 사람 조회
-- LIKE 연산자 사용:
SELECT name
FROM t_student
WHERE name LIKE '김%';
-- t_student 테이블에서 4학년 학생중에 키 가 170cm 이상인 사람의
-- '이름'과 '학년'과 '키'를 조회하세요
SELECT name, grade, height
FROM t_student
WHERE grade = 4 AND height >= 170;
-- t_student 테이블에서 1학년이거나 또는 몸무게가 80kg 이상인 학생들의
-- '이름'과 '키'와 '학년'과 '몸무게'를 출력하세요
SELECT name, height, grade, weight
FROM t_student
WHERE grade = 1 OR weight >= 80;
-- t_student 테이블을 사용해서 2학년 중에서 키가 180cm 보다 크면서
-- 몸무게가 70kg 보다 큰 학생들의
-- 이름과 학년과 키와 몸무게를 출력하세요
SELECT name, grade, height, weight
FROM t_student
WHERE grade = 2 AND height > 180 AND weight > 70;
-- t_student 테이블: 2학년 학생중에서 키가 180cm보다 크거나
-- 또는 몸무게가 70kg 보다 큰 학생들의
-- 이름과 학년과 키와 몸무게를 출력하세요
SELECT name, grade, height, weight
FROM t_student
WHERE grade = 2 AND (height > 180 OR weight > 70);
-- t_emp 테이블에서 고용일(hiredate)이 1992년 이전인 사람들의
-- 이름(ename) 과 고용일을 출력하세요
SELECT ename, hiredate
FROM t_emp
WHERE hiredate < '1992-01-01';
-- t_student 테이블: 1학년 학생의 이름과 생일과 키와 몸무게를 출력하세요,
-- 단 생일이 빠른 사람 순서대로 정렬하세요.
SELECT name, birthday, height, weight
FROM t_student
WHERE grade = 1
ORDER BY birthday ASC;
-- student 테이블: 1학년 학생의 이름과 키를 출력하세요,
-- 별명은 ‘이름’, ‘키’ 로 출력.
-- 단 이름은 오름차순으로 정렬하세요
SELECT name 이름, height 키
FROM t_student
WHERE grade = 1
ORDER BY name ASC;
SELECT name 이름, height 키, grade
FROM t_student
ORDER BY grade DESC, name ASC; -- 정렬조건 복수개 가능
-- t_emp2 직원 테이블에서
-- 생일(birthday) 가 1980년대생인 사람들의 이름과 생일만 출력하세요
-- 즉 1980/01/01 ~ 1989/12/31
SELECT name, birthday
FROM t_emp2
WHERE '1980-01-01' <= birthday AND birthday < '1990-01-01';
Reference
この問題について(MySql - SELECT), 我々は、より多くの情報をここで見つけました https://velog.io/@plily93/MySql-SELECTテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol