PHP基础 MYSQL CURD 第26天

2012-11-13 17:59:52 0  category: 第二阶段php

           增加                

           Insert into 表名(字段1,字段2,字段n) values(1,2,3);        

       

           注意:        

       

           1, 表当中如果有not null字段,非空字段,必填。        

       

           2, 如果有可空字段,可以不填        

       

           3, 如果有默认值的字段,并且该字段,没有写的时候,会插入默认值。        

       

           变形1        

       

           Insert into values();        

       

           注意:        

       

           1, 如果不写字段,所后value当中,所有值必须全部写上。即使,它是主键自增也必须要加上。插入null        

       

           2, 字段的顺序和值关系,是严格的一一对应        

       

           3, 有可空字段,有主键自增字段的,你也必须要全部写上。如果你不想写的时候,写上null        

       

           变形2        

       

           Insert into (字段) values( ) ,( ),( )        

       

           例: insert into three(id,username,password) values('7','zhanghairui','zhr'), (8,'hzb','hzb'),(9,'ayc','cya'),(10,'wsj','jsw');        

       

           注意项:        

       

           1, 自增ID会返回当中的第一个插入的值。        

       

           扩展:        

       

           create table two select * from three;        

       

           insert into test select * from two;        

       

           更新:        

       

           Update 表名 set 字段=,字段=,字段=值  [where]        

       

           Where 后面指定 字段=值   ID=5        

       

           例子:update test set sex=0,password='heshui' where id>1 and id<3;        

       

           update test,two set two.sex=test.sex where two.id=test.id;        

       


       

           删除:        

       

           Delete from where条件        

       

           

       

           查询:        

       

           Select 字段[*] from        

       

           少用*或不用*        

       

           Distinct 去除重复记录        

       

           Order  by    排序        

       

           Asc  升序        

       

           Desc 降序        

       

                               

       

           Limit  限制显示条数。        

       

           Limit 在这当中还有另外一种用法:        

       

           Limit 数量   limit   limit 0,4        

       

                   

       

           Limit 偏移量,数量   limit 2,4        

       

           总共8条记录,每页显示三条。共计3        

       

           得到总条数:Select couut(id) from news;        

       

           Ceil(8/3)  就得到3页了        

       

           1页           limit  0, 3    (页码-1*3)        

       

           2 limit  3,3    (页码-1)*3        

       

           3 limit  6,3    (页码-1)*3        

       

           
           
                           

       

           
           
       

       

           常见函数  count  sum   avg平均值   max  min          

       

           Having   二次过滤        

       

           select id as '编号',title as '标题',istop as '置顶',status as '状态' from  news;        

       

           起个别名。        

       

           先把多表联询查询,先将其搞定,简单方式来说。        

       

           mysql> select t.id,t.username,t.password,t.sex,t.email,n.id,n.title,n.status,n.i        

       

           stop from three as t,news as n where t.username='liwenkai' and n.title='不开心';        

       

           mysql> select t.id as tid,t.username as tname,t.password as tpwd,t.sex as tse,t.        

       

           email as tmail,n.id as nid,n.title as nt,n.status as ns,n.istop as ni from three        

       

            as t,news as n where t.username='liwenkai' and n.title='不开心'        

       

           ;        

       

           注意:        

       

           1, 可以对表起别名  news as n ,title as t        

       

           2, 如果表起别名,如果需要写具体的字段的时候,请注意,字段也要是表别名.字段        

       

           3, 如果表当中,有两个相同的字段,区别不开。同样,可以对字段再取别名。        

       

           4, 对于字段起了另名,在后面的where条件当中,可以用原名来做条件筛选,是否可以直接用别名呢? ——————不可以        

       

           
           
                   
           
       

       

           Select语句当中的in 语法:        

       

           
           
       

       

           select * from news where id in(1,3,5);        

       

           
           
       

       

           请注意:字段  in(),可以写上多个值,多个值用逗号分开。        

       

           
           
       

       

           注意:在in(可以直接放sql语句来完成子查询)        

       

           
           
       

       

           例子:select * from news where id in(select id from news where istop>0);        

       

           
           
       

       

           删除最后一条记录:        

       

           
           
       

       

           delete from news order by id desc limit 1;        

       

           
           
       

       

           扩展:        

       

           
           
       

       

           将几个表,放在一起查。        

       

           
           
       

       

           select * from three union select * from test;        

       

                             

       

           注意:        

       

           
           
       

       

           两个表的字段要一样。        

       

           
           
       

       

           Union 会去除掉重复  union all不会去除重复。        

       

           
           
       

       

           ? (想知道的)        

       

           
           
       

       

       

       

           注意:update 更新delete  删除的时候, 要加where
               

       

           1,前台的html页面编码   就为utf-8        

       

           2,  meta  也要和页面字符集        

       

           3, 数据库建库的字集要统一        

       

           4,表的字符集        

       

           5, 列的字符集【表设了,列就默认为表的字符集】        

       

           6, 连接        

       

           7, 校验        

       

           8, 结果的字符集统一       mysql_set_charset(utf8);        

       

           9, 你的PHP代码的字符集        

       

           
   
                   

       

           Set names utf8;        

       

           字符集,用统一了!!!!!        

   

           写代码的时候,请将utf8你的编辑器当中去掉bom