1. 插入记录INSERT

方法一:

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

比如:

CREATE TABLE users(
id SMALLINT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
username VARCHAR(20) NOT NULL,
password VARCHAR(32) NOT NULL,
age TINYINT UNSIGNED NOT NULL DEFAULT 10,
sex BOOLEAN
);
# 插入记录,不指定列的数目时。必须全部的字段都要赋值
INSERT users VALUES(NULL, 'Tom', '123', 25, 1);
INSERT users VALUES(NULL, 'Tom2', '123', 28, 1);
INSERT users VALUES(DEFAULT, 'Tom3', '111', 28, 1);
# 使用数学表达式也能够加入值
INSERT users VALUES(DEFAULT, 'Tom4', '111', 3*7+2/3, 1);
# 给年龄DEFAULT。会採用默认值10
INSERT users VALUES(DEFAULT, 'Tom5', '111', DEFAULT, 1);
# 一次加入多条记录
INSERT users VALUES(DEFAULT, 'Tom6', '111', DEFAULT, 1), (NULL, 'Rose', md5('213'), DEFAULT, 0);

方法二:

INSERT [INTO] tbl_name SET col_name={exp | DEFAULT},...;

这种方法与第一种方式的差别在于,此方法能够使用子查询(SubQuery),此方法一次性仅仅能插入一条记录。

比如:

INSERT users SET username='Ben', password='456';

方法三:

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

使用此方法能够将查询结果插入到指定数据表。

2. 单表更新记录UPDATE

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

比如:

# 全部记录的年龄都加5
UPDATE users SET age=age+5;
# 更新多列
UPDATE users SET age=age-id, sex=0;
# 更新id为偶数的记录
UPDATE users SET age=age+10 WHERE id%2=0;

3. 单表删除记录DELETE

DELETE FROM tbl_name [WHERE where_condition];

比如:

DELETE FROM users WHERE id=6;

即使在删除后,id号不连续,那么新增的数据还是会在最大的id号加一。

4. 查询表达时解析

SELECT select_expr [, select_expr ...] [FROM table_references [WHERE whrere_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}]];

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

星号(*)表示全部列。

tbl_name.*能够表示命名表的全部列。查询表达式能够使用[AS] alias_name为其赋予别名。别名可用于GROUP BY,ORDER BY或HAVING字句。

比如:

# 查看MySQL版本号
SELECT VERSION();
# 查看当前时间
SELECT NOW();
# 仅仅查看前两列
SELECT id, username FROM users;
SELECT username, id FROM users;
SELECT users.id, users.username FROM users;
SELECT id AS userid, username AS uname FROM users;
# ASkeyword能够省略,可是尽量写上,避免不必要的错误
SELECT id username FROM users;

字段的顺序和结果集都将影响查询出的结果集。

(1). WHERE

条件表达式

对记录进行过滤,假设没有指定WHERE字句,则显示全部记录。在WHERE表达式中,能够使用MySQL支持的函数或运算符。

(2). GROUP BY

查询结果分组

比如:

SELECT sex FROM users GROUP BY sex;
# 1表示依照SELECT语句中第一个出现的字段排序
SELECT sex FROM users GROUP BY 1;

(3). HAVING

分组条件

比如:

# 当HAVING语句有age的条件时,前面的SELECT中必须出现这个age字段
SELECT sex, age FROM users GROUP BY 1 HAVING age>35;
# 或者是一个聚合函数
SELECT sex, age FROM users GROUP BY 1 HAVING count(id)>=2;

(4). ORDER BY

对查询结果进行排序

比如:

# 依照id降序排列
SELECT * FROM users ORDER BY id DESC;
# 同一时候以两个字段排序age默认升序,id降序
SELECT * FROM users ORDER BY age, id DESC;

(5). LIMIT

限制查询结果返回的数量

比如:

# 从第1条開始返回2条记录
SELECT * FROM users LIMIT 2;
# 从第1条開始,偏移2条后,查询2条记录
SELECT * FROM users LIMIT 2 OFFSET 2;
# 从第4条開始(从0開始计数),返回2条记录
SELECT * FROM users LIMIT 3, 2;
SELECT * FROM users ORDER BY id DESC LIMIT 2, 2;
CREATE TABLE test(id TINYINT UNSIGNED PRIMARY KEY AUTO_INCREMENT, username VARCHAR(20));
# 将users年龄大于30的数据插入test表
INSERT test(username) SELECT username FROM users WHERE age>=30;

