做线上网站需要多少钱营销网站制作费用
做线上网站需要多少钱,营销网站制作费用,网站 动态 标签页,珠海电商网站建设条件查询语法#xff1a;select 列名 from 表名 where 列 运算符 值说明#xff1a;注意关键字where#xff0c;where后面跟上一个或者多个条件#xff0c;条件是对前面数据的过滤#xff0c;只有满足where后面条件的数据才会被返回。下面介绍常见的查询运算符。操作符描述…条件查询语法select 列名 from 表名 where 列 运算符 值说明注意关键字wherewhere后面跟上一个或者多个条件条件是对前面数据的过滤只有满足where后面条件的数据才会被返回。下面介绍常见的查询运算符。操作符描述等于 或者 !不等于大于大于等于小于等于等于()select 列名 from 表名 where 列 值;说明查询出指定的列和对应的值相等的记录。值如果是字符串类型需要用单引号或者双引号引起来。示例mysql create table test1 (a int,b varchar(10));Query OK, 0 rows affected (0.01 sec)mysql insert into test1 values (1,abc),(2,bbb);Query OK, 2 rows affected (0.01 sec)Records: 2 Duplicates: 0 Warnings: 0mysql select * from test1;------------| a | b |------------| 1 | abc || 2 | bbb |------------2 rows in set (0.00 sec)mysql select * from test1 where a2;------------| a | b |------------| 2 | bbb |------------1 row in set (0.00 sec)mysql select * from test1 where b abc;------------| a | b |------------| 1 | abc |------------1 row in set (0.00 sec)mysql select * from test1 where b abc;------------| a | b |------------| 1 | abc |------------1 row in set (0.00 sec)不等于(、!)不等于有两种写法或者!select 列名 from 表名 where 列 值;或者select 列名 from 表名 where 列 ! 值;示例mysql select * from test1 where a1;------------| a | b |------------| 2 | bbb |------------1 row in set (0.00 sec)mysql select * from test1 where a!1;------------| a | b |------------| 2 | bbb |------------1 row in set (0.00 sec)注意 这个是最早的用法。!是后来才加上的。两者意义相同在可移植性上前者优于后者故而sql语句中尽量使用来做不等判断大于()select 列名 from 表名 where 列 值;示例mysql select * from test1 where a1;------------| a | b |------------| 2 | bbb |------------1 row in set (0.00 sec)mysql select * from test1 where ba;------------| a | b |------------| 1 | abc || 2 | bbb |------------2 rows in set (0.00 sec)mysql select * from test1 where bac;------------| a | b |------------| 2 | bbb |------------1 row in set (0.00 sec)说明数值按照大小比较。字符按照ASCII码对应的值进行比较比较时按照字符对应的位置一个字符一个字符的比较。其他几个运算符()在此就不介绍了用法和上面类似大家可以自己练习一下。逻辑查询运算符当我们需要使用多个条件进行查询的时候需要使用逻辑查询运算符。逻辑运算符描述AND多个条件都成立OR多个条件中满足一个AND(并且)select 列名 from 表名 where 条件1 and 条件2;表示返回满足条件1和条件2的记录。示例mysql create table test3(a int not null,b varchar(10) not null);Query OK, 0 rows affected (0.01 sec)mysql insert into test3 (a,b) values (1,a),(2,b),(2,c),(3,c);Query OK, 4 rows affected (0.00 sec)Records: 4 Duplicates: 0 Warnings: 0mysql select * from test3;------| a | b |------| 1 | a || 2 | b || 2 | c || 3 | c |------4 rows in set (0.00 sec)mysql select * from test3 t where t.a2 and t.bc;------| a | b |------| 2 | c |------1 row in set (0.00 sec查询出了a2 并且 bc’的记录返回了一条结果。OR(或者)select 列名 from 表名 where 条件1 or 条件2;满足条件1或者满足条件2的记录都会被返回。示例mysql select * from test3;------| a | b |------| 1 | a || 2 | b || 2 | c || 3 | c |------4 rows in set (0.00 sec)mysql select * from test3 t where t.a1 or t.bc;------| a | b |------| 1 | a || 2 | c || 3 | c |------3 rows in set (0.00 sec)查询出了a1或者bc’的记录返回了3条记录。like(模糊查询)有个学生表包含(学生id年龄姓名)当我们需要查询姓“张”的学生的时候如何查询呢此时我们可以使用sql中的like关键字。语法select 列名 from 表名 where 列 like pattern;pattern中可以包含通配符有以下通配符%表示匹配任意一个或多个字符_表示匹配任意一个字符。学生表查询名字姓“张”的学生如下mysql create table stu (id int not null comment 编号,age smallint not null comment 年龄,name varchar(10) not null comment 姓名);Query OK, 0 rows affected (0.01 sec)mysql insert into stu values (1,22,张三),(2,25,李四),(3,26,张学友),(4,32,刘德华),(5,55,张学良);Query OK, 5 rows affected (0.00 sec)Records: 5 Duplicates: 0 Warnings: 0mysql select * from stu;--------------------| id | age | name |--------------------| 1 | 22 | 张三 || 2 | 25 | 李四 || 3 | 26 | 张学友 || 4 | 32 | 刘德华 || 5 | 55 | 张学良 |--------------------5 rows in set (0.00 sec)mysql select * from stu a where a.name like 张%;--------------------| id | age | name |--------------------| 1 | 22 | 张三 || 3 | 26 | 张学友 || 5 | 55 | 张学良 |--------------------3 rows in set (0.00 sec)查询名字中带有’学’的学生学’的位置不固定可以这么查询如下mysql select * from stu a where a.name like %学%; ;--------------------| id | age | name |--------------------| 3 | 26 | 张学友 || 5 | 55 | 张学良 |--------------------2 rows in set (0.00 sec)查询姓’张’名字2个字的学生mysql select * from stu a where a.name like 张_;-----------------| id | age | name |-----------------| 1 | 22 | 张三 |-----------------1 row in set (0.00 sec)上面的代表任意一个字符如果要查询姓’张’的3个字的学生条件变为了’张_’2个下划线符号。BETWEEN AND(区间查询)操作符 BETWEEN … AND 会选取介于两个值之间的数据范围这些值可以是数值、文本或者日期属于一个闭区间查询。select 列名 from 表名 where 列名 between 值1 and 值2;返回对应的列的值在[值1,值2]区间中的记录使用between and可以提高语句的简洁度两个临界值不要调换位置只能是大于等于左边的值并且小于等于右边的值。示例查询年龄在[25,32]的如下mysql select * from stu;--------------------| id | age | name |--------------------| 1 | 22 | 张三 || 2 | 25 | 李四 || 3 | 26 | 张学友 || 4 | 32 | 刘德华 || 5 | 55 | 张学良 |--------------------5 rows in set (0.00 sec)mysql select * from stu t where t.age between 25 and 32;--------------------| id | age | name |--------------------| 2 | 25 | 李四 || 3 | 26 | 张学友 || 4 | 32 | 刘德华 |--------------------3 rows in set (0.00 sec)下面两条sql效果一样select * from stu t where t.age between 25 and 32;select * from stu t where t.age 25 and t.age 32;IN查询我们需要查询年龄为10岁、15岁、20岁、30岁的人怎么查询呢可以用or查询如下mysql create table test6(id int,age smallint);Query OK, 0 rows affected (0.01 sec)mysql insert into test6 values(1,14),(2,15),(3,18),(4,20),(5,28),(6,10),(7,10),(8,30);Query OK, 8 rows affected (0.00 sec)Records: 8 Duplicates: 0 Warnings: 0mysql select * from test6;------------| id | age |------------| 1 | 14 || 2 | 15 || 3 | 18 || 4 | 20 || 5 | 28 || 6 | 10 || 7 | 10 || 8 | 30 |------------8 rows in set (0.00 sec)mysql select * from test6 t where t.age10 or t.age15 or t.age20 or t.age 30;------------| id | age |------------| 2 | 15 || 4 | 20 || 6 | 10 || 7 | 10 || 8 | 30 |------------5 rows in set (0.00 sec)用了这么多or有没有更简单的写法有用IN查询IN 操作符允许我们在 WHERE 子句中规定多个值。select 列名 from 表名 where 字段 in (值1,值2,值3,值4);in 后面括号中可以包含多个值对应记录的字段满足in中任意一个都会被返回in列表的值类型必须一致或兼容in列表中不支持通配符。上面的示例用IN实现如下mysql select * from test6 t where t.age in (10,15,20,30);------------| id | age |------------| 2 | 15 || 4 | 20 || 6 | 10 || 7 | 10 || 8 | 30 |------------5 rows in set (0.00 sec)相对于or简洁了很多。NOT IN查询not in和in刚好相反in是列表中被匹配的都会被返回NOT IN是和列表中都不匹配的会被返回。select 列名 from 表名 where 字段 not in (值1,值2,值3,值4);1如查询年龄不在10、15、20、30之内的如下mysql select * from test6 t where t.age not in (10,15,20,30);------------| id | age |------------| 1 | 14 || 3 | 18 || 5 | 28 |------------3 rows in set (0.00 sec)NULL存在的坑我们先看一下效果然后再解释示例如下mysql create table test5 (a int not null,b int,c varchar(10));Query OK, 0 rows affected (0.01 sec)mysql insert into test5 values (1,2,a),(3,null,b),(4,5,null);Query OK, 3 rows affected (0.01 sec)Records: 3 Duplicates: 0 Warnings: 0mysql select * from test5;---------------| a | b | c |---------------| 1 | 2 | a || 3 | NULL | b || 4 | 5 | NULL |---------------3 rows in set (0.00 sec)上面我们创建了一个表test53个字段a不能为空b、c可以为空插入了3条数据睁大眼睛看效果了mysql select * from test5 where b0;---------------| a | b | c |---------------| 1 | 2 | a || 4 | 5 | NULL |---------------2 rows in set (0.00 sec)mysql select * from test5 where b0;Empty set (0.00 sec)mysql select * from test5 where bNULL;Empty set (0.00 sec)mysql select * from test5 t where t.b between 0 and 100;---------------| a | b | c |---------------| 1 | 2 | a || 4 | 5 | NULL |---------------2 rows in set (0.00 sec)mysql select * from test5 where c like %;---------------| a | b | c |---------------| 1 | 2 | a || 3 | NULL | b |---------------2 rows in set (0.00 sec)mysql select * from test5 where c in (a,b,NULL);---------------| a | b | c |---------------| 1 | 2 | a || 3 | NULL | b |---------------2 rows in set (0.00 sec)mysql select * from test5 where c not in (a,b,NULL);Empty set (0.00 sec)认真看一下上面的查询上面带有条件的查询对字段b进行条件查询的b的值为NULL的都没有出现。对c字段进行like %查询、in、not查询c中为NULL的记录始终没有查询出来。between and查询为空的记录也没有查询出来。结论查询运算符、like、between and、in、not in对NULL值查询不起效。那NULL如何查询呢继续向下看IS NULL/IS NOT NULL(NULL值专用查询)上面介绍的各种运算符对NULL值均不起效mysql为我们提供了查询空值的语法IS NULL、IS NOT NULL。IS NULL(返回值为空的记录)select 列名 from 表名 where 列 is null;查询指定的列的值为NULL的记录。如mysql create table test7 (a int,b varchar(10));Query OK, 0 rows affected (0.01 sec)mysql insert into test7 (a,b) values (1,a),(null,b),(3,null),(null,null),(4,c);Query OK, 5 rows affected (0.00 sec)Records: 5 Duplicates: 0 Warnings: 0mysql select * from test7;------------| a | b |------------| 1 | a || NULL | b || 3 | NULL || NULL | NULL || 4 | c |------------5 rows in set (0.00 sec)mysql select * from test7 t where t.a is null;------------| a | b |------------| NULL | b || NULL | NULL |------------2 rows in set (0.00 sec)mysql select * from test7 t where t.a is null or t.b is null;------------| a | b |------------| NULL | b || 3 | NULL || NULL | NULL |------------3 rows in set (0.00 sec)IS NOT NULL(返回值不为空的记录)select 列名 from 表名 where 列 is not null;查询指定的列的值不为NULL的记录。如mysql select * from test7 t where t.a is not null;------------| a | b |------------| 1 | a || 3 | NULL || 4 | c |------------3 rows in set (0.00 sec)mysql select * from test7 t where t.a is not null and t.b is not null;------------| a | b |------------| 1 | a || 4 | c |------------2 rows in set (0.00 sec)(安全等于)既可以判断NULL值又可以判断普通的数值可读性较低用得较少示例mysql create table test8 (a int,b varchar(10));Query OK, 0 rows affected (0.01 sec)mysql insert into test8 (a,b) values (1,a),(null,b),(3,null),(null,null),(4,c);Query OK, 5 rows affected (0.01 sec)Records: 5 Duplicates: 0 Warnings: 0mysql select * from test8;------------| a | b |------------| 1 | a || NULL | b || 3 | NULL || NULL | NULL || 4 | c |------------5 rows in set (0.00 sec)mysql select * from test8 t where t.anull;------------| a | b |------------| NULL | b || NULL | NULL |------------2 rows in set (0.00 sec)mysql select * from test8 t where t.a1;------------| a | b |------------| 1 | a |------------1 row in set (0.00 sec)可以看到可以将NULL查询出来。经典面试题下面的2个sql查询结果一样么select * from students;select * from students where name like %;结果分2种情况当name没有NULL值时返回的结果一样。当name有NULL值时第2个sql查询不出name为NULL的记录。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/86932.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!