sql命令(四)-操做数据表中的记录

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;  //插入两个字段

相关文章
相关标签/搜索