MySql数据库的基本操作-表数据的增删改查

来源:互联网 发布:lt18i 预装软件 卸载 编辑:程序博客网 时间:2024/05/01 22:15

先创建一张表:create table users(

     -> id smallint unsigned primary key auto_increment,

     -> username varchar(20) not null,

     -> password varchar(20) not null,

     -> age tinyint unsigned not null default 10,

     -> sex boolean

     -> );

1.插入记录:insert users values(null|default,'Tom','123',25,1);

Values里面依次是每一个字段的值。Id字段因为是自增,所以用nulldefault即可使其为1,2,3...

(可以用select * from users查看表的记录)如果值的数目少,那么这样insert会提示错误。

Values里面除了使用直接赋值,还可以使用表达式:insert users values(default,'Moot','123',3*7-12,2);

Default还可以这样:insert users values(default,'Moot','123',default,2); //如果有默认值则使用默认值

还可以同时插入多条记录:(记录之间用逗号分隔)

insert users values(default,'Float','123',default,2),(null,'Ross',md5('123'),default,0);

其中md5()表示里面字符串的哈希值。

 

************

插入一条记录,可用于子查询:insert users set username='Ben',password='456';

因为agedefaultsex可以为空,所以只写这两个字段。

************

插入查找的结果:insert [into] tbl_name [(col_name,...)] select...

2.单表记录更新:update [Low_priority] [ignore] table_reference set col_name1={expr1|default} [,col_name2={expr2|default}]... [where where_condition]

例如:update users set age = age+5; //将原来的age都设置为原数据+5

update users set age=age-id,sex=0; //将原来的age改为age-id值,sex全部设置为0

update users set age=age+10 where id%2=0; //id为偶数的记录 age全部加10

3.单表删除记录:delete from tbl_name [where where_condition]

delete from users where id=6; //删除id6的记录   如果现在插入一条记录,id是已有最大id+1

4.查找记录:select select_expr [,select_expr...]

[

From table_references

[where where_condition] //限定查询条件

[group by{col_name|position} [asc|desc],...]

[having where_condition]

[order by {col_name|expr|position}[asc|desc],...] //对查询结果排序

[limit {[offset,] row_count|row_count offset offset}] //限制记录返回的数量

]

示例:select id,username from users; //查询idusername这两列的数据,字段顺序可以调换

      select users.id,users.username from users;   //点语法查询某张表的字段

  查询表达式可以使用[as] alias_name为其赋别名,别名可用于group by,order by 或 having子句。

  select id as userId,username as uname from users; //id别名为userIdusername别名为uname

   (使用别名的时候,加上as关键词!)

    ************

[group by{col_name|position} [asc|desc],...]可以对查询结果进行分组,asc是升序,desc是降序

示例:select sex from users group by sex;    //sex为根据进行分组

  select password from users group by 1;  //以第一个查询的记录为依据进行分组

************

[having where_condition] //分组条件

示例:select sex,age from users group by 1 having age>24;     //查询符合条件的age>24的第一条记录

  select sex from users group by 1 having count(id)>=2;  //查询符合条件的 id>=2的第一条记录

  **************

[order by {col_name|expr|position}[asc|desc],...] //对查询结果排序

示例:select * from users order by id desc;  //查询所有记录,并按id降序排列

  select * from users order by age,id desc;   //查询所有记录,先按age升序排列,再按id降序排列

  *************

  [limit {[offset,] row_count|row_count offset offset}] //限制记录返回的数量

示例:select * from users limit 2; //返回从第一条记录开始的 共2条记录

  select * from users limit 2,3;  //返回从第(2+1)条记录开始的 共3条记录  select查询记录是从0开始计数的

  select * from users order by id desc limit 2,3;   //先按id降序排列,再从第3条开始,共3条记录

  

5.插入查询后的记录:

新建一个表test: create table test(

     -> id tinyint unsigned primary key auto_increment,

       -> dd varchar(20)

     -> );

 insert test(ddselect username from users where age>=20;

test表的username字段中插入:查询usernameusers表 条件age>=20  的记录

 

 

 

 

 

 

 

 

 

 

 

一直在http://www.imooc.com/ 学习,感觉不错。

0 0
原创粉丝点击