1. 程式人生 > >一步一步學MySQL----8 簡單資料查詢

一步一步學MySQL----8 簡單資料查詢

8.1 查詢所有欄位資料

現有資料表student,如下:

mysql> create table student(
-> s_id int primary key,
-> s_name varchar(20),
-> s_sex char(2),
-> s_age int
-> );

Query OK, 0 rows affected (0.08 sec)
這裡寫圖片描述

現在要查詢該表中所有欄位的資料資訊,有如下兩種方法:

方法1:全欄位輸入

mysql> select s_id, s_name, s_sex

, s_age from student; //說明:包含了student表的全部欄位

這裡寫圖片描述

方法2:“*”的使用

mysql> select * from student;

這裡寫圖片描述

8.2 查詢指定欄位資料

說明:只要在select後面輸入要查詢的欄位即可。、

例如我們只需要瞭解學生的姓名和年齡,那麼,就可以如下:

mysql> select s_name, s_age from student; //說明:只查詢學生姓名和年齡
這裡寫圖片描述

8.3 避免重複資料查詢

語法:

select distinct field1, field2, field3, …… from table_name;

例如:現有一張student表,如下:

mysql> select * from student;

這裡寫圖片描述

現在,我們給這張表增加一個score(分數)欄位,如下:

mysql> alter table student add score int;

Query OK, 5 rows affected (0.43 sec)
Records: 5 Duplicates: 0 Warnings: 0

這裡寫圖片描述

接下來為每個學生修改各自的分數,如下:

mysql> update student set score=88 where s_name=’LiQiang’;

Query OK, 1 row affected (0.11 sec)
Rows matched: 1 Changed: 1 Warnings: 0


mysql> update student set score=90 where s_name=’GaoQing’;

Query OK, 1 row affected (0.15 sec)
Rows matched: 1 Changed: 1 Warnings: 0


mysql> update student set score=89 where s_name=’liuZhuang’;

Query OK, 1 row affected (0.07 sec)
Rows matched: 1 Changed: 1 Warnings: 0


mysql> update student set score=95 where s_name=’WangMeng’;

Query OK, 1 row affected (0.06 sec)
Rows matched: 1 Changed: 1 Warnings: 0


mysql> update student set score=90 where s_name=’WuHao’;

Query OK, 1 row affected (0.10 sec)
Rows matched: 1 Changed: 1 Warnings: 0

這裡寫圖片描述

這樣,我們看到學生GaoQing和WuHao的分數是一樣的,都是90分,此時,我們來查詢一下表中學生的分數

mysql> select score from student; //查詢分數

這裡寫圖片描述

mysql> select distinct score from student;//去重查詢分數

這裡寫圖片描述

8.4 實現數學四則運算資料查詢

MySQL支援+、-、*、/、%關係運算符

語法:

Select field1 [as] otherfield1, field2 [as] otherfield2, …… fieldn [as] otherfieldn from table_name;

例如:建立一個數據庫company,在其中新建一張資料表employee,如下:

(1)建立資料庫

mysql> create database company;

這裡寫圖片描述

(2)選擇資料庫company

mysql> use company;

(3)新建資料表employee

mysql> create table employee(
-> empno int(11),
-> ename varchar(20),
-> job varchar(60),
-> Hiredate date,
-> salary double(10,2),
-> depno int(11)

Query OK, 0 rows affected (0.16 sec)
這裡寫圖片描述

(4)向employee表中插入資料

mysql> insert into employee(empno, ename, job, Hiredate, salary, depno) values(1001, ‘Smith’, ‘Clerk’, ‘2012-09-20’, 3500.00, 12);

Query OK, 1 row affected (0.12 sec)


mysql> insert into employee(empno, ename, job, Hiredate, salary, depno) values(1002, ‘Allen’, ‘Salesman’, ‘2012-12-06’, 3000.00, 14);

Query OK, 1 row affected (0.16 sec)


mysql> insert into employee(empno, ename, job, Hiredate, salary, depno) values(1003, ‘Mard’, ‘Salesman’, ‘2013-01-15’, 2800.00, 14);

Query OK, 1 row affected (0.06 sec)


mysql> insert into employee(empno, ename, job, Hiredate, salary, depno) values(1004, ‘Jones’, ‘Manager’, ‘2012-05-08’, 7500.00, 10);

Query OK, 1 row affected (0.05 sec)


mysql> insert into employee(empno, ename, job, Hiredate, salary, depno) values(1005, ‘Scott’, ‘HR’, ‘2012-03-28’, 1800.00, 12);

Query OK, 1 row affected (0.17 sec)


mysql> insert into employee(empno, ename, job, Hiredate, salary, depno) values(1006, ‘James’, ‘Product’, ‘2014-10-12’, 4000.00, 12);

Query OK, 1 row affected (0.06 sec)


mysql> insert into employee(empno, ename, job, Hiredate, salary, depno) values(1007, ‘King’, ‘Developer’, ‘2013-06-10’, 4500.00, 12);

Query OK, 1 row affected (0.09 sec)


mysql> insert into employee(empno, ename, job, Hiredate, salary, depno) values(1008, ‘Ford’, ‘Developer’, ‘2014-08-04’, 5000.00, 12);

Query OK, 1 row affected (0.08 sec)

(5)檢視employee表資料

mysql> select * from employee;

這裡寫圖片描述

下面我們來實現一下四則運算:

我們從employee表中看到每個員工的月薪,如果我們要知道每個員工的年薪怎麼辦?如下:

mysql> select ename, salary*12 from employee;

這裡寫圖片描述

通過這種查詢,執行結果一眼就可以看到每個員工的年薪了。

或者:

mysql> select ename, salary*12 as yearsalary from employee; //這種更加直觀

這裡寫圖片描述

8.5 設定顯示格式資料查詢

在MySQL中執行簡單資料查詢時,有時需要設定顯示格式,以方便使用者瀏覽所查詢到的資料。

例如:在上一小節中,要查詢員工的年薪,以固定格式(ename員工的年薪為:salary)顯示查詢到的資料。

我們可以如下執行:

mysql> select concat(ename, ‘員工的年薪為:’, salary*12)yearsalary from employee;