首页 > 数据库 > 文库 > 正文

SQL简单利用

2024-09-07 22:12:48
字体:
来源:转载
供稿:网友
  与上一篇的《SQL简单使用-基础篇》相连续的篇章,《SQL简单使用-基础篇》以下简称《基础篇》。在《基础篇》中,主要简单的带大家了解一下SQL命令中最主要的增删改查命令的使用,增INSERT INTO、删DETELE/DROP/TRUNCATE、改UPDATE、查SELECTE。因为增删改查是SQL命令的核心也是最基础的部分,所以本篇张还是围绕增删改查的使用进行进阶性的介绍与使用。
 
  先从《基础篇》中提到的where子句里面的通配符讲起。
 
  1.like 用于在where子句中搜索列中的指定模式
  示例:
  select * from websites where name like '%oo%';
  注:(%分号表示任意数据,_表示任意一个数据,动手练两边就能熟悉)
  'G%' 搜索以G开头的数据
  '%G' 搜索以G结尾的数据
  '%g%' 搜索包含g的数据
  'G' 搜索以G开头的两位数据
  'G' 搜索以G结尾的两位数据
  'G' 搜索包含G的三位数据
 
  1.1 通配符还有一种(%、_和[charlist])
  示例:[charlist]使用
  select * from websites where name REGEXP '^[A-H]';
 
  2.between 用于选取介于两个值之间的数据范围内的值
  示例:
  select * from websites where alexa between 1 and 20;
  示例:添加not使用
  select * from websites where alexa not between 1 and 20;
  示例:结合IN使用
  select * from websites where ( alexa BETWEEN 1 and 20) and country in ('USA','CN');
  示例:文本
  select * from websites where name between 'A' and 'H';  不包含H
 
  3.top 用于规定返回记录的数据,实用
  示例:SQL server (SELECT TOP number|percent column_name(s) FROM table_name;)
  select top 50 percent * from websites;
  示例:Oracle(SELECT column_name(s) FROM table_name WHERE ROWNUM <= number;)
  select * from websites where ROWNUM <5;
  示例:MYSQL (SELECT column_name(s) FROM table_name LIMIT number;)
  select * from websites limit 3;
 
  4. join 子句用于把来自两个表或者多个表的行结合起来,基于这些表之间的共同字段
  join类型有一下几种:
  INNER JOIN:如果表中有至少一个匹配,则返回行
  LEFT JOIN:即使右表中没有匹配,也从左表返回所有的行
  RIGHT JOIN:即使左表中没有匹配,也从右表返回所有的行
  FULL JOIN:只要其中一个表中存在匹配,则返回行(MYSQL不支持)
 
  首先,连接的结果可以在逻辑上看作是由SELECT语句指定的列组成的新表。
  左连接与右连接的左右指的是以两张表中的哪一张为基准,它们都是外连接。
  外连接就好像是为非基准表添加了一行全为空值的万能行,用来与基准表中找不到匹配的行进行匹配。假设两个没有空值的表进行左连接,左表是基准表,左表的所有行都出现在结果中,右表则可能因为无法与基准表匹配而出现是空值的字段。

(编辑:武林网)

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表