操作DB~~对数据的增删改查!!sql语句

时间:2024-03-19 19:01:38

对数据进行增删改查: 这里着重掌握查询的各种条件

1)插入数据(增加数据):将元组插入到指定的表中。
操作DB~~对数据的增删改查!!sql语句

//插入单条记录
insert into  表名(字段名1,字段名2....)values (值a1,值a2, .....);
//插入多条数据
insert into  表名(字段名1,字段名2....)values (值a1,值a2, .....), (值b1,值b2, .....),.....//插入子查询的结果,注意这里是没有values的
insert into  表名1(字段名1,字段名2....select  字段名1,字段名2....  from  表名2//插入固定的某些数据
insert  into  表名  set  字段名1=1,字段名2=2.....//字段可以不用取全部的字段,部分字段也可以哦
insert into  表名(字段名1,字段名2....)values (值a1,值a2, .....);

备注:如果是插入字段是全部子段的话,可以省略字段部分

 insert into 表名 values(); ..........

例如:
操作DB~~对数据的增删改查!!sql语句
操作DB~~对数据的增删改查!!sql语句

1)删除数据:

    delete from 表名 [where条件] [order排序] [limit限定];

备注:
3,order排序子句和limit限定子句,应用中通常不需要。
3.1 order排序子句用于设定删除数据的先后顺序。
3.2 limit限定子句用于限定在设定的顺序情况下删除指定的某些行。
扩展:(了解,不需要掌握也可以)
类似删除语句truncate:
truncate [table] 表名;用于直接删除整个表(结构)并重新创建该表。
1,删除整个表(数据和结构都没有了)
2,重新创建该表(全新表)。
3,跟delete 语句不带where条件,有什么区别?
主要影响的是类似:auto_increment这种类型的字段值:
truncate结果会重新计算,delete还能继续增长。
例题:
操作DB~~对数据的增删改查!!sql语句
操作DB~~对数据的增删改查!!sql语句
1)修改数据:

update 表名 set 字段名1=值表达式1,字段名2=值表达式2,....[where条件] [order排序] [limit限定];

备注:

1, where条件子句,在应用中,同样几乎都必须有,否则很可能就失去意义,类似delete
2order排序子句通常不需要,用于将要更新的数据指定更新的顺序。
3,limit限定子句通常不需要,用于将要更新的数据的指定顺序去更新部分(局部)数据,比如:前500行。

扩展:复制表

复制表方法1:
create table tab2 like tab1; //复制结构了
insert into tab2 select * from tab1;    //复制数据,这种方法可以比较完整。
复制表方法2:
create table tab2 select * from tab1; //同时复制结构和数据,这种方法可能会丢一些结构信息,比如:索引,约束,自增长属性

例题:
操作DB~~对数据的增删改查!!sql语句
操作DB~~对数据的增删改查!!sql语句
1)查询数据:

select [all | distinct] 字段或表达式列表 [from子句] [where子句] [group by子句] [having子句] [order by子句] [limit子句];

注意:这里对表或者字段可以起别名,

语法: AS 别名 或者 空格 + 别名

操作DB~~对数据的增删改查!!sql语句

[all | distinct]
用于设定所select出来的数据是否允许出现重复行(完全相同的数据行)
all:允许出现——默认不写就是All(允许的)。
distinct:不允许出现——就是所谓的“消除重复行”。


from子句

就是指定数据的来源,其实就是“表”,可以是一个表名,也可以是多个表——多表查询了。

where子句
一个概念:where子句,相当于php或js中的if条件语句:其最终结果就是布尔值(true/false)
1)where中可用的运算符:

    算术运算符: +  -  *  /   %
    比较运算符: >   >=   <    <=   =(等于)   <>(不等于)   
    ==(等于,mysql扩展),!=(不等于,mysql扩展)
    逻辑运算符: and(与)  or(或)   not(非)

2)空值的判断方式:

判断为null:   XX  is  null
判断为非空:   XX  is  not  null

操作DB~~对数据的增删改查!!sql语句

3)between语法:

    XX  between1  and2;
    含义:字段XX的值在值1和值2之间(含),相当于:XX >=值1 and XX<=值2

操作DB~~对数据的增删改查!!sql语句

4)in语法:

    XX  in (值1,值2.......);
    含义:XX等于其中所列出的任何一个值都算成立,相当于:
    XX =1  or XX =2  or  XX =2 
    注意:其中的值1通常是“直接值”,但也可以是后面要学习的“查询结果值”

操作DB~~对数据的增删改查!!sql语句
5)like语法(模糊查找):

    语法形式: XX like  ‘要查找字符’;
    说明:
    1like语法(模糊查找)用于对字符类型的字段进行字符匹配查找
    2,要查找的字符中,有2个特殊含义的字符:
    2.1:  %   其含义是:代表任意个数的任意字符
    2.2:  _   其含义是:代表1个的任意字符
    2.3:这里的字符,都是指现实中可见的一个“符号”,而不是字节。
    3,实际应用中的模糊查找,通常都是这样:like ‘%关键字%’;

操作DB~~对数据的增删改查!!sql语句
操作DB~~对数据的增删改查!!sql语句
5)布尔值的判断方式:
操作DB~~对数据的增删改查!!sql语句

未完~~可以看下一篇“操作DB ~~对数据的增删改查!!sql语句 (二)”