首页 > 代码库 > 前端学数据库之记录操作

前端学数据库之记录操作

×
目录
[1]插入记录 [2]更新记录 [3]删除记录[4]查询表达式[5]结果处理

前面的话

  本文将详细介绍mysql关于记录的增删改查

 

插入记录

INSERT [INTO] tbl_name [(col_name,...)] {VALUES|VALUE} ({expr|DEFAULT},...),(...),...

  首先,创建一个简单的数据表

技术分享

  如果省略col_name,则意味着所有的字段按照顺序依次赋值。因为id字段是自动编号的,该字段可以赋值为NULL或DEFAULT

技术分享
技术分享

  通过逗号分隔,可以一次性写入多条记录;而且,值可以使用表达式表示

技术分享

  数据库并没有布尔类型BOOLEAN,如果声明类型为BOOLEAN,则会被转换为TINYINT类型,true转换为1,false转换为0

技术分享

 

方法二
INSERT [INTO] tb1_name SET col_name={expr|DEFAULT},...

  与第一种方法的区别在于,此方法可以使用子查询(SubQuery),以及一次性只能插入一条记录

技术分享

 

方法三

INSERT [INTO] tb1_name [(col_name,...)] SELECT ...

  此方法可以将查询结果插入到指定数据表

 

更新记录

UPDATE [LOW_PRIORITY][IGNORE] table_reference SET col_name1={expr1|DEFAULT}[,col_name2={expr2|DEFAULT}]...[WHERE where_condition]

  可以一次更新多条记录;当省略WHERE条件时,所有记录的值将会更新

  下面将所有人的年龄都增加5岁

技术分享

  下面将所有人的年龄更新为原有年龄减去其id值,将所有人的性别改成0

技术分享

  下面将所有id值为偶数的人的年龄加10岁

技术分享
 

删除记录

DELETE FROM tbl_name [WHERE where_condition]
技术分享

  [注意]删除某条记录后,再插入一条新的记录,自动编号不会补到删除记录的编号上,而是基于原有记录最大编号继续增加

技术分享
 

查询表达式

SELECT select_expr [,select_expr...][FROM tbl_references[WHERE where_condition][GROUP BY {col_name | position} [ASC | DESC],...][HAVING where_condition][ORDER BY {col_name | expo | position}  [ASC | DESC],...][LIMIT {[offset,] row_count | row_count OFFSET offset}]]

  查询表达式的每个表达式表示想要查找的一列,必须有至少一个。多个列之间以英文逗号分开

技术分享

  查询表达式的顺序可以和原表中字段的顺序不一致

技术分享

  在使用多表连接时,可能会出现不同的表中存在名称相同的字段,如果直接写字段,分不清到底是哪张数据表的字段。在字段名前加上数据表可以分辨出隶属于哪张数据表

技术分享

  星号*号表示所有的列。tbl_name.*可以表示命名表的所有列

技术分享

  查询表达式可以使用[AS] alias_name为其赋予别名,别名可用于GROUP BY, ORDER BY, HAVING字句

技术分享

  [注意]在使用查询表达式设置别名查询,AS可以使用,也可以不使用。但如果不使用,可能会出现二义性情况

SELECT id username FROM users;

  mysql会把上面的语句解析为username作为id的别名

 

结果处理

[GROUP BY {col_name | position} [ASC | DESC],...]

  查询结果分组(GROUP BY)的参数中,ASC是升序,是默认的;DESC是降序

技术分享

  col_name代表字段名,position以数字代表位置,如1代表SELECT语句中第一次出现的字段

技术分享

分组条件

[HAVING where_condition]

  在设置分组(HAVING)时,一定要保证分组条件(where_condition)要么是聚合函数(max,min,avg,count,sum),要么其中的字段必须是SELECT中的一个查询字段,否则会报错

技术分享

分组排序

[ORDER BY {col_name | expo | position}  [ASC | DESC],...]

  可以使用分组排序(order by)对查询结果进行排序

技术分享

  同时可以用几个条件来排序,按输入顺序来进行优先级的选择

技术分享

限制结果

[LIMIT {[offset,] row_count | row_count OFFSET offset}]

  限制查询结果(LIMIT)默认情况下,返回所有查找到的结果

技术分享

  如果LIMIT后面只有一个数字,表示从第一条开始返回,并返回相应数字个数的记录

技术分享

  SELECT语句默认从0开始编号,如果想从第三条开始返回,则需要offset参数和row_count参数一起使用

技术分享

【补充】

INSERT [INTO] tbl_name [(col_name,...] SELECT ...

  与一开始介绍的插入记录的方法不同,现在这种方法可以将查找的结果存储到指定的数据表

技术分享
<script type="text/javascript">// 0){ return; } if(select[i].getBoundingClientRect().top <= 0 && select[i+1]){ if(select[i+1].getBoundingClientRect().top > 0){ change(oCon.children[i+2]) } }else{ change(oCon.children[select.length+1]) } }}document.body.onmousewheel = wheel;document.body.addEventListener(‘DOMMouseScroll‘,wheel,false);var oCon = document.getElementById("content");var close = oCon.getElementsByTagName(‘span‘)[0];close.onclick = function(){ if(this.innerHTML == ‘显示目录‘){ this.innerHTML = ‘ב; this.style.background = ‘‘; oCon.style.border = ‘2px solid #ccc‘; oCon.style.width = ‘‘; oCon.style.height = ‘‘; oCon.style.overflow = ‘‘; oCon.style.lineHeight = ‘30px‘; }else{ this.innerHTML = ‘显示目录‘; this.style.background = ‘#3399ff‘; oCon.style.border = ‘none‘; oCon.style.width = ‘60px‘; oCon.style.height = ‘30px‘; oCon.style.overflow = ‘hidden‘; oCon.style.lineHeight = ‘‘; }}for(var i = 2; i < oCon.children.length; i++){ oCon.children[i].onmouseover = function(){ this.style.color = ‘#3399ff‘; } oCon.children[i].onmouseout = function(){ this.style.color = ‘inherit‘; if(this.mark){ this.style.color = ‘#3399ff‘; } } oCon.children[i].onclick = function(){ change(this); } }function change(_this){ for(var i = 2; i < oCon.children.length; i++){ oCon.children[i].mark = false; oCon.children[i].style.color = ‘inherit‘; oCon.children[i].style.textDecoration = ‘none‘; oCon.children[i].style.borderColor = ‘transparent‘; } _this.mark = true; _this.style.color = ‘#3399ff‘; _this.style.textDecoration = ‘underline‘; _this.style.borderColor = ‘#2175bc‘; }// ]]></script><script type="text/javascript" src="http://files.cnblogs.com/files/xiaohuochai/contextMenu.js"></script>

前端学数据库之记录操作