传智播客旗下技术交流社区北京校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 小鲁哥哥 于 2017-6-24 14:41 编辑

【济南中心】PHP课程同步笔记day17:数据库操作语言
插入数据(insert)
    4种形式:
        形式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 其他表名;
                插入一行或多行数,是将select 语句所获得的结果数据插入指定表的制定字段;
        形式4:
                Insert [into] 表名 set 字段名1=值表达式1,字段名2=值表达式2,......;
        说明:
                1.重要观念:插入数据都应该理解为是以”行”为单位进行的。
                2.Replace语法可以实现跟insert语法一样的效果,但还可以做到:如果主键重复了或唯一键重复了,则会先删除原来的数据,再插入新数据(相当于修改);
                3.插入数据时的字段名和数据值之间都有”一一对应”关系
                4.插入数据时,有的字段可以不用给定数据,则无需列出来,该字段的值会根据表的设定获得相应的”数据”,比如:自增长值,默认值,甚至是空值(允许空的时候)
                5.对于字符串和时间类型的”直接值”(比如”abc”,”2017-06-24 13:31:31”),必须用单引号引起来!而数字一类就可以不用。
删除数据
        形式:
                Delete from 表名 [where条件] [order排序] [limit 限定];
        说明:
                1.删除数据也是以”行”为单位。
                2.Where ,order,limit3个子句,虽然语法上都可以省略,但是order和limit很少用,而where几乎都需要用。
                3.Order用于设定删除这些数据时的顺序;
                4.Limit用于设定在前述排序下,删除多少条;
        示例:
                Delete from user_info where age>18 order by age desc limit 3;
                //含义:删除user_info中年龄大于18的用户,并且按年龄倒序删除前3个。
修改数据
        形式:
                Update 表名 set 字段名1=值1,字段名2=值2,.....[where条件][order 排序][limit限定];
        说明:
                1.更新数据也是以”行”为单位;
                2.设置某个字段的值的时候,如果是字符或时间类型的直接值,也要加单引号
                3.Where,order,limit3个子句,虽然语法上都是可以省略的,但是order和limit很少用,而where几乎都需要用。
                4.Order用于设定修改这些数据时的顺序
                5.Limit用于设定在前述排序下,修改多少条
        举例:
                Update user_info set age=18,edu=’大学’,user_pass=md5(‘456’) where age<18 order by age limit 100;
基本查询
        基本形式:
                Select [all|distinct] 字段或表达式列表 [as  别名]
                [from 子句]
                [where 子句]
                [group by 子句]
                [having 子句]
                [order by 子句]
                [limit 子句];
        说明:
                1.上述select语句中,只有select部分是比不可少的,其他都可以省略
                2.字段:指一个表中的字段名
                3.表达式:是指一个常规的”运算”,甚至是最直接的”数据值”
                4.All:表示取得的结果行都”输出”,默认可以不写,就表示all
                5.Distinct:表示取得的结果行,”消除重复行”再输出
From子句
        表示从哪个表(或视图)中去取出数据,可以认为就是数据的最原始来源,可以成为”数据源”。
形式有:
        From 表名;
        From 表名1,表名2,......;
        From 表名1 连接方式 join 表名2  连接方式 join 表名3 .....;
Where子句
        用于对从from子句所设定的数据源进行条件筛选的语句,往往都是使用某个字段名来做某种判断。判断如果成立,结果就是true,就表示该行”会取出”,否则就不会取出。
        Where子句其实是对一个表中的”所有行”的数据进行”遍历”,依次进行判断。
        Where子句执行的结果,都只是”true”或”flase”
        Where子句中,可以用到很多的运算符:
        算术运算符: +,-,*,/,%
        比较运算符:>,>=,<,<=,=(等于),<>(不等于),!=(不等于)
        逻辑运算符:and(与) or(或) not(非)
        Is运算符:        is运算符只用于对布尔值和空值进行判断,有如下4中情况:
                Is true  / is false / is null / is not null
Between运算符:
        使用形式:
                XX字段   between 值1  and 值2;
        含义:
                表示该字段的值,在给定的2个值之间(含),其相当于:
                XX字段>=值1  and xx字段 <=值2;
In 运算符:
        形式:
                XX字段  in (值1,值2,....);
        含义:
                表示该字段的值,等于其中列出来的任意一个值,就算满足条件了。
Like运算符
        语法形式:
                XX字段 like ‘要查找的字符串’;
        含义说明:
                1.该运算符只能对字符串类型的字段进行运算;
                2.其含义表示如果某个字段的值,符合(匹配)给定的要查找的字符串,就算满足条件;
                3.该运算符是”模糊查找”的基本形式,并依赖于如下2个特殊的符合:
                        %(百分号):它代表”任意个数的任意字符”
                        _(下划线) :它代表”一个任意字符”
                4.如果在需求中,就想要”%”或”_”这个符号,就将其转义
Group by 分组子句
语法形式:
        Group by 字段1 [asc|desc],字段2 [asc|desc]....
含义:
        表示将一个表中的”所有数据行”,按给定的某个字段进行分门别类区分,每一个不同的值就算一个组。
特别注意:
        1.分组之后,结果数据中,”只有组”--即信息都应该是组的信息
        2.后续的数据处理,也是以组为单位:比如求平均值,求最大值等
        3.对于分组的查询,在select子句中,出现”字段”,只能是”组信息”,而不应是单个数据信息
Having子句:
        跟where子句的用法和作用一样,唯一区别是:having子句跟在group by之后,用于对”分组之后的结果数据”进行筛选;
Order by 子句:
形式:
        Order by 字段1 [asc|desc],字段2 [asc|desc]....
说明与含义:
        1.用于将”前面”取得的数据,按给定的字段值的给定顺序(正序asc或倒序desc)排序
        2.可以进行多重排序,每一重排序,都是在前一重排序的值相等的时候才有意义。
        3.可以省略排序顺序设定,此时默认值是asc
Limit子句
形式1:
        Limit 数量n;
        含义:取出”前述所获得结果”数据的前n行;
形式2:
        Limit 起始行号m,数量n;
        含义:取出“前述所获得结果”数据的第m行开始的n行;m是从0开始算起的——注意:m跟数据表中的字段没有关系;当m等于0时,起始就是前一个形式的含义;
对select语句的整体理解、
图片1.png
说明:
        1,除了select子句,各个其他子句都可以省略(语法上可行);
        2,每一个子句,都是按该先后顺序出现,不可先后打乱顺序;
        3,每个子句都可以看做是一种“计算”,他们在mysql的内部,其实是按该顺序先后进行的计算。
        4,where需要有from才能出现;
        5,having需要有group by才能出现;
锦绣齐鲁.jpg

分享至 : QQ空间
收藏

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马
关闭

站长推荐 上一条 /5 下一条