【MySQL】(4)操作数据表中的记录的更多相关文章

  1. MySQL(四) —— 操作数据表中的记录

    插入记录 INSERT [INTO] tbl_name [(col_name,...)] {VALUES | VALUE} ({expr | DEFAULT},...),(...),... //法二: ...

  2. MYSQL操作数据表中的记录

    36:操作数据表中的记录插入记录   INSERT INTO 表名  VALUES();   或者INSERT 表名  VALUES();  UPDATE更新记录(单表更新)  DELETE删除记录( ...

  3. 操作数据表中的记录——SELECT (where表达式、GROUP BY、HAVING、LIMIT)

    原文链接:http://www.ifyao.com/2015/01/26/%E6%93%8D%E4%BD%9C%E6%95%B0%E6%8D%AE%E8%A1%A8%E4%B8%AD%E7%9A%84 ...

  4. MySQL查询数据表中数据记录(包括多表查询)

    MySQL查询数据表中数据记录(包括多表查询) 在MySQL中创建数据库的目的是为了使用其中的数据. 使用select查询语句可以从数据库中把数据查询出来. select语句的语法格式如下: sele ...

  5. MySQL数据库基础(三)(操作数据表中的记录)

    1.插入记录INSERT 命令:,expr:表达式 注意:如果给主键(自动编号的字段)赋值的话,可以赋值'NULL'或'DEFAULT',主键的值仍会遵守默认的规则:如果省略列名的话,所有的字段必须一 ...

  6. MySQL基础(三)(操作数据表中的记录)

    1.插入记录INSERT 命令:,expr:表达式 注意:如果给主键(自动编号的字段)赋值的话,可以赋值‘NULL’或‘DEFAULT’,主键的值仍会遵守默认的规则:如果省略列名的话,所有的字段必须一 ...

  7. MySQL统计各个表中的记录数

    通过下面的SQL语句可以统计出数据库的各个表中的记录数: select table_schema, table_name,table_rows from information_schema.tabl ...

  8. mysql操作数据表中的记录1

    一.插入记录INSERT ​ mysql> create TABLE users(    -> id SMALLINT UNSIGNED PRIMARY KEY AUTO_INCREMEN ...

  9. MySQL--4操作数据表中的记录小结

    最常用,最复杂的语句: 每一项的: 表的参照  From 条件    WHERE 进行记录的分组 GROUP BY 分组的时候对分组的条件进行设定  HAVING 对结果进行排序  ORDER BY ...

随机推荐

  1. JavaScript面向对象(收集整理)

    (1)封装 首先理解构造函数:所谓"构造函数",其实就是一个普通函数,但是内部使用了this变量.对构造函数使用new运算符,就能生成实例,并且this变量会绑定在实例对象上. f ...

  2. freeMarker遍历map的正确方式

    假设selectDateModel 是我们后台返回的map<String, String>; <#list selectDateModel?keys as key> <o ...

  3. 如何编写通用的 Helper Class

    Github: https://github.com/nzbin/snack-helper Docs: https://nzbin.github.io/snack-helper 前言 什么是 help ...

  4. TF30042: The database is full. Contact your Team Foundation Server administrator.

    TF30042: The database is full. Contact your Team Foundation Server administrator. 在一个阳光明媚的下午,迁入代码的时候 ...

  5. 三元运算符2>1?true:false;

    1.说明: xxx?xxx:xxx; 第一个'xxx'是写条件语句,条件自己根据需求定 第二个'xxx'是当条件为真时会得到的值 第三个'xxx'是当条件为假时会得到的值 2.例子: 代码: bool ...

  6. 利用C#来做ASP.NET的登陆页面

    一.新建一个数据库 新建一个access数据user.mdb. 新建一个user表,添加:UserId(文本类型)及Password(文本类型)两个字段.二.新建一个default.aspx文件. 在 ...

  7. 天龙八步&quot;细说浏览器输入URL后发生了什么

    本文摘要: 1.DNS域名解析: 2.建立TCP连接: 3.发送HTTP请求: 4.服务器处理请求: 5.返回响应结果: 6.关闭TCP连接: 7.浏览器解析HTML: 8.浏览器布局渲染: 总结 输 ...

  8. 判断pdf、word文档、图片等文件类型(格式)、大小的简便方法

    判断pdf.word文档.图片等文件类型(格式).大小的简便方法 很久没发文了,今天有时间就写一下吧. 关于上传文件,通常我们都需要对其进行判断,限制上传的类型,如果是上传图片,我们甚至会把图片转化成 ...

  9. 用JAVA中BufferedImage画出漂亮的验证码点击变化

    如果我们想用JAVA中BufferedImage画出漂亮的验证码点击变化怎么实现呢,类似这样: 点击变化,以下是实现过程,直接上代码: 首先前台:<i><img style=&quo ...

  10. Android开发之漫漫长途 Ⅵ——图解Android事件分发机制(深入底层源码)

    该文章是一个系列文章,是本人在Android开发的漫漫长途上的一点感想和记录,我会尽量按照先易后难的顺序进行编写该系列.该系列引用了<Android开发艺术探索>以及<深入理解And ...