连仕彤博客

记录平凡生活,关注互联网,专注Linux运维技术.

MySQL数据库(八):表记录的基本操作(增删改查)

《MySQL数据库(八):表记录的基本操作(增删改查)》

一、增
insert:增加(条件一条新纪录,默认新添加的记录都添加在已有记录的末尾)

1.格式:
1.1添加新纪录时,只给记录中的某几个字段赋值

*值得类型是字符的话需要用双引号引起来

1.2 添加新纪录时,给所有记录中的所有字段赋值

*值得类型是字符的话需要用双引号引起来
*值与字段的类型一定匹配

2.例子
1.1 给表中插入一条记录

1.2 给表中的指定字段赋值

1.3 如何给字段赋空值

二、删
delete:删除(删除的是一整条记录)

1.格式:
1.1 删除表中的所有记录

1.2 只删除指定的记录

*条件表达式:数值比较、字符比较、范围内、空、非空、逻辑比较、模糊、正则表达式

2.例子:

1.1 删除uid字段为null的记录

三、改
update:修改字段的值

1.批量修改
1.1 格式:

1.2 例子

2.只修改符合条件的记录中指定字段的值
1.1格式:

*条件表达式:数值比较 字符比较 范围内 空 非空 逻辑比较 模糊 正则表达式

1.2例子:
修改username是root的age字段的值为30

四、查
select:查询记录内容(值)
1.格式

2.字段名列表的表示方式

select 字段名列表 from 数据库名.表名 where 条件表达式;

例子:查看uid小于10的

3.条件表达式
1.1 数值比较
比较符号:> >= < <= = != 格式: 字段名(数值类型且是整型) 比较符号 数字 例子:

查询id=10的记录

1.2字符比较 比较符号:= !=

格式:
字段名 “字符串”
比如:name=”root”

例子:
查询表中username=root的记录

查询usertab表中usernam=root用户的username,uid,gid的记录

1.3范围内查找

例子:

1.4 空和非空
匹配空:is null
匹配非空:is not null

例子:
匹配为空的

匹配非空的
《MySQL数据库(八):表记录的基本操作(增删改查)》

*赋值的时候 “” 和 ” ” 是等效的

***********************

1.5逻辑比较
(查询时使用2个或2个以上查询条件)

逻辑与: and-多个条件必须同时成立

逻辑或:or-多个条件只要有一个条件成立就可以

逻辑非:!-取反

distinct 不显示重复的值

select shell from usertab;
mysql> select distinct shell from usertab;
+—————-+
| shell |
+—————-+
| /bin/bash |
| /sbin/nologin |
| /bin/sync |
| /sbin/shutdown |
| /sbin/halt |
| NULL |
| NULL |
+—————-+
7 rows in set (0.00 sec)

1.6模糊查询
查询用户名姓张的学生信息
格式:
where 字段名 like ‘表达式’

表达式符号 :
% 匹配0个到多个字符
_ 匹配任意一个字符

#匹配任意3个字符
select username from usertab where username like ‘_ _ _’
#匹配以r开头的任意3个字符
select username from usertab where username like ‘r_ _’
#匹配以a开头的
select username from usertab where username like ‘a%’

select username from usertab where username like ‘_a_’
select username from usertab where username like ‘张%’

**********************************
使用这则表达式做查询条件

INSERT INTO usertab(username,password,uid,gid,comment,homedir,shell)values(“jim3”,NULL,NULL,NULL,NULL,NULL,NULL);
INSERT INTO usertab(username,password,uid,gid,comment,homedir,shell)values(“jim8”,NULL,NULL,NULL,NULL,NULL,NULL);
INSERT INTO usertab(username,password,uid,gid,comment,homedir,shell)values(“3jim”,NULL,NULL,NULL,NULL,NULL,NULL);

mysql> select username from usertab
-> where
-> username like ‘j%’;
+———-+
| username |
+———-+
| jim8 |
| jim9 |
+———-+
2 rows in set (0.00 sec)

1.7使用正则表达式的格式:
where 字段名 regexp ‘正则表达式’

查询名字中包含数字的
mysql> select username from usertab where username regexp ‘[0-9]’;
+———-+
| username |
+———-+
| 3jim |
| jim8 |
| jim9 |
+———-+
3 rows in set (0.01 sec)

查询uid是两位数的
mysql> select id,username,uid from usertab where uid regexp ‘^..$’;
+—-+———-+——+
| id | username | uid |
+—-+———-+——+
| 10 | uucp | 10 |
| 11 | operator | 11 |
| 12 | games | 12 |
| 13 | gopher | 13 |
| 14 | ftp | 14 |
| 15 | nobody | 99 |
| 16 | vcsa | 69 |
| 18 | postfix | 89 |
| 19 | sshd | 74 |
| 20 | ntp | 38 |
| 21 | dbus | 81 |
| 24 | mailnull | 47 |
| 25 | smmsp | 51 |
+—-+———-+——+
13 rows in set (0.00 sec)

4.查询时做四则运算
运算符号: + - * / %

1.1 加法

1.2减法运算

3.乘法运算

*as chengji:表示给运算结果列取一个名字
4.除法运算

5.常用统计函数
avg():集合的平均值
sum():对集合中的各参数求和
min():集合中的最小值
max():集合中的最大值
count():记录的个数(空值不算)

1.1 统计所有字段的个数

1.2 统计指定字段的个数

6.排序
1.1 格式:(默认为升序)

1.2 例子:

*默认(升序)排序

*降序排列

7.分组
1.格式:

2.例子:

3.处理分组后的结果
1.1格式:

例子:
查询usertab表中的shell字段并分组,然后查找出uid小于10的

8.限制显示记录的条目数

limit限制显示记录的条目数

1.1格式:

例子:

显示查询结果的前10条记录

从第三行显示三行

9.嵌套查询
里层查询结果做为外层查询条件

格式/例子:
从usertab表查找uid小于uid列平均值的记录

点赞

发表评论

电子邮件地址不会被公开。 必填项已用*标注