美文网首页
mysql基本操作

mysql基本操作

作者: JessWang | 来源:发表于2018-06-22 14:48 被阅读6次

插入数据

多种语法形式

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

            这是最常用的插入语句,可以一次性插入多行数据,用逗号隔开

            插入语句,要理解为每次插入数据都是以"行"为单位插入.

            字段名通常不推荐省略,其后续的"值列表"应该跟字段名列表"一一对应";

            其中值表达式,可以是一个直接,或函数调用结果或变量值,其中,如果对应字段是字符或时间类型,则直接值使用单引号

        2. replace [into] 表名 (字段名1,字段名2,...) values (值1,值2,...)

        3. insert [into] 表名[ (字段名1,字段名2,...)] select 字段名1 ,字段名2,... from 其他表名

        4. insert [into] 表名 set 字段名 1=值表达式1,字段名2=值表达式2,...

load data 载入数据

        只适用于结构整齐的数据.

        load data infile "完整的数据文件的路径" into table 表名;

删除数据

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

说明: 

        1. 删除数据仍然是以"行"为单位进行

        2. 通常删除数据都需要带where 条件,否则就会删除所有数据.

        3. where条件的语法跟select中语法一样

        4. order by排序设定,用于指导这些数据的删除顺序; 它通常跟limit配合使用才有意义

        5. limit 限定用于设定删除多少行(按 orderby 设定的顺序);

修改数据

update 表名set 字段1=值1,字段2=值2, where 条件;

        说明:

            1. 通常,update语句,也都需要where条件

            2. where 条件的语法跟select的语法一样

            3. order by 用于设定修改的顺序,limit用于设定修改的行数,他们通常也是结合使用(虽然都很少用)

            4. 实际应用中,通常很少用到order by 和 limit, 则修改数据的常规使用形式就成为:

                update 表名 set 字段 1 = 值 1, 字段 2 = 值 2,... ... where 条件

            5. 注意: 其中的"数据值",如果是字符串或时间类型的"直接值",就应该用单引号;

基本查询

    基本语法形式

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

    字段或表达式列表

    1. 字段,自然是来源于"表",则其必然依赖于from

    2. 表达式是类似于这样一个内容: 8, 8+3, now()

其中,concat函数是连接多个字符串.

    3. 每个"输出项"(字段或表达式结果),都可以给其设定一个"别名"(字段别名)形式为:

            字段或表达式 as 别名

all 和 distinct

用于设定设定select出来的数据,是否消除"重复行",可以不写,默认值是distinct.

        all: 表示不消除,即所有都出来,默认值.

        distinct: 表示会消除.

from子句

from子句表示select部分从中取得数据的数据源 -- 其实就是表.

where子句依赖于from子句

is运算符: 空值和布尔值的判断

有4种情况的使用:

        XX is null: 判断某个字段是"null"值 -- 就是没有值

        XX is not null: 有值,不为空

        XX is true: 为真

        xx is false: 为假

between运算符:

用于判断某个字段的数据值是否在谋而给定的范围 -- 适用于数字类型;

语法:

        xx between 值1 and 值2;

in 运算符

    给定确定数据的范围判断

语法:  XX in (值1, 值2, 值3)

含义; 表示字段XX的值为所列出值的一个,就算是满足条件,一般是无规律的,如果有规律,可以使用between雷代替.

like运算符:

语法: XX like  要查找的内容

含义: 实现对字符串的某种特征信息的模糊查找.它其实依赖于以下2个特殊的"符号":

%  : 它代表任何个数的任何字符

_   :(下杠),它代表"一个任何字符";

常见使用示例: name lkie '%罗%', 表示含有罗字

                          name lkie '罗%', 表示以罗字开头

                          name lkie '%罗', 表示以罗字结尾

group by子句: 分组

形式:

        group by 字段1 [desc | asc], 字段2[desc | asc] ......

说明:

        1. 分组是对"前述"已经找出的数据(即where 已经筛选过了) 进行某种指定标准(依据)的分组

        2. 同时,该分组结果,可以同时指定其"排序方式": desc(倒叙),asc(顺序);

        3. 通常,分组就一个字段(依据),2个以上很少.

什么叫做分组?

分组: 就是将多行数据,以某种标准(就是指定字段)来进行"分类"存放:

特别注意:

        分组之后的结果,一定要理解为:只有一个一个组了.

则 结果是: 在select语句中的"输出(取出)"部分,只应该出现"组的信息":

                    select 组信息1,组信息2,...from 数据源 group by 字段;

应用中,分组之后,通常只有如下几种可用的"组信息"了,(即可用出现在select中);

        1. 分组一句本身的信息,其实就是该分组一句的字段名;

        2. 每一组的"数量"信息,就是用count(*)获得

        3. 原来数据中的"数值类型字段的集合信息",包括如下几个:

            最大值:    max(字段名)

            最小值:     min(字段名)

            平均值:    avg(字段名)

            综合值:    sum(字段名)

上述4个其实就是内部函数.

having语句

having的作用和where完全一样,但其值对"分组的结果数据"进行筛选;

即:  where对原始数据行进行筛选, having对分组之后的数据行进行筛选

可以用一下语句"恢复"(导入数据)

        source "备份数据的完整路径"

order by 子句

        它用于将前面"取得"的数据以设定的标准(字段)来进行排序输出,默认是正序

形式

        order by 字段1[asc | desc],字段2,[asc | desc]...

limit 子句

        含义:

            它用于将"前述取得的数据",按指定的行取出来: 从第几行开始取出多少行.

        形式:

            limit 行数

相关文章

网友评论

      本文标题:mysql基本操作

      本文链接:https://www.haomeiwen.com/subject/yjvrjftx.html