好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

mysql之select,insert,delete,update

school; -- 添加班级信息 insert into tb_class(`name`) values ( ‘ 信管01 ‘ ); insert into tb_class(`name`) values ( ‘ 信管02 ‘ ); insert into tb_class(`name`) values ( ‘ 信管03 ‘ ); insert into tb_class(`name`) values ( ‘ 信管04 ‘ );

2、添加学生信息

 use   school;
  --   添加学生信息 
 insert   into  tb_student(`Name`,`phone`,`age`,`gender`,`classid`)  values ( ‘  张三  ‘ , ‘  13810707322  ‘ , 20 , 1 , 1  );
  insert   into  tb_student(`Name`,`phone`,`age`,`gender`,`classid`)  values ( ‘  李四  ‘ , ‘  13810707324  ‘ , 19 , 1 , 2  );
  --   批量添加 
 insert   into   tb_student(`Name`,`phone`,`age`,`gender`,`classid`) 
  values  
(  ‘  王二  ‘ , ‘  13810707325  ‘ , 18 , 1 , 2  ),
(  ‘  麻子  ‘ , ‘  13810707323  ‘ , 23 , 1 , 1  ),
(  ‘  张三丰  ‘ , ‘  13810707321  ‘ , 22 , 1 , 3  ),
(  ‘  张无忌  ‘ , ‘  13810707326  ‘ , 21 , 1 , 1  ),
(  ‘  孙悟饭  ‘ , ‘  13810707328  ‘ , 24 , 1 , 1  ),
(  ‘  孙悟空  ‘ , ‘  13810707327  ‘ , 23 , 1 , 4  ),
(  ‘  鸣人  ‘ , ‘  13810707329  ‘ , 25 , 1 , 1  ),
(  ‘  路飞  ‘ , ‘  13810707320  ‘ , 26 , 1 , 2 );

3、添加学生成绩信息

 --   添加学生成绩 
 insert   into   tb_score(`course`,`score`,`stuid`) 
  values  
(  ‘  高数  ‘ , 89 , 1  ),
(  ‘  计算机  ‘ , 89 , 1  ),
(  ‘  java  ‘ , 89 , 1  ),
(  ‘  .net  ‘ , 89 , 1 );

好了,有数据了,就可以学习查询,删除,修改等操作了。
4、查询所有学生信息

 1   use   school;
  2   --   查询所有的学生信息 
 3   select   *   from   tb_student;
  4   --   等价于,不过在数据量非常大的时候,推荐使用下面的这种查询方式。 
 5   select  id,`Name`,`phone`,Age,gender,createdate,classid  from  tb_student;

结果集

你会发现,在上篇文章中,已经为createdate添加了默认约束,但这里并没有显示结果。原来的字段名称为date,后来改为了createdate。默认约束并没有保持。

 alter   table  tb_student change createdate createdate  datetime   default  now();

测试,添加一条数据

 insert   into  tb_student(`Name`,`phone`,`age`,`gender`,`classid`)  values ( ‘  明哥  ‘ , ‘  13810707322  ‘ , 20 , 1 , 1 );

结果

5、查询‘信管03’班的所有学生信息。

 --   查询信管03班的学生信息 
 select  s.id  ‘  编号  ‘ ,s.`Name`  ‘  名字  ‘ ,s.`phone`  ‘  电话  ‘ ,s.Age  ‘  年龄  ‘ ,s.gender  ‘  性别  ‘ ,s.createdate  as   ‘  入学时间  ‘ ,c.`name`  as   ‘  班级名称  ‘   from  tb_student s  inner   join  tb_class c  on  s.classid = c.id;

从上面的sql语句可以看出,可以为字段名起别名,通过as 或者直接写别名,这点与sqlserver中类似。inner join的用法也类似。
结果

上面的结果,看起来比较乱,可以按照id进行升序排序。

 use   school;
  --   查询信管03班的学生信息 
 select  s.id  ‘  编号  ‘ ,s.`Name`  ‘  名字  ‘ ,s.`phone`  ‘  电话  ‘ ,s.Age  ‘  年龄  ‘ ,s.gender  ‘  性别  ‘ ,s.createdate  as   ‘  入学时间  ‘ ,c.`name`  as   ‘  班级名称  ‘   from  tb_student s  inner   join  tb_class c  on  s.classid = c.id  order   by  s.id;

6、取前3为学生的信息。

 select   
s.id   ‘  编号  ‘ ,s.`Name`  ‘  名字  ‘  ,
s.`phone`   ‘  电话  ‘ ,s.Age  ‘  年龄  ‘ ,s.gender  ‘  性别  ‘  ,
s.createdate   as   ‘  入学时间  ‘ ,c.`name`  as   ‘  班级名称  ‘ 
  from   tb_student s 
   inner   join   tb_class c 
   on  s.classid =  c.id 
   order   by   s.id 
 limit   3 ;

注意:取前几条数据,这里与sql server中的用法不同,在sql server中取前几条数据使用的是top,而mysql使用limit。

7、删除id=1的学生信息。

 use   school;
  --   删除id=1的学生信息。 
 delete   from  tb_student  where  id =  1 ;

这样直接删除,mysql会报一个错误。
Error Code: 1451. Cannot delete or update a parent row: a foreign key constraint fails (`school`.`tb_score`, CONSTRAINT `FK_Stuid` FOREIGN KEY (`stuId`) REFERENCES `tb_student` (`id`))

可以先加上这句话,再进行删除。

 use   school;
  --   删除id=1的学生信息。 
 set  FOREIGN_KEY_CHECKS  =   0  ;
  delete   from  tb_student  where  id =  1 ;

注:set FOREIGN_KEY_CHECKS = 0;取消外键检测。否则mysql会认为删除是非安全的。
9、更新所有的入学时间为空的学生信息,并设置入学时间为当前时间。

 use   school;
  --   更新所有的入学时间为空的学生信息,并设置入学时间为当前时间 
 SET  SQL_SAFE_UPDATES  =   0   ; 
  update  tb_student  set  createdate = now()  where   isnull  (createdate);
  select   *   from  tb_student;

在使用mysql执行update的时候,如果不是用主键当where语句,会报如下错误,使用主键用于where语句中正常。

Error Code: 1175. You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column To disable safe mode, toggle the option in Preferences -> SQL Editor and reconnect.

注:在修改的时候,需加上SET SQL_SAFE_UPDATES = 0 ;取消安全更新模式。如果想要提高数据库安全等级,可以在恢复回原有的设置,执行命令:SET SQL_SAFE_UPDATES = 1;

执行上面的语句,执行成功。

总结

好了,mysql中使用的增删改查就总结到这里,如果有sqlserver数据库的基础,学mysql还是很简单的。 下篇文章将介绍order by,group by等的使用。

mysql之select,insert,delete,update

标签:

查看更多关于mysql之select,insert,delete,update的详细内容...

  阅读:37次