CREATE TABLE `test_user` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '用户id',
`username` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '用户名',
`password` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '用户名',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 9 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
INSERT INTO `test_user` VALUES (2, '今天刚学mysql,还是个', '123456');
INSERT INTO `test_user` VALUES (4, '终极it菜鸡', '123456');
INSERT INTO `test_user` VALUES (5, 'mysql入门了吗', '123456');
INSERT INTO `test_user` VALUES (6, '快了快了', '123456');
INSERT INTO `test_user` VALUES (7, '不行了不行了', '123456');
INSERT INTO `test_user` VALUES (8, '头发没啦,删库跑路', '123456');
语法格式:
SELECT 字段1,字段2… FROM <表名> WHERE 字段名=值 and 字段名=值
举个栗子
SELECT * FROM test_user WHERE id=4 and username='终极it菜鸡';
语法格式:
SELECT 字段1,字段2… FROM <表名> WHERE 字段名=值 or 字段名=值
举个栗子
SELECT * FROM test_user WHERE id=2 or username='终极it菜鸡';
语法格式
SELECT 字段1,字段2… FROM <表名> WHERE 字段名 LIKE 条件
这里牵扯到一个通配符 和LIKE 一起使用的有 ” %“ 和”__“;
百分号 (%) 可以匹配任意长度的字符。
照常举个栗子 两边都放是前后都可以匹配任意长度的字符。 可以只在一边加
select * from test_user where username like ”%学%“;
下划线(__) 和 % 的用法相同 区别是% 可以匹配多个字符 而 (_ _ ) 只能匹配一个字符。 两边加是为了匹配两边 加一边加两边 根据实际需求来。
select * from test_user where username like ”_学_“;
显示前N 行 简而言之 就是要查出几行数据。
SELECT * FROM <表名> LIMIT [位置偏移量] 行数
举栗子
SELECT * FROM test_user LIMIT 1,3;
通过这三条查询数据 应该能够看出位移偏移量是什么了吧,还有行数的意思应该也懂啦吧。
位移偏移量 就是 要从第几行开始查起 0 才表示 第一行数据
行数 : 就是从位移偏移量开始往后查 这个行数。
语法格式
SELECT 字段1,字段2… FROM <表名> WHERE 字段名 IN (值1,值2…)
例子: (* 表示查询这个表的全部字段)
SELECT * FROM test_user WHERE id IN (1,2,3);
语法格式 这个是要查 这个范围的值 。
SELECT 字段1,字段2… FROM 表名 WHERE 字段名 BETWEEN 值1 AND 值2 ;
也可以 在前面加上 NOT 表示不查这个范围的值
SELECT 字段1,字段2… FROM 表名 WHERE 字段名 NOT BETWEEN 值1 AND 值2 ;
举个爪子
SELECT * FROM test_user WHERE id BETWEEN 1 AND 5 ;
语法表 可以查询某字段内容为空的记录。
SELECT 字段名1,字段名2… FROM 表名 WHERE 字段名 IS NULL
回过头来看自己学过的知识,真的能够知道自己非常多的不足。
仍需努力。