[학습 노트] - Ubuntu가 MySQL 명령을 내린다(둘)

4955 단어 MySQL
이전 편: [학습 노트] - Ubuntu의 MySQL 명령 (1)
이전 글에서 사용한 추상적인 문법 격식은 확실히 그다지 편리하지 않다.
다음 명령은
테이블 이름은 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)

 
 
 
 
 
 
 
 

좋은 웹페이지 즐겨찾기