[학습 노트] - Ubuntu가 MySQL 명령을 내린다(둘)
4955 단어 MySQL
이전 글에서 사용한 추상적인 문법 격식은 확실히 그다지 편리하지 않다.
다음 명령은
테이블 이름은 table 입니다.
필드 이름: id name gender age height isdelete
의 테이블을 예로 들 수 있습니다.
1. 내부 연결: 온 뒤의 조건을 만족시키는 데이터만 표시합니다.
select * from student as s inner join classes as c on s.c_id = s.id
2. 왼쪽 연결: 왼쪽 표를 위주로 하고 오른쪽 표 데이터에 빈칸이 없으면
select * from students as s left jion classes as c on s.c_id = s.id;
3. 오른쪽 연결: 오른쪽 표 데이터 위주로 하고 오른쪽 표에 빈칸이 없으면
select * from students as s right join classes as c on s.c_id = s.id;
4. 자체 연결: 조회된 두 장의 표는 같은 표이다.테이블에 별명을 붙여야 합니다.
select c.id, c.title, c.pid, p.title from areas as c inner join areas as p on c.pid = p.id;
5. 하위 쿼리: 한 selcet 문장에 다른 select 문장을 삽입하고 삽입된 select 문장을 하위 쿼리라고 하고 외부 select 문장을 주 쿼리라고 한다.
평균 연령보다 많은 학생: 1. 평균 연령 조회
select avg(age) from student;
2. 평균 연령보다 많은 학생을 조회
select * from student where age>(select avg(age) from student);
외부 키 제약: 작용: 외부에서 보이는 필드의 값을 업데이트하고 삽입할 때 표의 필드의 데이터를 인용하여 검증하고 데이터가 합법적으로 업데이트되지 않으면 삽입에 실패하여 데이터의 유효성을 확보한다.1. 존재하는 필드에 키 제약을 추가한다.
alter table add foreign key( ) references (id);
2. 데이터 테이블을 만들 때 외부 키 설정
create table 1( id int not null primary key [auto_increment], ...); create table 2( id int not null primary key [auto_increment], ,... foreign key ( ) references 1(id));
3. 외부 키 제약 삭제
alter table 2 drop foreign key ;
외부 키를 만들면 자동으로 외부 키 이름이 생성됩니다.외부 키 이름을 가져오는 방법:
show create table ;
그룹화 + 집계
다음엔 게으름 피울게요!!!
mysql> select name,price from goods where cate_name=' ';
+-----------------------------+----------+
| name | price |
+-----------------------------+----------+
| x240 | 4880.000 |
| u330p 13.3 | 4299.000 |
| svp13226scb | 7999.000 |
+-----------------------------+----------+
3 rows in set (0.00 sec)
mysql> select cate_name from goods group by cate_name;
+---------------------+
| cate_name |
+---------------------+
| |
| |
| / |
| |
| |
| |
| |
+---------------------+
7 rows in set (0.00 sec)
mysql> select round(avg(price),2) from goods;
+---------------------+
| round(avg(price),2) |
+---------------------+
| 5570.57 |
+---------------------+
1 row in set (0.00 sec)
mysql> select cate_name,avg(price) from goods group by cate_name;
+---------------------+---------------+
| cate_name | avg(price) |
+---------------------+---------------+
| | 4821.2500000 |
| | 2724.6666667 |
| / | 11363.0000000 |
| | 8499.0000000 |
| | 3732.3333333 |
| | 2399.0000000 |
| | 5726.0000000 |
+---------------------+---------------+
7 rows in set (0.00 sec)
mysql> select cate_name,max(price),min(price),avg(price),count(price) from goods group by cate_name;
+---------------------+------------+------------+---------------+--------------+
| cate_name | max(price) | min(price) | avg(price) | count(price) |
+---------------------+------------+------------+---------------+--------------+
| | 9188.000 | 2899.000 | 4821.2500000 | 4 |
| | 3388.000 | 1998.000 | 2724.6666667 | 3 |
| / | 28888.000 | 4288.000 | 11363.0000000 | 4 |
| | 8499.000 | 8499.000 | 8499.0000000 | 1 |
| | 4999.000 | 2799.000 | 3732.3333333 | 3 |
| | 6999.000 | 99.000 | 2399.0000000 | 3 |
| | 7999.000 | 4299.000 | 5726.0000000 | 3 |
+---------------------+------------+------------+---------------+--------------+
7 rows in set (0.02 sec)
mysql> select id,name,price from goods where price>(select avg(price) from goods) order by price desc;
+----+---------------------------------------+-----------+
| id | name | price |
+----+---------------------------------------+-----------+
| 17 | mac pro | 28888.000 |
| 13 | imac me086ch/a 21.5 | 9188.000 |
| 3 | g150th 15.6 | 8499.000 |
| 7 | svp13226scb | 7999.000 |
| 18 | hmz-t3w | 6999.000 |
| 20 | x3250 m4 | 6888.000 |
+----+---------------------------------------+-----------+
6 rows in set (0.00 sec)
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Redash를 사용할 때 몰랐던 SQL을 쓰는 법을 배웠습니다.최근 redash에서 sql을 쓸 기회가 많고, 이런 쓰는 방법이 있었는지와 sql에 대해 공부를 다시하고 있기 때문에 배운 것을 여기에 씁니다. Redash란? 월별로 데이터를 표시하고 싶습니다 주별로 데이터를 표...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.