本文将详细介绍数据查询的基础操作,包括关键字select、distinct、where等等
一、导入数据库
在正式开始学习查询语句之前,让我们先导入一个已经写好的数据库University,并且利用这个数据库来进行实践操作
在登陆到本地的mysql之后,依次执行下列操作
1.新建数据库
create database university;
2.进入数据库
use university;
3.导入表结构
点击此处可下载resources文件
将resouces文件夹保存到本地后
先导入文件 DDL-MySQL.sql
source 文件路径/DDL-MySQL.sql;
4.查看表结构是否导入成功
show tables;
若显示出advisor、classroom等总共11个表名,则说明已导入成功
5.导入具体数据
导入resources文件夹中的文件 smallRelationsInsertFile.sql
source 文件路径/smallRelationsInsertFile.sql;
6.查看数据是否导入成功
select * from classroom;
若输出的classroom表不是空集,则说明导入成功
二、select语句
select语句的作用是输出符合条件的若干个元组(tuple)
一条合法的select语句必须指明要检索的列名和表名
- 检索单列
select column_name from table_name;
- 检索多列
用逗号分割不同的列名
select column1_name, column2_name, column3_name
from table_name;
- 检索所有列(使用通配符*)
select * from table_name;
//将输出指定表的所有数据
三、distinct关键字
distinct的作用是筛除具有相同值的元组
每个distinct只对紧跟在它后面的那个列起作用
select distinct column_name
from table_name;
四、where子句
where的作用是指明检索的条件
它应该跟在select from的后面
下面用几个例子来说明where子句的写法:
例如,我们想找出工资大于60000的教师及其所有信息
就需要把 '工资 > 60000' 这个条件放入where子句中
如下图所示:
在where子句中,常见的操作符如下:
(1)'>' 大于,‘<' 小于,'!=' 不等于,'=' 等于
(2) between and 可用于检索落在某个区间内的值(数据类型是连续的)
select *
from instructor
where salary between 600000 and 90000;
(3)in ( ) 可用于检索一些离散的数据类型
//找出院系为Finance和History的老师信息
select *
from instructor
where dept_name in ('Finance','History');
(4)not in ( ) 用于检索不是指定取值的元组
//找出院系不是Biology和Physics的老师信息
select *
from instructor
where dept_name not in ('Biology','Physics');
需要注意的是:
如果值的数据类型是字符串而不是数字,在where子句中引用某个取值的时候,必须将其放在一对单引号内,并且区分大小写