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;

转载于:https://www.cnblogs.com/zsychanpin/p/6805497.html

【MySQL】(4)操作数据表中的记录相关推荐

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

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

  2. MySQL教程(十一)—— 操作数据表中的记录

    1  插入记录 1.1  INSERT 1 INSERT [INTO] tb1_name[(col_name,...)] {VALUES | VALUE} ({expr | DEFAULT},...) ...

  3. sql命令(四)-操作数据表中的记录

    2019独角兽企业重金招聘Python工程师标准>>> create table users (   //实验所使用的表结构 id SMALLINT UNSIGNED PRIMARY ...

  4. mysql whrere 占位_【MySQL】(4)操作数据表中的记录

    1. 插入记录INSERT 方法一: INSERT [INTO] tbl_name [(clo_name,...)] {VALUES | VALUE} ({expr | DEFAULT},...),( ...

  5. 【转】《与MySQL的零距离接触》第四章:操作数据表中的记录 (4-2:MySQL 插入记录INSERT)

    转载出处: 慕课网:<与MySQL的零距离接触>笔记目录https://zhangjia.tv/682.html 4-2:MySQL 插入记录INSERT 插入记录的语法结构: INSER ...

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

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

  7. mysql数据表中取几列_MySQL查询数据表中数据记录(包括多表查询)

    MySQL查询数据表中数据记录(包括多表查询) 转自:http://www.baike369.com/content/?id=5355 在MySQL中创建数据库的目的是为了使用其中的数据. 使用sel ...

  8. mysql中如何删除空记录表_mysql删除表中的记录

    大家都知道,在MySQL中删除一个表中的记录有两种方法,一种是DELETE FROM TABLENAME WHERE... , 还有一种是TRUNCATE TABLE TABLENAME. DELET ...

  9. mysql中怎么查表中的数据_[MySQL] 用select查询数据表中的记录

    用select查询数据表中的记录 select 语句的基本语法如下: select selection_list 选择那些列 from table_list 从那个表去选择行 where primar ...

最新文章

  1. linux-glibc内存管理小结2(内存相关系统调用的实现)
  2. 安装 express4 linux,nodejs+express4.0+mongodb安装方法 for Linux, Mac
  3. 一个NODE_ENV 引发的血案
  4. 服务器SSL/TLS快速检测工具TLLSSLed
  5. c语言0x00如何不截断_binary 和 varbinary 用法全解
  6. lintcode 有效的括号序列
  7. Inno Setup 插件 CallbackCtrl V1.1 (回调函数插件)
  8. HTML5关于上传API的一些使用(上)
  9. leetcode力扣454. 四数相加 II
  10. CoreData之增删改查
  11. phpredis 报错 “Function Redis::setTimeout() is deprecated” 解决方法
  12. 常用编程软件站点、镜像站、科技类 PDF
  13. S102公路第I标段施工图设计--河北工程大学土木工程学院
  14. Aspose.word保存PDF时进行授权访问设置
  15. 00-高通msm8953 Android驱动教程
  16. android手机账号什么意思,苹果手机怎么改id账号 id账号是什么
  17. 电动自行车16 CFR 1512标准要求及流程
  18. NOIP初赛知识点总结
  19. 如何在阿里云中注册域名
  20. 科大奥锐密立根油滴实验数据_密立根油滴实验数据处理

热门文章

  1. nokia x7 android 9.0,诺基亚X7升级Android 9.0系统
  2. python教程从入门到实践第八章_python:从入门到实践--第八章:函数
  3. win7局域网共享设置_Win7系统打印机共享不了的设置方法思路!
  4. libcrypto yum 安装_YUM 安装 VSFTP出错
  5. rabbitmq如何保证消息不被重复消费_RabbitMQ保证消息可靠投递与消费的正确使用姿势...
  6. 小老板,我300M的网,网速很慢怎么办?
  7. [深度学习]CNN--卷积神经网络中用1*1 卷积有什么作用
  8. 【ubuntu】GPU进程kill后,显存未释放(杀死僵尸进程)
  9. 【模型训练-loss】模型训练过程中train, test loss的关系及原因
  10. 如何设置Jupiter Notebook服务器并从任何地方访问它(Windows 10)