sql not like 多个条件_SQL基础--简单查询

本文介绍了SQL基本查询语句,包括基本查询、为列设置别名、删除重复值等,说明了如何为查询语句指定条件,讲解了注释方法和SQL语句注意事项,还详细阐述了算数、比较、逻辑等运算符的使用,以及字符串模糊查询的方法。

b19f8336d9d724d5bb009231f29c7752.png

1.基本查询语句

select <列名1>,<列名2>,.......

from <表名>;

SQL语句:select 姓名,性别 from student;

查询结果:

e62f1046f456246a718a317c53a58a11.png

SQL语句:select * from student;

查询结果:(*表示查询所有)

99a2232f2a2724a6d11facc3c930336d.png

为列设置别名:as

SQL语句:select 姓名 as s_name,性别 as ‘人类性别’ from student;

查询结果:(注意列名的显示,会变成设置的别名)

c1052a5c625750c776d1d463b88aace3.png

删除重复值:distinct

SQL语句:select distinct 姓名 from student;

查询结果:(原表中‘猴子’有两个,当使用distinct时,就会删除一个)

885e4ca28b10c7f863e063f056cdead5.png

SQL语句:select distinct 学号,姓名 from student;

查询结果:(注意因为学号那一列不存在重复值,所以姓名那列也不做删除)

a36c09ff60bf409e7c2af6ff0aad5d33.png

书写规则:

  • 以英文分号结尾
  • 关键字不区分大小写
  • 列名不能加单引号,列名命名时不能有空格
  • 符号只能使用英文符号

2.如何为查询语句指定条件

例如选取姓名列值为猴子的行用where进行指定条件

select 姓名,学号 --------------------1 从查询出的行中选取出select语句指定的列

from student --------------------2 from 从那张表中查找数据

where 姓名='猴子';--------------------3 where查询出符合条件的行

上面的1,2,3为SQL语句的执行顺序,了解执行顺序,可以方便我们更好的理解SQL语句。

3.注释和SQL语句注意事项

为了更好的理解sql语句,我们通常会在SQL语句上面使用注释对语句进行说明

单行注释:-- 查询出全部列 (注意--后面又有英文的空格)

多行注释:/*

*/

4.运算符

  • 算数运算符:+, -, *, /

特殊:5+null=null

SQL语句:select 学号,成绩,成绩/100 as '百分比成绩' from score;

查询结果:

90a9a61e255f70869cfc0291b3af3add.png
  • 比较运算符 =, >, <,<>,>=,<=

SQL语句:select 学号,成绩 FROM score WHERE 成绩<60;

查询结果:

fe884c9c740c8a2dbbcb543e04be65c6.png

SQL语句:select 姓名,出生日期 FROM student WHERE 出生日期<'1990-01-01';

查询结果:

d5cba8a99beca383117fceae77b9c5d3.png
  • 字符串比较规则:按字典顺序
  • 如何查询出null值?

SQL语句:SELECT 教师号,教师姓名 FROM teacher WHERE 教师姓名 is null;

查询结果:

45a5fd01aa83efd37405f9cd9b28c0fa.png

SQL语句:SELECT 教师号,教师姓名 FROM teacher WHERE 教师姓名 is not null;

查询结果:

30c285da0e7b741b3417080c409b06e1.png
  • 逻辑运算符:

not:否定某一条件

SQL语句:SELECT 学号,成绩 FROM score WHERE NOT 成绩 >= 60;

查询结果:

db0e8b186810393830de65c9c86de98c.png

and:并且

SQL语句:SELECT 学号,成绩 FROM score WHERE NOT 成绩 >= 60 AND 成绩<=90;

查询结果:

b513fb6c32100298cebed82b7b709e59.png

between:范围查询

SQL语句:select 学号,成绩 from score where 成绩 BETWEEN 60 AND 90;

查询结果:

03ccf6af44d65fe83904be6d0ebe7b1e.png

or:或者

SQL语句:select 学号,成绩 from score where 成绩<60 or 成绩>90;

查询结果:

d919dfe5d228aaff08f7b74a58430099.png

in:or的简单写法

SQL语句:select 姓名,性别 from student where 姓名 in ('猴子','马云');

查询结果:

230be65d19abcc9e635b260842bd54a5.png

5.字符串模糊查询

字符串模糊查询:like

  • %可以表示任意字符串

查询姓猴的学生名单:

SQL语句:select * FROM student WHERE 姓名 LIKE '猴%';

查询结果:

fa72fcb8e4de69c5abfc5287154e6843.png

查询姓名中最后一个字是猴的学生名单:

SQL语句:select * FROM student WHERE 姓名 LIKE '%猴';

查询姓名中带猴的学生名单:

SQL语句:select * FROM student WHERE 姓名 LIKE '%猴%';

  • _ 1个下划线表示任意的一个字符

查询姓王的学生名单,并且名字是三个字

SQL语句:select * FROM student WHERE 姓名 LIKE '王__';

查询结果:

163542f52f55829d78de63ed23fea6d8.png
### SQLNOT LIKE 结合多个条件的用法 在 SQL 中,`NOT LIKE` 用于排除与指定模式匹配的记录。当需要结合多个条件时,可以使用逻辑运算符 `AND` 或 `OR` 来组合多个 `NOT LIKE` 表达式。以下是一个详细的说明和示例。 #### 基本语法 ```sql SELECT column1, column2, ... FROM table_name WHERE column_name NOT LIKE 'pattern1' AND column_name NOT LIKE 'pattern2' AND column_name NOT LIKE 'pattern3'; ``` 此语法中,`NOT LIKE` 用于排除与特定模式匹配的记录,而逻辑运算符 `AND` 或 `OR` 用于组合多个条件[^4]。 #### 示例代码 假设有一个名为 `Employees` 的表,其中包含员工的名字(`Name`)。现在需要查询所有名字不以 "A" 开头且不包含 "John" 的员工: ```sql SELECT Name FROM Employees WHERE Name NOT LIKE 'A%' AND Name NOT LIKE '%John%'; ``` 如果需要进一步扩展条件,例如排除名字以 "B" 开头的员工,则可以在 `WHERE` 子句中添加更多 `NOT LIKE` 条件: ```sql SELECT Name FROM Employees WHERE Name NOT LIKE 'A%' AND Name NOT LIKE 'B%' AND Name NOT LIKE '%John%'; ``` #### 使用 OR 组合条件 如果需要满足任意一个条件即可排除某条记录,则可以使用 `OR`: ```sql SELECT Name FROM Employees WHERE Name NOT LIKE 'A%' OR Name NOT LIKE '%John%'; ``` 需要注意的是,`OR` 和 `AND` 的逻辑行为不同,在设计查询时应根据需求选择合适的逻辑运算符[^5]。 #### 注意事项 - 模式匹配中的 `%` 表示零个或多个字符,而 `_` 表示单个字符- 如果数据库区分大小写,则需要确保模式与数据的大小写一致,或者使用函数如 `LOWER()` 或 `UPPER()` 进行转换[^6]。 ```sql SELECT Name FROM Employees WHERE LOWER(Name) NOT LIKE 'a%' AND LOWER(Name) NOT LIKE 'b%' AND LOWER(Name) NOT LIKE '%john%'; ``` ### 总结 通过将多个 `NOT LIKE` 条件与逻辑运算符 `AND` 或 `OR` 结合,可以灵活地实现复杂的字符串过滤需求。上述示例展示了如何在实际场景中应用这些语法[^7]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值