SQL基础语法的单表操作 select|insert|update|delete(增删改查) 简单使用

以下案列以此表举例

1、select(查询)

select简单的查询分为两种

注:字段也就是表结构中的列的名称

第一种:

select  字段名  from  表名

此种查询只列出你所需要查询的字段,要查询多个字段以“,”隔开   

 

第二种:

select  *  from  表名

 * 的意思是查询出此表的所有字段

 

 

额外的内容:distinct关键字

select  distinct  字段名  from  表名

给查询的结果去重

 

2、insert(插入)

insert插入数据行(记录)的两种简单实现方式

第一种:

insert  into  表名  values(值1,值2...)

 

这种插入数据行的的值必须与表的字段名一一对应,否则数据会插入失败给出错误提示:

错误提示:Column count doesn't match value count at row 1

第二种:

insert  into  表名(字段名,字段名...)  values(值1,值2...)

显而易见,这是指定字段名来插入数据

 

3、update(更新(修改))

语法:

update  表名  set  字段名  =  新值  where  字段名  =   旧值

 

where 后面接条件,条件有多种多样,后面我会一一说明。在这里where的意思就是我要修改这个字段名下的这个旧值,新值写在set后面

 

4、delete(删除)

语法:

delete  from  表名  where  字段名 = 值

 

根据字段名找到值的这一行记录就被删除了

 

where(重点,条件语句)

如果你的语句中有条件,则在语句末尾加上where,再跟上你的条件。例如:

select  *  from  表名  where  字段名 = 值

delete  from  表名  where  字段名 = 值

=, >, <, >=, <=, <>(不等于)都适用于where

where用法极其丰富,后面我会一一讲解,这里暂时给点简单的例子

 

and 和 or(运算符)

and类似于java(不仅仅java)运算符的  &(与),  or类似于  | (或) 。

AND 和 OR 可在 WHERE 子语句中把两个或多个条件结合起来

and例子:

select  *  from  表名  where  条件1  and  条件2

 

查询列出满足条件1条件2的结果

or例子:

select  *  from  表名  where  条件1  or  条件2

 

查询列出满足条件1或者条件2的结果(满足其中一的都列出来)

 

order by(排序)

对结果进行排序

 

order by 写在语句最后面,给结果集排序。

 

order by 列子:

 

select  字段1,字段2  from  表名  order by 字段1 desc, 字段2 asc

 

order by asc  升序  查询出的结果升序

可以没有order by 后面的关键字,那样就默认asc(升序)

 

order by desc  降序   结果降序

用法大同小异,多种结果也可以多种排序,用","隔开

 

limit(规定返回的数目)

注意:mySQL使用的是limit来规定返回的数目,Oracle的语法是不一样的

 

在你的select语句后面加上它,可以指定你查询结果的记录的条数

列子1:

select  *  from  表名  limit  2

 

查询列出这张表的前2行的记录

 

like与通配符

首先我们要知道什么是通配符,以下就是sql中使用的通配符,但必须和like一起使用

%        替代一个或多个字符

_         只代替一个字符

[charlist]   在字符列中的任何单一字符

[^charlist]

等价于

[!charlist]  不在字符列中的任何单一字符

%通配符:

select  *  from  表名  where  字段名  like  'xx%'

 

查询列出此字段以xx开头的记录

 

 

select  *  from  表名  where  字段名  like  '%xx%'

 

查询列出此字段包含xx的记录

_:

select  *  from  表名  where  字段名  like  '_xx'

 

查询列出此字段先以一个任意字符开头,后面为xx的记录

 

 

select  *  from  表名  where  字段名  like  '_x_x_'

 

查询列出此字段先以一个任意字符开头,后面为x,又接一个任意字符,又接一个x,再接一个任意字符的记录

[charlist]:

select  *  from  表名  where  字段名  regexp  '[abc]%'

 

查询列出此字段以a或b或c开头的记录,这里没用到  like   关键字,是因为mysql的语法用regexp(正则表达式)代替了

[!charlist]:

select  *  from  表名  where  字段名  like  '[!abc]%'

查询列出此字段不以a或b或c开头的记录

 

in

前面我们可以根据具体的字段来查询记录比如:

where  字段名 in 值

where  字段名 in (值1,值2,值3....)

有了in我们可以规定多个值

 

 

between

BETWEEN ... AND 会选取介于两个值之间的数据范围。这些值可以是数值、文本或者日期

select  *  from  表名  where  字段名  between  左范围  and  右范围

这里提个醒,mysql的between语法的查询结果会包含左范围和右范围,也就是>=和<=,其他的数据库可能会有别的变动,在这里我只用mysql举例

 

posted @ 2019-04-11 21:41  眼观心海  阅读(1362)  评论(0编辑  收藏  举报