SQL数据库指令--SELECT语句 点击:451 | 回复:0



DAFSE

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:33帖 | 1回
  • 年度积分:0
  • 历史总积分:135
  • 注册:2018年8月23日
发表于:2021-10-09 11:17:33
楼主

SQL数据库指令--SELECT 语句 

企业微信截图_16337484171205.pngSELECT 语句用来检索数据表中的数据,而哪些数据被检索,是由列出的数据行和语句中的 WHERE 子句决定。

(SQL指令不区分大小写,SQL 使用单引号来环绕文本值(大部分数据库系统也接受双引号)。如果是数值,请不要使用引号。)

句式:SELECT 字段 FROM 表 WHERE 条件

例如,要从之前建立的 Customer_Data数据表中检索 customer_id 以及 first_name 数据行的数据,并且只想取出每行中 first_name 数据值为 Frankie 的数据,那麼可以利用以下的 SELECT 语句:

  SELECT customer_id, first_name FROM Customer_Data
  WHERE first_name = ‘Frankie’
  如果有一行符合 SELECT 语句中的标准,则结果将显示如下:

  customer_id first_name

以上是WHERE 后带比较运算符(大小比较):>、>=、=、<、<=、<>、!>、!<

Where后面还可以加:

①范围运算符(表达式值是否在指定的范围):BETWEEN…AND…

NOT BETWEEN…AND…

--示例:范围运算符例:age BETWEEN 10 AND 30相当于age>=10 AND age<=30

②列表运算符(判断表达式是否为列表中的指定项):

IN (项1,项2……)   

NOT IN (项1,项2……)

--示例:列表运算符例:country IN ('Germany','China')

③模式匹配符(判断值是否与指定的字符通配格式相符):LIKE、NOT LIKE

--示例:模式匹配符例:常用于模糊查找,它判断列值是否与指定的字符串格式相匹配。可用于char、varchar、text、ntext、datetime和smalldatetime等类型查询。可使用以下通配字符:

  百分号%:可匹配任意类型和长度的字符,如果是中文,请使用两个百分号即%%。
  下划线_:匹配单个任意字符,它常用来限制表达式的字符长度。
  方括号[]:指定一个字符、字符串或范围,要求所匹配对象为它们中的任一个。[^]:其取值也[] 相同,但它要求所匹配对象为指定字符以外的任一个字符。
  例如:
  限制以Publishing结尾,使用LIKE '%Publishing'
  限制以A开头:LIKE '[A]%'
  限制以A开头外:LIKE '[^A]%'

④空值判断符(判断表达式是否为空):

IS NULL、IS NOT NULL

--示例:空值判断符例WHERE age IS NULL

⑤逻辑运算符(用于多条件的逻辑连接):

NOT、AND、OR

--示例:逻辑运算符:优先级为NOT、AND、OR

请关注微信公众号

注意:

模式匹配符查找:

1.句式:SELECT 字段 FROM 表 WHERE 某字段 Like 条件

(有些情况下若是中文,要使用两个百分号(%%)表示)  

比如 SELECT * FROM [user] WHERE u_name LIKE '%三%' ,将会把u_name为“张三”,“张猫三”、“三脚猫”,“唐三藏”等等有“三”的记录全找出来。

如:SELECT * FROM [user] WHERE u_name LIKE '%三%' AND u_name LIKE '%猫%'就会把即符合三又有猫的记录找出来


2,句式:SELECT * FROM 表 WHERE 行字段 LIKE '_三_'(只显示中间为汉子三的数据)

_:表示任意单个字符。匹配单个任意字符,它常用来限制表达式的字符长度语句:  比如 SELECT * FROM [user] WHERE u_name LIKE '_三_'  只找出“唐三藏”这样u_name为三个字且中间一个字是“三”的; 再比如 SELECT * FROM [user] WHERE u_name LIKE '三__'; 只找出“三脚猫”这样name为三个字且第一个字是“三”的。 

3,[ ]:表示括号内所列字符中的一个(类似正则表达式)。指定一个字符、字符串或范围,要求所匹配对象为它们中的任一个。  比如 SELECT * FROM [user] WHERE u_name LIKE '[张李王]三' 将找出“张三”、“李三”、“王三”(而不是“张李王三”); 如 [ ] 内有一系列字符(01234、abcde之类的)则可略写为“0-4”、“a-e” SELECT * FROM [user] WHERE u_name LIKE '老[1-9]' ,将找出“老1”、“老2”、……、“老9”。

4,[^ ] :表示不在括号所列之内的单个字符。其取值和 [] 相同,但它要求所匹配对象为指定字符以外的任一个字符。  比如 SELECT * FROM [user] WHERE u_name LIKE '[^张李王]三' 将找出不姓“张”、“李”、“王”的“赵三”、“孙三”等; SELECT * FROM [user] WHERE u_name LIKE '老[^1-4]';将排除“老1”到“老4”,寻找“老5”、“老6”、……




1分不嫌少!


楼主最近还看过


热门招聘
相关主题

官方公众号

智造工程师