操作数据表中的记录

insert:插入记录

INSERT [INTO] table_name [(column_name,...)] {VALUES/VALUE} ({expr/DEFAULT},...),(...),...;
/**

insert+表名+set +(字段=‘’,字段=‘’)

root@127.0.0.1 t2>CREATE TABLE user(-> id SMALLINT UNSIGNED PRIMARY KEY NOT NULL);
Query OK, 0 rows affected (0.21 sec)root@127.0.0.1 t2>INSERT user VALUES(1);
Query OK, 1 row affected (0.26 sec)root@127.0.0.1 t2>SELECT * FROM user;
+----+
| id |
+----+
|  1 |
+----+
1 row in set (0.00 sec)

我们在插入数据的时候我们也可以插入表达式和函数值:

root@127.0.0.1 t2>INSERT user VALUES(3+5);
Query OK, 1 row affected (0.16 sec)root@127.0.0.1 t2>SELECT * FROM user;
+----+
| id |
+----+
|  1 |
|  8 |
+----+
2 rows in set (0.00 sec)

我们在插入数据的时候如果我们遇到了auto_increment我们可以输入null来使它自动的输入增加一个值,我们也可以输入一个default来出现相同的功能,default除了这些功能之外,还有可以还原我们自爱create的时候输入的default值

root@127.0.0.1 t2>CREATE TABLE user3(-> id SMALLINT UNSIGNED PRIMARY KEY AUTO_INCREMENT,-> age TINYINT UNSIGNED DEFAULT 10);
Query OK, 0 rows affected (0.19 sec)root@127.0.0.1 t2>INSERT user3 VALUES(DEFAULT,1);
Query OK, 1 row affected (0.16 sec)root@127.0.0.1 t2>SELECT * FROM user3;
+----+------+
| id | age  |
+----+------+
|  1 |    1 |
+----+------+
1 row in set (0.00 sec)root@127.0.0.1 t2>INSERT user3 VALUES(NULL,DEFAULT);
Query OK, 1 row affected (0.13 sec)root@127.0.0.1 t2>SELECT * FROM user3;
+----+------+
| id | age  |
+----+------+
|  1 |    1 |
|  2 |   10 |
+----+------+
2 rows in set (0.00 sec)

我们在给数据进行赋值的时候我们可以进行多重的赋值来展现我们提高我们的赋值效率。

root@127.0.0.1 t2>INSERT user3 VALUES(NULL,DEFAULT),(NULL,5);
Query OK, 2 rows affected (0.14 sec)
Records: 2  Duplicates: 0  Warnings: 0root@127.0.0.1 t2>SELECT * FROM user3;
+----+------+
| id | age  |
+----+------+
|  1 |    1 |
|  2 |   10 |
|  3 |   10 |
|  4 |    5 |
+----+------+
4 rows in set (0.00 sec)

 

————————————————————————————————————————————————

插入记录INSSERT SET—SELECT:

插入记录insert insert-set insert-select
第一种:
insert tb_name [column_name]values(...)[,(...),(....)];--比较常用,可以一次性插入多条记录,并且可以输入表达式甚至是函数,但是无法进行子查询。
第二种:
insert tb_name set column_name={exprdefault};--可以进行子查询,但是只能插入一条记录。
第三种:
insert table_name [(colname...)] select语句.....--这种方法就是把查询到的一个表结果插入到另一个指定数据表中。

root@127.0.0.1 t2>INSERT user3 SET id = 5,age = 5;
Query OK, 1 row affected (0.40 sec)root@127.0.0.1 t2>SELECT * FROM user3;
+----+------+
| id | age  |
+----+------+
|  1 |    1 |
|  2 |   10 |
|  3 |   10 |
|  4 |    5 |
|  5 |    5 |
+----+------+
5 rows in set (0.00 sec)

——————————————————————————————————————————————————————

单表更新UPDATE:

更新记录:
update+表名+set 字段变化;(更新全部)
update+表名+set 字段变化 where ....;(更新某个条件下的)

root@127.0.0.1 t2>SELECT * FROM user3;
+----+------+
| id | age  |
+----+------+
|  1 |    6 |
|  2 |   15 |
|  3 |   15 |
|  4 |   10 |
|  5 |   10 |
+----+------+
5 rows in set (0.00 sec)
root@127.0.0.1 t2>UPDATE user3 SET age = age + 5 WHERE id % 2 = 0;
Query OK, 2 rows affected (0.41 sec)
Rows matched: 2  Changed: 2  Warnings: 0root@127.0.0.1 t2>SELECT * FROM user3;
+----+------+
| id | age  |
+----+------+
|  1 |    6 |
|  2 |   20 |
|  3 |   15 |
|  4 |   15 |
|  5 |   10 |
+----+------+
5 rows in set (0.00 sec)

——————————————————————————————————————————————————

单表删除记录DELETE

删除记录:
delete from +表名 where +条件

注意事项:当我们删除原来的id之后,再次添加新的id,那么新的id号码一定是现有的最大id号加1,而不管原来的id序列是否连续不连续!

root@127.0.0.1 t2>DELETE FROM user3 WHERE id = 5;
Query OK, 1 row affected (0.15 sec)root@127.0.0.1 t2>SELECT * FROM user3;
+----+------+
| id | age  |
+----+------+
|  1 |    6 |
|  2 |   20 |
|  3 |   15 |
|  4 |   15 |
+----+------+
4 rows in set (0.00 sec)

————————————————————————————————————

查询表达方式解析:

查询表达式解析select
语法:
SELECT select_expr [,select expr2...] 只查找某一个函数或表达式
[
FROM table_references 查询表名
[WHERE where_conditon] 查询条件
[GROUP BY {col_nameposition} [ASCDESC],...] 按某个字段进行分组,相同的只显示第一个
[HAVING conditon] 分组时,给出显示条件
[ORDER BY {col_nameexprposition} [ASCDESC],...] 排序
[LIMIT {[offset,]row_countrow_count OFFSET offset}] 限制返回数量
}
ps:select * from user group by username having age>18 order by id asc limit 3; 限制返回数量的limit一定要放在最后
查询表达式:每个表达式表示想要的一列,必须至少有一个多个列之间以英文逗号相隔.星号(*)表示所有的列。tbl_name.*可以表示命名表多的所有的列。查询表达式可以使用【AS】alias_name为其赋予别名。别名可用于GROUP BY, ORDRE BY或者HAVING子句。

我们可以进行单列的查找

root@127.0.0.1 t2>SELECT id FROM user3;
+----+
| id |
+----+
|  1 |
|  2 |
|  3 |
|  4 |
+----+
4 rows in set (0.00 sec)

我们在查找的时候我们的表达式的顺序会影响我们查找时显示的表达式的顺序。

root@127.0.0.1 t2>SELECT age,id FROM user3;
+------+----+
| age  | id |
+------+----+
|    6 |  1 |
|   20 |  2 |
|   15 |  3 |
|   15 |  4 |
+------+----+
4 rows in set (0.00 sec)

在我们将来使用多表链接的时候哦我们需要使用更严谨的写法:

root@127.0.0.1 t2>SELECT user3.age,user3.id FROM user3;
+------+----+
| age  | id |
+------+----+
|    6 |  1 |
|   20 |  2 |
|   15 |  3 |
|   15 |  4 |
+------+----+
4 rows in set (0.00 sec)

我们在使用数据表的时候我们可以给数据表的数据行进行别名的命名:

root@127.0.0.1 t2>SELECT id AS ID;
ERROR 1054 (42S22): Unknown column 'id' in 'field list'
root@127.0.0.1 t2>SELECT id AS ID from user3;
+----+
| ID |
+----+
|  1 |
|  2 |
|  3 |
|  4 |
+----+
4 rows in set (0.00 sec)

我们在使用命名的时候我们可以不适用as但是这样会出现错误:

root@127.0.0.1 t2>SELECT ID age FROM user3;
+-----+
| age |
+-----+
|   1 |
|   2 |
|   3 |
|   4 |
+-----+
4 rows in set (0.00 sec)

在这里面我们就将这个age当成了id的别名了。

——————————————————————————————————————

where语句进条件的查询:

WHERE
条件表达式
对记录进行过滤,如果没指定WHERE字句,则显示所有记录
在WHERE表达式中,可以使用mysql支持的函数货运算符

——————————————————————————————————————————————

group by语句对查询的结果进行分组:

GROUP BY语句对查询结果分组
查询结果分组,(多个分组用“,”隔开);
[group by{col_name/posittion}[ASC/DESC]....]
ASC是默认的表示升序
EDSC是默认的表示降序。
root@127.0.0.1 t2>SELECT age FROM user3 GROUP BY age;
+------+
| age  |
+------+
|    6 |
|   15 |
|   20 |
+------+
3 rows in set (0.11 sec)
//我们在这里我们对age进行分组

——————————————————————————————————

having语句设置分组条件:

分组条件:利用GROUP BY分组,添加分组条件 [HAVING where_condition] (要么为一个聚合函数【SUM();MAX();etc...】,要么出现在 SELECT 条件中,聚合函数永远只有一个返回结果)
[HAVING when where_condition]
root@127.0.0.1 t2>SELECT age,id FROM user3 GROUP BY 1 HAVING age > 6;
+------+----+
| age  | id |
+------+----+
|   15 |  3 |
|   20 |  2 |
+------+----+
2 rows in set (0.00 sec)
————————————————————————————
root@127.0.0.1 t2>SELECT age,id FROM user3 GROUP BY 1 HAVING count(id)>= 2;
+------+----+
| age  | id |
+------+----+
|   15 |  3 |
+------+----+
1 row in set (0.11 sec)

————————————————————————————————————

order by对分组结果进行排序:

 

order by语句对查询结果排序1、对查询结果进行排序:[ORDER BY {col_name expr position } [ASCDESC],...]
root@127.0.0.1 t2>SELECT * FROM user3 ORDER BY id DESC;
+----+------+
| id | age  |
+----+------+
|  4 |   15 |
|  3 |   15 |
|  2 |   20 |
|  1 |    6 |
+----+------+
4 rows in set (0.00 sec)
2、可以同时按多条字段进行排序,规则是先按前面的字段排,在基础上再按后面字段排。
3、如:SELECT * FROM users ORDER BY age,id DESC; 先按照age排序,如果age有重复的,重复的字段里按id排序。

——————————————————————————————————————————————————————

limit语句限制查询的数量:

限制查询结果返回的数量
select *from +表名 + limit N;返回查询结果前 N 条记录;
select *from +表名 + limit N,M;返回查询结果:从n开始的m条记录(注意n 从0开始数数)

root@127.0.0.1 t2>SELECT * FROM user3 LIMIT 2;
+----+------+
| id | age  |
+----+------+
|  1 |    6 |
|  2 |   20 |
+----+------+
2 rows in set (0.00 sec)
root@127.0.0.1 t2>SELECT * FROM user3 LIMIT 1,2;
+----+------+
| id | age  |
+----+------+
|  2 |   20 |
|  3 |   15 |
+----+------+
2 rows in set (0.00 sec)
//mysql中的排序是从0开始的
root@127.0.0.1 t2>SELECT * FROM user3 LIMIT 1,2;
+----+------+
| id | age  |
+----+------+
|  2 |   20 |
|  3 |   15 |
+----+------+
2 rows in set (0.00 sec)

insert和select的结合

root@127.0.0.1 t2>CREATE TABLE test(-> id SMALLINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,-> age TINYINT UNSIGNED);
Query OK, 0 rows affected (0.09 sec)
root@127.0.0.1 t2>INSERT test(age) SELECT age FROM user3;
Query OK, 4 rows affected (0.13 sec)
Records: 4  Duplicates: 0  Warnings: 0
root@127.0.0.1 t2>SELECT * FROM test;
+----+------+
| id | age  |
+----+------+
|  1 |    6 |
|  2 |   20 |
|  3 |   15 |
|  4 |   15 |
+----+------+
4 rows in set (0.00 sec)

 

转载于:https://www.cnblogs.com/chang1203/p/5892602.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/470084.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

edger和deseq2_转录组分析(二)Hisat2+DESeq2/EdgeR

一、序列比对在2016年的一篇综述A survey of best practices for RNA-seq data analysis,提到目前有三种RNA数据分析的策略。那个时候的工具也主要用的是TopHat,STAR和Bowtie.其中TopHat目前已经被它的作者推荐改用HISAT进行替代。1. Hisat2教程1.1 下载安装#conda直…

HDU 2444 The Accomodation of Students 二分图匹配

HDU 2444 The Accomodation of Students 二分图匹配 题目来源: HDU题意: 给出学生数n和关系数m,接下来给出m个关系。 要求将学生分成两部分,每一部分不能有互相认识的人。做不到就输出"No"。 若上一步满足,则…

检测范围_论文检测系统的检测范围有哪些

为了能够让研究人员,甚至一些专业的学术专家在进行论文创作的时候,端正自己的学术态度,很多人都会要求他们在提交甚至是发表论文之前,附上自己的查重证明,只有查重率低于一定程度时,提交的论文才是合格的。…

[POJ3252]Round Number(数位dp)

题目链接&#xff1a;http://poj.org/problem?id3252 题意&#xff1a;求范围内数字二进制下0的个数大于等于1的个数的数的个数。 数位dp&#xff0c;dp(l,zero,one,fz)记录当前第l位时0的个数1的个数和当前位是否是前导零中的部分&#xff0c;dfs转移就行。 1 #include <b…

2学习率调整_学习率衰减

之前我们的优化&#xff0c;主要是聚焦于对梯度下降运动方向的调整&#xff0c;而在参数迭代更新的过程中&#xff0c;除了梯度&#xff0c;还有一个重要的参数是学习率α&#xff0c;对于学习率的调整也是优化的一个重要方面。01—学习率衰减首先我们以一个例子&#xff0c;来…

Codeforces Round #299 (Div. 2) D. Tavas and Malekas kmp

题目链接&#xff1a; http://codeforces.com/problemset/problem/535/DD. Tavas and Malekastime limit per test2 secondsmemory limit per test256 megabytes问题描述 Tavas is a strange creature. Usually "zzz" comes out of peoples mouth while sleeping, bu…

可怕的乖孩子_当今的中国,有句很可怕的话:所有的乖孩子注定不幸福!

来自soogif▼/01不知道从什么时候起&#xff0c;乖孩子被贴上了一个不幸福的标签&#xff0c; 一个表现很乖的孩子总是会被认为是因为缺乏爱和安全感&#xff0c;才表现的很乖&#xff0c;很懂事的样子的。事实真的是这样子的吗&#xff1f;No&#xff01;爸爸去哪儿5里的Jaspe…

js获取当前日期星期几

var str "今天是星期" "日一二三四五六".charAt(new Date().getDay());alert(str); 转载于:https://www.cnblogs.com/lccnblog/p/5902525.html

适用于VS C++环境的注释代码段,可以让你的代码被使用时有高可读性的注释

编码时&#xff0c;在对高级语言&#xff08;C#/VB etc&#xff09;函数的访问时&#xff0c;经常会有很明确的函数功能提示&#xff0c;参数提示&#xff0c;与返回值提示。微软的VisualStudio C集成开发环境同样有这样的功能&#xff0c;只是常见开源的代码很少按照VS的注释格…

mysql 用户管理表_Mysql—用户表详解(mysql.user)

MySQL数据库Mysql—用户表详解(mysql.user)MySQL是一个多用户管理的数据库&#xff0c;可以为不同用户分配不同的权限&#xff0c;分为root用户和普通用户&#xff0c;root用户为超级管理员&#xff0c;拥有所有权限&#xff0c;而普通用户拥有指定的权限。MySQL是通过权限表来…

Orchard商城模块(Commerce)设计与后台部分

前言&#xff1a;使用CMS开发网站为目标&#xff0c;编写一个扩展性比较好的商城模块。 首先是整体流程图&#xff0c;大概介绍功能与设计。 接下来我们逐个模块功能介绍。 一。商品管理模块 商品模块中可发布需要在线售卖的商品 (套餐商品) 1.1 添加一个商品 1. 商品正常价&…

mysql数据库架构_MySQL数据库之互联网常用架构方案

一、数据库架构原则高可用高性能可扩展一致性二、常见的架构方案方案一&#xff1a;主备架构&#xff0c;只有主库提供读写服务&#xff0c;备库冗余作故障转移用jdbc:mysql://vip:3306/xxdb高可用分析&#xff1a;高可用&#xff0c;主库挂了&#xff0c;keepalive(只是一种工…

mysql数据库恢复策略_MySQL 备份和恢复策略(一)

在数据库表丢失或损坏的情况下&#xff0c;备份你的数据库是很重要的。如果发生系统崩溃&#xff0c;你肯定想能够将你的表尽可能丢失最少的数据恢复到崩溃发生时的状态。本文主要对MyISAM表做备份恢复。备份策略一&#xff1a;直接拷贝数据库文件(不推荐)备份策略二&#xff1…

laravel方法汇总详解

1.whereRaw() 用原生的SQL语句来查询&#xff0c;whereRaw(select * from user) 就和 User::all()方法是一样的效果 2.whereBetween() 查询时间格式 whereBetween(problem_date, [2016-10-05 19:00:00, 2016-10-05 20:35:10]) 这种可以查到&#xff0c;时间格式类似这种, 查询日…

输入输出优化

被各种变态的出题者出的数据坑到了这里/sad 1 int read() 2 { 3 int num0; char chgetchar(); 4 while(ch<0&&ch>9) chgetchar(); //过滤前面非数字字符 5 while(ch>0&&ch<9) {num*10;numch-0;chgetchar();} 6 return num…

mysql整数索引没用到_MYSQL 索引无效和索引有效的详细介绍

1、WHERE字句的查询条件里有不等于号(WHERE column!...)&#xff0c;MYSQL将无法使用索引2、类似地&#xff0c;如果WHERE字句的查询条件里使用了函数(如&#xff1a;WHERE DAY(column)...)&#xff0c;MYSQL将无法使用索引3、在JOIN操作中(需要从多个数据表提取数据时)&#x…

Qt词典搜索

Qt词典搜索 采用阿凡达数据-API数据接口及爱词霸API数据接口实现词典搜索功能&#xff0c;实例字符串搜索接口分别为&#xff1a;中文词组采用“词典”&#xff0c;中文单个字采用“中华字典”&#xff0c;英文或其他字符采用“爱词霸”&#xff1b; 对应的API接口&#xff1a;…

mysql8.0.13 rpm_Centos7 安装mysql 8.0.13(rpm)的教程详解

yum or rpm&#xff1f;yum安装方式很方便&#xff0c;但是下载mysql的时候从官网下载&#xff0c;速度较慢。rpm安装方式可以从国内镜像下载mysql的rpm包&#xff0c;比较快。rpm也适合离线安装。环境说明•操作系统&#xff1a;Centos7.4 (CentOS-7-x86_64-Minimal-1804.iso)…

如何参与一个GitHub开源项目

Github作为开源项目的著名托管地&#xff0c;可谓无人不知&#xff0c;越来越多的个人和公司纷纷加入到Github的大家族里来&#xff0c;为开源尽一份绵薄之力。对于个人来讲&#xff0c;你把自己的项目托管到Github上并不表示你参与了Github开源项目&#xff0c;只能说你开源了…

mysql数据库的多实例_MySQL数据库多实例应用实战 - 橙子柠檬's Blog

本文采用的是/data目录作为mysql多实例总的根目录&#xff0c;然后规划不同 的MySQL实例端口号来作为/data下面的二级目录&#xff0c;不同的端口号就是不同实例目录&#xff0c;以区别不同的实例&#xff0c;二级目录下包含mysql数据文件&#xff0c;配置文件以及启动文件的目…