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;