MySQL에서 테이블 추가, 삭제, 수정 및 쿼리

목차

1. 크러드

2. 추가(생성)        

(1) 문법

(2) 단일 데이터 행 + 전체 열 삽입

(3) 여러 행의 데이터 + 지정된 열 삽입

3. 검색

(1) 문법

(2) 전체 열 쿼리

(3) 열 쿼리 지정

(4) 쿼리 필드는 표현식입니다.

        1. 표현식에는 필드가 포함되어 있지 않습니다.

        2. 표현식에 필드가 포함되어 있습니다.

       테이블 구조는 다음과 같습니다.

        3. 표현식에 여러 필드가 포함되어 있습니다.

(5) 별칭

(6) 중복 제거: DISTINCT        

(7) 정렬: ORDER BY

1. 문법:

2. 오름차순

3. 내림차순

4. 표현식과 별칭을 사용하여 정렬

5. 여러 우선순위를 정렬할 수 있으며, 정렬 우선순위는 쓰기 순서를 따릅니다.

(8) 조건부 질의: WHERE

 1. 비교 연산자

2. 논리 연산자

3. 기본 쿼리:

4, AND 및 OR:

5. 범위 쿼리

        (1) ...과(와) 사이

        (2)인

6. 퍼지 쿼리: LIKE

7. NULL 쿼리: IS [NOT] NULL        

8. 페이징 쿼리: LIMIT

4. 수정(업데이트)

사례:

-- Sun Wukong의 수학 점수를 80점으로 변경

-- 조맹덕의 수학 점수를 60점, 중국어 점수를 70점으로 변경

--총점이 가장 낮은 세 학생의 수학 점수에 30점을 더합니다.

--모든 학생의 중국어 점수를 원래 값의 2배로 업데이트합니다.

5. 삭제

사례:

--손오공의 시험 점수 삭제

-- 전체 테이블 데이터 삭제

6. 주요 내용 요약

신규편집

쿼리편집

수정편집

삭제편집

다들 이거 보시고 엄지손가락 치켜세우고 가세요, 고마워요, 고마워요! ! !


1. 크러드

참고: SQL에서 "--space + 설명"을 사용하여 주석을 표시할 수 있습니다.
CRUD, 즉 추가(만들기), 쿼리(검색), 업데이트(업데이트) , 삭제(삭제)4단어약어
 


2. 추가(생성)        

기존 테이블 구조 및 테이블 데이터:

(1) 문법

INSERT [INTO] 테이블_이름
[(열 [, 열] ...)]
VALUES(값 목록) [, (값_목록)] ...
값_목록: 값, [, 값] ...

 

(2) 단일 데이터 행 + 전체 열 삽입

구문:테이블 이름 값에 삽입(삽입할 데이터, ...)

참고: 삽입되는 데이터의 순서는 테이블 구조와 동일해야 합니다. 그렇지 않으면 삽입이 실패합니다.

코드 표시:

insert into books values('数学', '张三', 6.66, '数学类');
insert into books values('英语', '李四', 8.88, NULL);

결과는 다음과 같습니다.

(3) 여러 행의 데이터 + 지정된 열 삽입

구문:테이블 이름(지정된 열 이름, ...) 값 ​​(지정된 열 이름 데이터)에 삽입

코드 표시

insert into books (name, price, sort) values('语文', 5.55, '语文类'), ('物理', 7.77, '物理类');

결과는 다음과 같습니다.


3. 검색

(1) 문법

선택
[DISTINCT] {* | {열 [, 열] ...}
[FROM table_name]
[WHERE ...]
[ORDER BY 열 [ASC | DESC], ...]
제한 ...

 

(2) 전체 열 쿼리

참고:선택 쿼리 작업은 모두 임시 테이블이며 원본 데이터를 변경하지 않습니다.

구문:테이블 이름에서 * 선택

코드 표시:

select * from books;

결과는 다음과 같습니다.

참고: 일반적인 상황에서는 전체 열 쿼리에 *를 사용하지 않는 것이 좋습니다.
-- 1. query 컬럼이 많을수록 전송해야 할 데이터의 양이 많아진다.(처리해야 할 정보가 너무 많아 서버가 막힐 수 있다. 하드 디스크 IO, 네트워크 IO가 많이 찰 수 있다.) 하드 디스크나 네트워크 카드의 대역폭이 꽉 차면 서버는 다른 클라이언트의 요청에 정상적으로 응답할 수 없게 되며, 다른 클라이언트의 입장에서는 서버가 꽉 찬 것으로 간주됩니다. 다운됨)
-- 2. < a i=5>색인 사용에 영향을 미칠 수 있음

(3) 열 쿼리 지정

구문:테이블 이름에서...지정된 열 이름 선택

코드 표시:

select name, author, price from books;

결과는 다음과 같습니다.

참고: 지정된 열 쿼리는 그림과 같이 이 테이블의 열 순서에 따라 쿼리할 수 없습니다.

(4) 쿼리 필드는 표현식입니다.

        1. 표현식에는 필드가 포함되어 있지 않습니다.

