增加
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