美文网首页
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