구문:select 표현식, ... from books

코드 데모:

 select name, price, 10 from books;

결과는 다음과 같습니다

10이 없기 때문에 10번 필드가 생성되고 그 아래에 10번이 배치됩니다.

        2. 표현식에 필드가 포함되어 있습니다.

구문:하나의 필드, ... 테이블 이름을 포함하는 표현식 선택

코드 데모:

select name, author, price + 10 from books;

결과는 다음과 같습니다.

       테이블 구조는 다음과 같습니다.

        3. 표현식에 여러 필드가 포함되어 있습니다.

구문:테이블 이름에서...여러 필드가 포함된 표현식 선택

정수 데이터 코드 데모:

 select name, chinese + math + english from report;

결과는 다음과 같습니다.

정수 데이터 코드 데모가 아님:

select price, name + author + sort from books;

결과는 다음과 같습니다.

보시다시피 표현식에는 여러 행의 필드가 포함되어 있습니다. NULL이 있는 한 NULL이 되고 문자열의 합은 0이 됩니다.

(5) 별칭

구문:보고서의 별칭으로... 열 이름 선택

참고사항(생략 가능하지만 추가하는 것이 더 좋고 구별하기 쉽기 때문에)

코드 데모:

 select id, chinese + math + english as 总分 from report;

결과는 다음과 같습니다.

(6) 중복 제거: DISTINCT        

기존 테이블:

구문:테이블 이름에서... 고유한 열 이름 선택

코드 표시:

 select distinct math from exam_result;

결과는 다음과 같습니다.

(7) 정렬: ORDER BY

1. 문법:

--ASC는 오름차순(작은 것에서 큰 것)
--DESC는 내림차순(큰 것에서 작은 것)
-- 기본값은 ASC입니다.< /span> ORDER BY 열 [ASC|DESC], [...];
SELECT ... FROM table_name [WHERE ...]

 

2. 오름차순

구문:select * ( 또는 다른 열 이름도 허용됨) 테이블 이름에서 열 이름순

코드 표시:

 select * from exam_result order by math;

결과는 다음과 같습니다.

3. 내림차순

구문:select * ( 또는 다른 열 이름도 허용됨) 테이블 이름에서 열 이름 설명순

코드 표시:

select * from exam_result order by math desc;

결과는 다음과 같습니다.

4. 표현식과 별칭을 사용하여 정렬

구문:식별 테이블 이름 순서에서 열 이름, 표현식 선택

코드 표시:

 select name, math + chinese + english as total from exam_result order by math + chinese + english;

결과는 다음과 같습니다.

알아채다:

여기서는 주문 후 별칭을 사용할 수 있습니다.

5. 여러 우선순위를 정렬할 수 있으며, 정렬 우선순위는 쓰기 순서를 따릅니다.

구문:쿼리할 열을 선택합니다. Exam_result 열 이름별 순서, 열 이름...;

코드 데모:

 select * from exam_result order by math, english;

결과는 다음과 같습니다.

(8) 조건부 질의: WHERE

참고:조건에서는 표현식을 사용할 수 있지만 별칭은 사용할 수 없습니다.

 1. 비교 연산자

2. 논리 연산자

참고: 1. AND는 OR보다 우선순위가 높습니다. 동시에 사용하는 경우 괄호()를 사용하여 먼저 실행되는 부분을 래핑해야 합니다. 아>

           2. WHERE 조건에서는 표현식을 사용할 수 있지만 별칭은 사용할 수 없습니다< a i= 4>.

그림에 표시된 대로:

                SQL 문의 실행 순서:

                1단계: 레코드 꺼내기(테이블 순회)

                2단계: 기록을 조건으로 가져와 충족 여부 확인

                3단계: 조건이 충족되면 select에서 지정한 열을 꺼내고 몇 가지 표현식 작업을 수행합니다.

따라서 조건부 쿼리에서는 where 뒤에 별칭을 사용할 수 없습니다.

3. 기본 쿼리:

영어 점수가 70점 이상인 학생을 쿼리합니다.

코드는 아래와 같이 표시됩니다.

 select name, english from exam_result where english > 70;

결과는 다음과 같습니다.

영어 점수가 중국어 점수보다 높은 학생을 확인하세요.

코드는 아래와 같이 표시됩니다.

 select name, english, chinese from exam_result where english > chinese;

결과는 다음과 같습니다.

총점이 200점 미만인 학생을 쿼리합니다.

코드는 아래와 같이 표시됩니다.

 select name, chinese + math + english from exam_result where (chinese + math + english) < 200;

결과는 다음과 같습니다.

4, AND 및 OR:

중국어 점수가 80점 이상, 영어 점수가 80점 이상인 학생을 쿼리합니다.

코드는 아래와 같이 표시됩니다.

select name, chinese, english from exam_result where (chinese > 80) and (english > 80);

결과는 다음과 같습니다.

중국어 점수가 80점 이상, 영어 점수가 80점 이상인 학생을 검색합니다.

코드는 아래와 같이 표시됩니다.

 select name, chinese, english from exam_result where (chinese > 80) or (english > 80);

