2. 数据库操作
数据库在创建以后最常见的操作便是查询
2.1 查询
为了便于学习和理解,我们预先准备了两个表分别是stduents表和classes表两个表的内容和结构如下所示
students表的内容:
id
class_id
name
gender
score
1
1
小明
M
90
2
1
小红
F
95
3
1
小军
M
88
4
1
小米
F
73
5
2
小白
F
81
6
2
小兵
M
55
7
2
小林
M
85
8
3
小新
F
91
9
3
小王
M
89
10
3
小丽
F
85
创建students表的SQL命令:
/*创建表的sql语句*/
CREATE TABLE students (
`id` int(11) NOT NULL AUTO_INCREMENT,
`class_id` int(11) DEFAULT NULL,
`name` varchar(10) DEFAULT NULL,
`gender` char(1) DEFAULT NULL,
`score` int(3) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
/*插入测试数据*/
INSERT INTO `students` VALUES ('1', '1', '小明', 'M', '90');
INSERT INTO `students` VALUES ('2', '1', '小红', 'F', '95');
INSERT INTO `students` VALUES ('3', '1', '小军', 'M', '88');
INSERT INTO `students` VALUES ('4', '1', '小米', 'F', '73');
INSERT INTO `students` VALUES ('5', '2', '小白', 'F', '81');
INSERT INTO `students` VALUES ('6', '2', '小兵', 'M', '55');
INSERT INTO `students` VALUES ('7', '2', '小林', 'M', '85');
INSERT INTO `students` VALUES ('8', '3', '小新', 'F', '91');
INSERT INTO `students` VALUES ('9', '3', '小王', 'M', '89');
INSERT INTO `students` VALUES ('10', '3', '小丽', 'F', '85');
classes表的内容和结构:
id
name
1
一班
2
二班
3
三班
4
四班
创建classes表的SQL命令:
/*创建表的sql语句*/
CREATE TABLE `classes` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(5) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;
/*插入测试数据*/
2.1.1基本查询
查询数据库中某个表的所有内容:
SELECT * FORM
例如查询students表中的所有内容
注意:
对于select语句来说,并不一定非要有from子句,例如如下语句
select 1+2;
上述查询会直接计算出表达式的结果。虽然SELECT可以用作计算,但它并不是SQL的强项。但是,不带FROM子句的SELECT语句有一个有用的用途,就是用来判断当前到数据库的连接是否有效。许多检测工具会执行一条SELECT 1;来测试数据库连接。
2.1.2 条件查询
定义:
大部分情况下,我们查询一张表的时候并不想获取一张表中的所有内容,而是想从所有记录筛选出我们所需要,此时便需要我们在查询过程中对查询条件进行限制,这边是条件查询
条件查询的语法:
SELECT * FROM WHERE
例如查询students表中分数大于等于80 (score>=80)的学生信息
查询分数大于等于80的学生信息sql命令
SELECT * FROM students WHERE score >= 80;
查询结果
条件表达式中常用的查询条件有如下这些
查询条件
谓词
比较
=,>,=,<=,!=,<>,!>,!
确定范围
BETWEEN AND,NOT BETWEEN AND
确定集合
IN,NOT IN
字符匹配
LIKE,NOT LIKE
空值
IS NULL,IS NOT NULL
多重条件(逻辑运算)
AND,OR,NOT
2.1.3 多重条件查询
在实际生产过程中我们查询一个表可能查询条件并不仅仅只有一个,此时我们便需要AND、OR和NOT来进行连接和限定。
AND :查询结果既需要满足同时也需要满足。
例如查询分数大于等于60且小于80的学生信息:
SELECT * FROM st