create table users ( //实验所使用的表结构
id SMALLINT UNSIGNED PRIMARY key auto_increment,
username varchar(20) not null,
passwd varchar(20) not null,
agee TINYINT UNSIGNED not null DEFAULT 10,
sex boolean
); spa
1,insert使用 rem
insert users VALUES(null,'tom','123',25,1);//id为自动标号,使用null/default 均可以让其自动增加(此写法能够省略列名,又能够让id自动增加) it
insert users VALUES(default,'tom','123',default,1),(default,'tom','123',25,1);//同时插入两条记录 table
insert users set username='Bean',passwd='456';//插入一条记录username的值是Bean,passwd是456 test
2,update使用(更新记录) date
UPDATE users set agee = agee + 5;//更新表中agee字段的全部记录。全部记录都加5 select
UPDATE users set agee = agee - id,sex = 0;//参照上面的注释 搜索
UPDATE users set agee = agee + 10 where id % 2 = 0;//id为偶数的agee字段都加10 im
3,delete使用(删除记录) 数据
delete from 表 where 条件;
4,select 操做(查找语句)
SELECT VERSION();//查看版本号
SELECT NOW();//查看当前系统时间
select 3+5;//计算表达式
select id,username from users;//从表中查询两列数据
SELECT id as userid,username as uname from users;//添加别名(查询出的表的字段以别名出现)
5,group by 查询结果分组(不一样的值为一组) (ASC 升序,DESC 降序)
SELECT sex from users GROUP BY sex;//获得sex字段值不一样的表,相同的值只会出现一次
6,having 分组条件 ()
SELECT sex,agee from users GROUP BY sex HAVING agee > 10;//获得sex字段值不一样的表,相同的值只会出现一次,而且agee的值必须大于10
//COUNT(*)返回的是表中全部的记录数,而COUNT(expr)返回的是expr字段不为空的记录数。
SELECT sex from users GROUP BY sex HAVING count(id)>=2;//词条语句的意思是:对sex进行分组,每一个值为一组,每组的个数大于或等于2个的,则将对应的sex值显示出来。参考下面的例子
7,order by 的使用
SELECT * from users ORDER BY id DESC; //搜索表中的数据,以降序排列(显示又大到小)
SELECT * from users ORDER BY agee,id desc ;//优先以agee的值进行升序排列,若是有agee相同的值,则以对应的id进行降序排列
8,limit语句限制查询数量
SELECT * from users limit 2 ; //返回查询出的结果中前2条数据
SELECT * from users limit 3,2 ;//返回第四条开始的前2条(id为4和5的数据)数据(由于数据的是以0开始,因此3表示id为4的那条数据,2表示要查询的条数)
create table test( //建立一张新表
id TINYINT UNSIGNED PRIMARY key auto_increment,
username varchar(20)
);
insert test(username) SELECT username from users WHERE agee >= 30;//从表users中查询出agee大于等于30的数据,将username的值插入test(因为查询出的字段只有一个username ,可是表test有id和username,因此不能使用insert test SELECT username from users WHERE agee >= 30;,而是必须指定插入的字段)
insert test1(username,agee) SELECT username ,agee from users WHERE agee >= 30; //插入两个字段