결과는 다음과 같습니다.

참고:또는보다 우선순위가 높습니다. 사용할 때 필요한 경우 괄호를 사용할 수 있습니다

5. 범위 쿼리

        (1) ...과(와) 사이

        코드 표시:

select * from exam_result where chinese between 80 and 90;

        결과 표시:


     이는 또한 다음을 사용하여 달성할 수 있습니다.

암호:

 select * from exam_result where chinese >= 80 and chinese <= 90;

        (2)인

코드는 아래와 같이 표시됩니다.

 select name, math from exam_result where math in(58, 59, 98, 99);

결과 표시:

또는 여기를 사용할 수도 있습니다.

암호:

select name, math from exam_result where math = 58 or math = 59 or math = 98 or math = 99;

6. 퍼지 쿼리: LIKE

        아웃 아웃 아웃 무엇보다도


코드 표시:

 select name from exam_result where name like '孙%';

결과는 다음과 같습니다.

코드 표시:

 select name from exam_result where name like '孙_';

결과는 다음과 같습니다.

참고:%는 "Sun"으로 끝나는 필드인 %Sun, 필드에 "Sun"이 포함되어 있는 경우 %Sun%과 같이 사용할 수도 있습니다.

        ​ ​ _다음과 같이 사용할 수도 있습니다: _Sun은 앞에 문자가 하나만 있고 끝에 "Sun"이 있는 필드이며 여러 개의 밑줄 _을 사용할 수도 있습니다.

7. NULL 쿼리: IS [NOT] NULL        

테이블의 열이 NULL인지 NULL이 아닌지 확인

코드는 아래와 같이 표시됩니다.

select name from exam_result where name is not null;

결과는 다음과 같습니다.

코드는 아래와 같이 표시됩니다.

select name from exam_result where name is NULL;

결과는 다음과 같습니다.

8. 페이징 쿼리: LIMIT

구문:
-- 시작 색인은 0입니다.
-- 0부터 시작하여 n개의 결과를 필터링합니다.
SELECT ... FROM table_name [WHERE ...] [ORDER BY ...] LIMIT n;
-- s에서 시작하여 n 결과 필터링
SELECT ... FROM table_name [WHERE ...] [ORDER BY ...] LIMIT s, n;
-- s에서 시작하여 n 결과 필터링, 두 번째 사용법보다 더 명확하므로
SELECT ... FROM table_name [WHERE ...] [ORDER BY ...] LIMIT n OFFSET s;
 

0부터 시작하여 3개의 결과를 필터링합니다.

코드 표시:

select * from exam_result limit 3;

결과는 다음과 같습니다.

0부터 시작하여 3개의 레코드를 필터링하고 ID별로 순서대로 페이지를 매깁니다.

코드 표시:

select * from exam_result limit 3;

결과는 다음과 같습니다.

3부터 시작하여 3개의 레코드를 필터링하고 ID별로 순서대로 페이지를 매깁니다.

코드 표시:

 select * from exam_result order by id limit 3 offset 3;

결과는 다음과 같습니다.


4. 수정(업데이트)
 

문법:

UPDATE table_name SET 열 = expr [, 열 = expr ...]
[WHERE ...] [ORDER BY ...] [LIMIT ...]

 

사례:
 

-- Sun Wukong의 수학 점수를 80점으로 변경

문법:

update table name 수정될 컬럼 이름 설정 = 수정될 값 여기서 컬럼 이름 = 수정되도록 지정될 컬럼의 값

코드는 아래와 같이 표시됩니다.

mysql> update exam_result set math = 80 where name = '孙悟空';

결과는 다음과 같습니다.

-- 조맹덕의 수학 점수를 60점, 중국어 점수를 70점으로 변경

코드는 아래와 같이 표시됩니다.

 update exam_result set math = 60, chinese = 70 where name = '曹孟德';

결과는 다음과 같습니다.


--총점이 가장 낮은 세 학생의 수학 점수에 30점을 더합니다.

코드는 아래와 같이 표시됩니다.

결과는 다음과 같습니다.


--모든 학생의 중국어 점수를 원래 값의 2배로 업데이트합니다.

코드는 아래와 같이 표시됩니다.

 update exam_result set chinese = chinese * 2;

결과는 다음과 같습니다.


5. 삭제

문법:

삭제 FROM table_name [WHERE ...] [ORDER BY ...] [LIMIT ...]
 

사례:
 

--손오공의 시험 점수 삭제

코드는 아래와 같이 표시됩니다.

delete from exam_result where name = '孙悟空';

결과는 다음과 같습니다.


-- 전체 테이블 데이터 삭제

다음과 같이 테이블을 준비합니다.

코드는 아래와 같이 표시됩니다.

 delete from for_delete;

결과는 다음과 같습니다.


6. 주요 내용 요약

새로운

문의

개정하다

삭제


다들 이거 보시고 엄지손가락 치켜세우고 가세요, 고마워요, 고마워요! ! !

추천

출처blog.csdn.net/cool_tao6/article/details/134148942