自学内容网 自学内容网

MySQL表的新增与查询

1.新增

1.1全部插入

insert into 表名 values(值, 值....);

这里的值要和列的个数和类型相匹配

使用'或者"来表示字符串

1.2指定列插入

insert into 表名(列名, 列名...) values(值,值...);

剩余的列会填入默认值

1.3一次插入多行

insert into 表名 values(值,值...),(值,值...)...;

一次插入多行记录,相比一次插入一行,分多次插入要快不少.

1.4插入datetime类型

可以用一个固定格式的字符串。来表示时间日期

mysql> create table shijian(id int, birthday datetime);
Query OK, 0 rows affected (0.04 sec)

mysql> insert into shijian values(18, '2004-10-04 12:00:00');
Query OK, 1 row affected (0.00 sec)

如果想填写的日期就是当前时刻,可以使用now()函数 

mysql>insert into shijian values(12, now());

2.查询

2.1全列查询

select * from 表名;

把表中所有行和列都查询出来

mysql> select * from shijian;
+------+---------------------+
| id   | birthday            |
+------+---------------------+
|   18 | 2004-10-04 12:00:00 |
|   12 | 2024-11-13 08:13:05 |
+------+---------------------+
2 rows in set (0.01 sec)

这种查询有危险,因为查询东西太多,可能导致网络带宽爆满

2.2指定列查询

select 列名,列名... from 表名;
mysql> select birthday from shijian;
+---------------------+
| birthday            |
+---------------------+
| 2004-10-04 12:00:00 |
| 2024-11-13 08:13:05 |
+---------------------+

2.3查询字段为表达式

作用:一边查询,一边进行计算,在查询的时候,写列名构成的表达式,把这一行中的所有行都带入到表达式中参与运算

例1:想查询所有同学,语文成绩都-10分的表 

原表:

查询:

列2:

注意:这个操作并不会修改数据库服务器上的原始数据,如果再次普通查询,显示的还是原来的结果

2.4别名

用途:查询字段为表达式的时候有时候表达式比较复杂,很难看懂是什么意思,这个时候就可以设置一个别名解释一下

查询的时候给 列/表达式 指定别名.(给表也能指定别名)

select 表达式 as 别名 from 表名;

2.5去重

操作:distinct 修饰某个列/ 多个列

值相同的行,只会保留一个

  • distinct修饰一个列

  • distinct修饰多个列

为什么这里有多个98.0?没有完成去重吗?

因为这里的name不相同,需要distinct修饰的列都相同的情况下才会去重

2.6查询进行排序

select 列名 from 表名 order by 列名 asc/desc;

指定某个列来进行排序

asc表示升序排序,desc表示降序排序,如果省略就是升序排序

排序针对临时数据,不改变数据库原有数据

列如:按照数学成绩进行排序

注意:oder by指定的列,如果你select的时候没有把这一列查出来,也不影响排序

列入:按语文成绩排序,但是没有选择查看语文成绩

order by还可以根据表达式来进行排序

列入:通过总成绩来进行排序

还可以使用别名

指定多个列来排序,order by后面可以写多个列。 使用,分割

含义:先按照数学成绩排,如果数学成绩一样,则按照语文成绩排

使用desc:按数学降序排序,如果数学成绩相同,则按语文成绩升序排序

2.7条件查询:where

指定具体的条件,按照条件针对数据进行筛选

select 列名 from 表名 where 条件;

这个语句会遍历这个表的每一行记录,把每一行的数据分别带入到条件中,如果条件成立,这个记录就会被放入结果集合中

比较运算符:

like一般和通配符连用,通配符:就是一些特殊字符,能够表示特定的含义

%:代指任意个任意字符

_:代指一个任意字符

逻辑运算符:

查询英语不合格的同学(<)

查询语文成绩好于英语成绩的同学(>)

查询总成绩低于200的同学

注意:条件查询不能使用别名

查询语文成绩和英语成绩都大于80的同学(and)

查询语文成绩在82到90分之间的同学(btween and)

查询姓孙的同学(like)

这里的百分号意思是孙的后面可以是任意个任意字符都满足

查询名字以孙结尾的同学:

查询名字包含孙的同学

这里的模糊查询的功能是有限的

在计算机中,进行模糊匹配字符串的还有"正则表达式"这样的方式来实现

空值null查询

注意:null与任何运算符运算都=null 

所以无法用=来查询null

此时需要使用<=> 

2.8分页查询 LIMIT

前面说了使用select *  这种方式查询比较危险

limit可以限制这次查询最多能查出来多少个结果

limit表示这次查询查出几个记录

offset是偏移量,也就是从第几个记录开始查询


原文地址:https://blog.csdn.net/xkroy/article/details/143704478

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!