Linux学习--MySQL学习之查询语句

所有实现基于mysql8.0.26实现,事例代码

1:常用函数

  • 字符函数
  • 数学函数
  • 日期函数
  • 聚集函数
  • 数学计算
  • if函数
  • case函数
函数:MySQL服务内置命令
语法:函数名(表头名)
select格式
SELECT  函数(表头名)  FROM  库名.表名;
SELECT  函数(表头名)  FROM  库名.表名 WHERE 条件;
1.字符函数(处理字符或字符类型的表头)
mysql> use tarena;
Database changed
mysql> select name from user where name='root';
+------+
| name |
+------+
| root |
+------+
1 row in set (0.00 sec)
#获取字符字节长度length
mysql> select name,length(name) as 字节个数 from user where name='root';
+------+--------------+
| name | 字节个数     |
+------+--------------+
| root |            4 |
+------+--------------+
1 row in set (0.00 sec)
mysql> select name,length(name) from employees where employee_id=3;
+-----------+--------------+
| name      | length(name) |
+-----------+--------------+
| 李玉英    |            9 |
+-----------+--------------+
1 row in set (0.00 sec)
mysql> select name from employees where employee_id=3;
+-----------+
| name      |
+-----------+
| 李玉英    |
+-----------+
1 row in set (0.00 sec)
#获取字符长度char_length
mysql> select name,char_length(name) from employees where employee_id=3;
+-----------+-------------------+
| name      | char_length(name) |
+-----------+-------------------+
| 李玉英    |                 3 |
+-----------+-------------------+
1 row in set (0.00 sec)mysql> select name from user where uid <=3;
+--------+
| name   |
+--------+
| root   |
| bin    |
| daemon |
| adm    |
+--------+
4 rows in set (0.00 sec)
#upper转大写
mysql> select upper(name) from user where uid <=3;
+-------------+
| upper(name) |
+-------------+
| ROOT        |
| BIN         |
| DAEMON      |
| ADM         |
+-------------+
4 rows in set (0.00 sec)mysql> select ucase(name) from user where uid <=3;
+-------------+
| ucase(name) |
+-------------+
| ROOT        |
| BIN         |
| DAEMON      |
| ADM         |
+-------------+
4 rows in set (0.00 sec)mysql> select lower("ABCD");
+---------------+
| lower("ABCD") |
+---------------+
| abcd          |
+---------------+
1 row in set (0.00 sec)
#lcase将信息转换为小写
mysql> select lcase("ABCD");
+---------------+
| lcase("ABCD") |
+---------------+
| abcd          |
+---------------+
1 row in set (0.00 sec)mysql> select name from employees where employee_id <=3;
+-----------+
| name      |
+-----------+
| 梁伟      |
| 郭岩      |
| 李玉英    |
+-----------+
3 rows in set (0.00 sec)
//substr(s,start,end)从s的start位置开始取出end长度的子串
mysql> select substr(name,2,3) from employees where employee_id<=3;
+------------------+
| substr(name,2,3) |
+------------------+
||
||
| 玉英             |
+------------------+
3 rows in set (0.00 sec)
mysql> select instr(name,'a') from user where uid <=3;
+-----------------+
| instr(name,'a') |
+-----------------+
|               0 |
|               0 |
|               2 |
|               1 |
+-----------------+
4 rows in set (0.00 sec)
#instr(str,str1)返回str1参数,在str参数内的位置
mysql> select name,instr(name,"英") from employees;
+-----------+-------------------+
| name      | instr(name,"英")  |
+-----------+-------------------+
| 梁伟      |                 0 |
| 郭岩      |                 0 |
| 李玉英    |                 3 |
| 张健      |                 0 |
| 郑静      |                 0 |
| 牛建军    |                 0 |
| 刘斌      |                 0 |
| 汪云      |                 0 |
...
#去除字符串两边空格
mysql> select trim("    ABC  ");
+-------------------+
| trim("    ABC  ") |
+-------------------+
| ABC               |
+-------------------+
1 row in set (0.00 sec)
#2.数学函数(处理数字或数值类型的表头)
//ABS(x)    返回x的绝对值
mysql> select abs(11);
+---------+
| abs(11) |
+---------+
|      11 |
+---------+
1 row in set (0.00 sec)
mysql> select abs(-11);
+----------+
| abs(-11) |
+----------+
|       11 |
+----------+
1 row in set (0.00 sec)
mysql>
//PI()        返回圆周率π,默认显示6位小数
mysql> select pi() ;
+----------+
| pi()     |
+----------+
| 3.141593 |
+----------+
1 row in set (0.00 sec)
//MOD(x,y)    返回x被y除后的余数 
mysql> select mod(10,3);
+-----------+
| mod(10,3) |
+-----------+
|         1 |
+-----------+
1 row in set (0.00 sec)
//输出1-10之间的偶数uid号
mysql> select name , uid from tarena.user where uid between 1 and 10 and  mod(uid,2) = 0 ;
+----------+------+
| name     | uid  |
+----------+------+
| daemon   |    2 |
| lp       |    4 |
| shutdown |    6 |
| mail     |    8 |
+----------+------+
4 rows in set (0.00 sec)
//CEIL(x)、CEILING(x)    返回不小于x的最小整数 (x 是小数)
mysql> select ceil(9.23);
+------------+
| ceil(9.23) |
+------------+
|         10 |
+------------+
1 row in set (0.00 sec)
mysql> select ceiling(9.23);
+---------------+
| ceiling(9.23) |
+---------------+
|            10 |
+---------------+
1 row in set (0.00 sec)
mysql>
//FLOOR(x)            返回不大于x的最大整数 (x 是有小数的数字)
mysql> select floor(9.23);
+-------------+
| floor(9.23) |
+-------------+
|           9 |
+-------------+
1 row in set (0.00 sec)
#3.日期时间函数
![日期时间函数](https://img-blog.csdnimg.cn/cdda5eb7e0f34d9aaf432774b9b5ebbb.png)
mysql> select curtime(); //获取系统时间
+-----------+
| curtime() |
+-----------+
| 17:42:20  |
+-----------+
1 row in set (0.00 sec)
mysql> select curdate();//获取系统日期
+------------+
| curdate()  |
+------------+
| 2023-05-24 |
+------------+
1 row in set (0.00 sec)
mysql> select now() ;//获取系统日期+时间
+---------------------+
| now()               |
+---------------------+
| 2023-05-24 17:42:29 |
+---------------------+
1 row in set (0.00 sec)
mysql> select year(now()) ; //获取系统当前年
+-------------+
| year(now()) |
+-------------+
|        2023 |
+-------------+
1 row in set (0.00 sec)
mysql> select month(now()) ; //获取系统当前月
+--------------+
| month(now()) |
+--------------+
|            5 |
+--------------+
1 row in set (0.00 sec)
mysql> select day(now()) ; //获取系统当前日
+------------+
| day(now()) |
+------------+
|         24 |
+------------+
1 row in set (0.00 sec)
mysql> select hour(now()) ; //获取系统当前小时
+-------------+
| hour(now()) |
+-------------+
|          17 |
+-------------+
1 row in set (0.00 sec)
mysql> select minute(now()) ; //获取系统当分钟
+---------------+
| minute(now()) |
+---------------+
|            46 |
+---------------+
1 row in set (0.00 sec)
mysql> select second(now()) ; //获取系统当前秒
+---------------+
| second(now()) |
+---------------+
|            34 |
+---------------+
1 row in set (0.00 sec)
mysql> select time(now()) ;//获取当前系统时间
+-------------+
| time(now()) |
+-------------+
| 17:47:36    |
+-------------+
1 row in set (0.00 sec)
mysql> select date(now()) ; //获取当前系统日期
+-------------+
| date(now()) |
+-------------+
| 2023-05-24  |
+-------------+
1 row in set (0.00 sec)
mysql> select curdate();//获取当前系统日志
+------------+
| curdate()  |
+------------+
| 2023-05-24 |
+------------+
1 row in set (0.00 sec)
mysql> select dayofmonth(curdate());//获取一个月的第几天
+-----------------------+
| dayofmonth(curdate()) |
+-----------------------+
|                    24 |
+-----------------------+
1 row in set (0.00 sec)
mysql> select dayofyear(curdate());//获取一年中的第几天
+----------------------+
| dayofyear(curdate()) |
+----------------------+
|                  144 |
+----------------------+
1 row in set (0.00 sec)
mysql>
mysql> select monthname(curdate());//获取月份名
+----------------------+
| monthname(curdate()) |
+----------------------+
| May                  |
+----------------------+
1 row in set (0.00 sec)
mysql> select dayname(curdate());//获取星期名
+--------------------+
| dayname(curdate()) |
+--------------------+
| Wednesday          |
+--------------------+
1 row in set (0.00 sec)
mysql> select quarter(curdate());//获取一年中的第几季度
+--------------------+
| quarter(curdate()) |
+--------------------+
|                  2 |
+--------------------+
1 row in set (0.00 sec)
mysql> select week(now());//一年中的第几周
+-------------+
| week(now()) |
+-------------+
|          21 |
+-------------+
1 row in set (0.00 sec)
mysql> select weekday(now())//一周中的周几 
+----------------+
| weekday(now()) |
+----------------+
|              2 |
+----------------+
1 row in set (0.00 sec)
#4.聚合函数
#求和函数sum
mysql> select sum(basic) from salary where employee_id=3 and year(date)=2018;
+------------+
| sum(basic) |
+------------+
|     111595 |
+------------+
1 row in set (0.00 sec)
#avg(表头名) 计算平均值
mysql> select avg(basic) from salary where employee_id=3 and year(date)=2018;
+------------+
| avg(basic) |
+------------+
|  9299.5833 |
+------------+
1 row in set (0.00 sec)
#min(表头名) 获取最小值
mysql> select min(basic) from salary where employee_id=3 and year(date)=2018;
+------------+
| min(basic) |
+------------+
|       9261 |
+------------+
1 row in set (0.00 sec)
#max(表头名) 获取最大值
mysql> select max(basic) from salary where employee_id=3 and year(date)=2018;
+------------+
| max(basic) |
+------------+
|       9724 |
+------------+
1 row in set (0.00 sec)
#count(表头名) 统计表头值个数----统计3号员工2018年奖金小于3000的次数
mysql> select count(bonus) from salary where employee_id=3 and year(date)=2018 and bonus<3000;
+--------------+
| count(bonus) |
+--------------+
|            3 |
+--------------+
1 row in set (0.00 sec)
#5.数学计算
![数学计算](https://img-blog.csdnimg.cn/3f38703a72b14b3fa23de4c7dbdec92c.png)
#输出8号员工2019年1月10工资总和
mysql> select employee_id ,date , basic +  bonus  as 总工资 from salary 
where employee_id = 8 and date=20190110;
+-------------+------------+----------------+
| employee_id | date       |     总工资       |
+-------------+------------+----------------+
|           8 | 2019-01-10 |          24093 |
+-------------+------------+----------------+
#输出8号员工的名字和年龄
mysql> select name,year(now())-year(birth_date) as 年龄 from employees where employee_id=8;
+--------+--------+
| name   | 年龄   |
+--------+--------+
| 汪云   |     30 |
+--------+--------+
1 row in set (0.00 sec)
#查看8号员工2019年1月10 基本工资翻3倍的值
mysql> select employee_id , basic , basic * 3  as 工资翻三倍  from salary 
where  employee_id=8  and date=20190110;
+-------------+-------+-----------------+
| employee_id | basic | 工资翻三倍      |
+-------------+-------+-----------------+
|           8 | 23093 |           69279 |
+-------------+-------+-----------------+
1 row in set (0.00 sec)
#输出员工编号1-10之间偶数员工编号及对应的员工名
mysql> select employee_id , name  from  tarena.employees  
where  employee_id  between 1 and 10  and  employee_id % 2  =  0   ;
+-------------+-----------+
| employee_id | name      |
+-------------+-----------+
|           2 | 郭岩      |
|           4 | 张健      |
|           6 | 牛建军    |
|           8 | 汪云      |
|          10 | 郭娟      |
+-------------+-----------+
5 rows in set (0.00 sec)
#6.if函数
if(条件,v1,v2) 如果条件是TRUE则返回v1,否则返回v2
ifnull(v1,v2) 如果v1不为NULL,则返回v1,否则返回v2
mysql> select  if(1 = 2 , "a","b");
+---------------------+
| if(1 = 2 , "a","b") |
+---------------------+
| b                   |
+---------------------+
1 row in set (0.00 sec)
mysql> select  if( 1 = 1 , "a","b");
+---------------------+
| if(1 = 1 , "a","b") |
+---------------------+
| a                   |
+---------------------+
1 row in set (0.00 sec)mysql> select  ifnull("abc","xxx");
+---------------------+
| ifnull("abc","xxx") |
+---------------------+
| abc                 |
+---------------------+
1 row in set (0.00 sec)
mysql> select  ifnull(null,"xxx");
+--------------------+
| ifnull(null,"xxx") |
+--------------------+
| xxx                |
+--------------------+
1 row in set (0.00 sec)
mysql> select name , uid  , 
#cold_boldif(uid < 1000 , "系统用户","创建用户") as 用户类型  from tarena.user;
+-----------------+-------+--------------+
| name            | uid   | 用户类型     |
+-----------------+-------+--------------+
| root            |     0 | 系统用户     |
| bin             |     1 | 系统用户     |
| daemon          |     2 | 系统用户     |
| adm             |     3 | 系统用户     |
| lp              |     4 | 系统用户     |
| sync            |     5 | 系统用户     |
...
+-----------------+-------+--------------+
27 rows in set (0.00 sec)
mysql>  select name , shell  , 
#cold_boldif(shell = "/bin/bash" , "交互用户","非交户用户") as 用户类型 from tarena.user;
+-----------------+----------------+-----------------+
| name            | shell          | 用户类型        |
+-----------------+----------------+-----------------+
| root            | /bin/bash      | 交互用户        |
| bin             | /sbin/nologin  | 非交户用户      |
| daemon          | /sbin/nologin  | 非交户用户      |
| adm             | /sbin/nologin  | 非交户用户      |
| lp              | /sbin/nologin  | 非交户用户      |
| sync            | /bin/sync      | 非交户用户      |
| shutdown        | /sbin/shutdown | 非交户用户      |
...
+-----------------+----------------+-----------------+
27 rows in set (0.00 sec)mysql> insert   into   user (name, homedir) values ("jerrya",null);
mysql>  select name  姓名, ifnull(homedir,"NO  home")as 家目录  from  tarena.user;
+-----------------+--------------------+
| 姓名            | 家目录             |
+-----------------+--------------------+
| root            | /root              |
| bin             | /bin               |
| daemon          | /sbin              |
...
| apache          | /usr/share/httpd   |
| mysql           | /var/lib/mysql     |
| bob             | NO  home           |
| jerrya          | NO  home           |
+-----------------+--------------------+
28 rows in set (0.00 sec)
#7.case函数
命令格式
CASE 表头名              
WHEN1 THEN 输出结果 
WHEN2 THEN 输出结果  
WHEN3 THEN 输出结果 
ELSE 输出结果  
ENDCASE              
WHEN  判断条件1 THEN 输出结果 
WHEN  判断条件2 THEN 输出结果  
WHEN  判断条件3 THEN 输出结果 
ELSE  输出结果  
END
mysql> select  * from tarena.departments;
+---------+-----------+
| dept_id | dept_name |
+---------+-----------+
|       1 | 人事部    |
|       2 | 财务部    |
|       3 | 运维部    |
|       4 | 开发部    |
|       5 | 测试部    |
|       6 | 市场部    |
|       7 | 销售部    |
|       8 | 法务部    |
+---------+-----------+
8 rows in set (0.03 sec)
//输出部门类型
select dept_id, dept_name,
case dept_name
when '运维部' then '技术部门'
when '开发部' then '技术部门'
when '测试部' then '技术部门'
else '非技术部门'
end as  部门类型   from  tarena.departments;
+---------+-----------+-----------------+
| dept_id | dept_name | 部门类型        |
+---------+-----------+-----------------+
|       1 | 人事部    | 非技术部门      |
|       2 | 财务部    | 非技术部门      |
|       3 | 运维部    | 技术部门        |
|       4 | 开发部    | 技术部门        |
|       5 | 测试部    | 技术部门        |
|       6 | 市场部    | 非技术部门      |
|       7 | 销售部    | 非技术部门      |
|       8 | 法务部    | 非技术部门      |
+---------+-----------+-----------------+
8 rows in set (0.00 sec)
或
mysql> select dept_id,dept_name,-> case-> when dept_name="运维部"  then "技术部"-> when dept_name="开发部"  then "技术部"-> when dept_name="测试部"  then "技术部"-> else "非技术部"-> end as 部门类型  from  tarena.departments;
+---------+-----------+--------------+
| dept_id | dept_name | 部门类型     |
+---------+-----------+--------------+
|       1 | 人事部    | 非技术部     |
|       2 | 财务部    | 非技术部     |
|       3 | 运维部    | 技术部       |
|       4 | 开发部    | 技术部       |
|       5 | 测试部    | 技术部       |
|       6 | 市场部    | 非技术部     |
|       7 | 销售部    | 非技术部     |
|       8 | 法务部    | 非技术部     |
+---------+-----------+--------------+
8 rows in set (0.00 sec)
或
mysql> select dept_id,dept_name,-> case-> when dept_name in ("运维部","开发部","测试部") then "技术部"-> else "非技术部"-> end as 部门类型  from  tarena.departments;
+---------+-----------+--------------+
| dept_id | dept_name | 部门类型     |
+---------+-----------+--------------+
|       1 | 人事部    | 非技术部     |
|       2 | 财务部    | 非技术部     |
|       3 | 运维部    | 技术部       |
|       4 | 开发部    | 技术部       |
|       5 | 测试部    | 技术部       |
|       6 | 市场部    | 非技术部     |
|       7 | 销售部    | 非技术部     |
|       8 | 法务部    | 非技术部     |
+---------+-----------+--------------+
8 rows in set (0.00 sec)

2:查询结果处理

- 分组
- 排序
- 过滤
- 分页
语法格式
SELECT 表头名 FROM 库名.表名 [WHERE条件] 分组 | 排序 | 过滤 | 分页;
#1.分组练习
#输出符合条件的shell和name
mysql> select shell as 解释器,count(name) as 总人数 from user where shell in ("/bin/bash","/sbin/nologin") group by shell;
+---------------+-----------+
| 解释器        | 总人数    |
+---------------+-----------+
| /bin/bash     |         2 |
| /sbin/nologin |        20 |
+---------------+-----------+
2 rows in set (0.00 sec)
#统计每个部门的总人数
mysql> select dept_name, emp.dept_id,count(name) from employees emp,departments dep where emp.dept_id=dep.dept_id group by emp.dept_id;
+-----------+---------+-------------+
| dept_name | dept_id | count(name) |
+-----------+---------+-------------+
| 人事部    |       1 |           8 |
| 财务部    |       2 |           5 |
| 运维部    |       3 |           6 |
| 开发部    |       4 |          55 |
| 测试部    |       5 |          12 |
| 市场部    |       6 |           9 |
| 销售部    |       7 |          35 |
| 法务部    |       8 |           3 |
+-----------+---------+-------------+
8 rows in set (0.00 sec)
#2.排序
#按uid升序排序
mysql> select name,uid from user where uid is not null and uid between 100 and 1000 order by uid;
+-----------------+------+
| name            | uid  |
+-----------------+------+
| haproxy         |  188 |
| systemd-network |  192 |
| chrony          |  998 |
| polkitd         |  999 |
| plj             | 1000 |
+-----------------+------+
5 rows in set (0.00 sec)
#按uid降序排序
mysql> select name,uid from user where uid is not null and uid between 100 and 1000 order by uid desc;
+-----------------+------+
| name            | uid  |
+-----------------+------+
| plj             | 1000 |
| polkitd         |  999 |
| chrony          |  998 |
| systemd-network |  192 |
| haproxy         |  188 |
+-----------------+------+
5 rows in set (0.00 sec)
#查看2015年1月10号员工编号小于10的工资总额
mysql> select *,basic+bonus as 工资总额 from salary where employee_id<10 and date='20150110';
+----+------------+-------------+-------+-------+--------------+
| id | date       | employee_id | basic | bonus | 工资总额     |
+----+------------+-------------+-------+-------+--------------+
|  2 | 2015-01-10 |           2 | 17000 | 10000 |        27000 |
|  3 | 2015-01-10 |           3 |  8000 |  2000 |        10000 |
|  4 | 2015-01-10 |           4 | 14000 |  9000 |        23000 |
|  6 | 2015-01-10 |           6 | 14000 | 10000 |        24000 |
|  7 | 2015-01-10 |           7 | 19000 | 10000 |        29000 |
+----+------------+-------------+-------+-------+--------------+
5 rows in set (0.00 sec)
#以工资总额升序排,总额相同按员工编号升序排
mysql> select *,basic+bonus as total from salary where date=20150110 and employee_id<10  order by total,employee_id;
+----+------------+-------------+-------+-------+-------+
| id | date       | employee_id | basic | bonus | total |
+----+------------+-------------+-------+-------+-------+
|  3 | 2015-01-10 |           3 |  8000 |  2000 | 10000 |
|  4 | 2015-01-10 |           4 | 14000 |  9000 | 23000 |
|  6 | 2015-01-10 |           6 | 14000 | 10000 | 24000 |
|  2 | 2015-01-10 |           2 | 17000 | 10000 | 27000 |
|  7 | 2015-01-10 |           7 | 19000 | 10000 | 29000 |
+----+------------+-------------+-------+-------+-------+
5 rows in set (0.00 sec)
#3.过滤
#查找到的数据里过滤符合条件的数据
select 表头名  from.where 筛选条件  having     筛选条件;
#查找部门总人数少于10人的部门名称及人数
mysql> select dept_id,count(name) as total  from employees emp group by dept_id having total<10;
+---------+-------+
| dept_id | total |
+---------+-------+
|       1 |     8 |
|       2 |     5 |
|       3 |     6 |
|       6 |     9 |
|       8 |     3 |
+---------+-------+
5 rows in set (0.00 sec)
mysql> select dep.dept_name,count(name) as total  from employees emp,departments dep where dep.dept_id = emp.dept_id  group by dep.dept_id having total<10;
+-----------+-------+
| dept_name | total |
+-----------+-------+
| 人事部    |     8 |
| 财务部    |     5 |
| 运维部    |     6 |
| 市场部    |     9 |
| 法务部    |     3 |
+-----------+-------+
5 rows in set (0.00 sec)
#4.分页
#限制查询结果显示行数(默认显示全部查询结果)
#使用SELECT查询时,如果结果集数据量很大,比如1万行数据,放在一个页面显示的话数据量太大,可以分100次显示 每次只显示100行。
#语法
SELECT语句  LIMIT  数字;            //显示查询结果前多少条记录
SELECT语句  LIMIT  数字1,数字2;    //显示指定范围内的查询记录
数字1  表示起始行 (0表示第1行) 数字2表示总行数#只显示查询结果的第1行
mysql> select * from user where shell is not null limit 1;
+----+------+----------+------+------+---------+---------+-----------+
| id | name | password | uid  | gid  | comment | homedir | shell     |
+----+------+----------+------+------+---------+---------+-----------+
|  1 | root | x        |    0 |    0 | root    | /root   | /bin/bash |
+----+------+----------+------+------+---------+---------+-----------+
1 row in set (0.00 sec)
#只显示查询结果的前3行
mysql> select * from user where shell is not null limit 3;
+----+--------+----------+------+------+---------+---------+---------------+
| id | name   | password | uid  | gid  | comment | homedir | shell         |
+----+--------+----------+------+------+---------+---------+---------------+
|  1 | root   | x        |    0 |    0 | root    | /root   | /bin/bash     |
|  2 | bin    | x        |    1 |    1 | bin     | /bin    | /sbin/nologin |
|  3 | daemon | x        |    2 |    2 | daemon  | /sbin   | /sbin/nologin |
+----+--------+----------+------+------+---------+---------+---------------+
3 rows in set (0.00 sec)
#从查询结果的第3行
mysql> mysql> select * from user where shell is not null limit 3,4;
+----+----------+----------+------+------+----------+----------------+----------------+
| id | name     | password | uid  | gid  | comment  | homedir        | shell          |
+----+----------+----------+------+------+----------+----------------+----------------+
|  4 | adm      | x        |    3 |    4 | adm      | /var/adm       | /sbin/nologin  |
|  5 | lp       | x        |    4 |    7 | lp       | /var/spool/lpd | /sbin/nologin  |
|  6 | sync     | x        |    5 |    0 | sync     | /sbin          | /bin/sync      |
|  7 | shutdown | x        |    6 |    0 | shutdown | /sbin          | /sbin/shutdown |
+----+----------+----------+------+------+----------+----------------+----------------+
4 rows in set (0.00 sec)
#查看uid 号最大的用户名和UID
mysql> select name,uid from user order by uid desc limit 1;
+-----------+-------+
| name      | uid   |
+-----------+-------+
| nfsnobody | 65534 |
+-----------+-------+
1 row in set (0.00 sec)

3:管理表记录

- 插入表记录
- 修改表记录
- 删除表记录#插入1条记录
mysql> insert into user values(40,"jingyaya","x",1001,1001,"teacher","/home/jingyaya","/bin/bash");
Query OK, 1 row affected (0.05 sec)
#查看表记录
mysql> select  * from  tarena.user where name="jingyaya";
+----+----------+----------+------+------+---------+----------------+-----------+
| id | name     | password | uid  | gid  | comment | homedir        | shell     |
+----+----------+----------+------+------+---------+----------------+-----------+
| 40 | jingyaya | x        | 1001 | 1001 | teacher | /home/jingyaya | /bin/bash |
+----+----------+----------+------+------+---------+----------------+-----------+
1 row in set (0.00 sec)
#插入多行记录给所有列赋值
insert into tarena.user values
(41,"jingyaya2","x",1002,1002,"teacher","/home/jingyaya2","/bin/bash"),
(42,"jingyaya3","x",1003,1003,"teacher","/home/jingyaya3","/bin/bash");#插入1行给指定列赋值,必须写列名,没赋值的列 没有数据 后通过设置的默认值赋值
mysql> insert into tarena.user(name,uid,shell)values("benben",1002,"/sbin/nologin");
#插入多行给指定列赋值,必须写列名,没赋值的列 没有数据 后通过设置的默认值赋值
mysql> insert into tarena.user(name,uid,shell)values("benben2",1002,"/sbin/nologin"),("benben3",1003,"/sbin/nologin");
#查看记录
mysql> select  * from tarena.user where name like  "benben%";
+----+---------+----------+------+------+---------+---------+---------------+
| id | name    | password | uid  | gid  | comment | homedir | shell         |
+----+---------+----------+------+------+---------+---------+---------------+
| 41 | benben  | NULL     | 1002 | NULL | NULL    | NULL    | /sbin/nologin |
| 42 | benben2 | NULL     | 1002 | NULL | NULL    | NULL    | /sbin/nologin |
| 43 | benben3 | NULL     | 1003 | NULL | NULL    | NULL    | /sbin/nologin |
+----+---------+----------+------+------+---------+---------+---------------+
3 rows in set (0.00 sec)#2.修改表记录
mysql> update tarena.user set comment=NULL where id <= 10 ;
Query OK, 10 rows affected (0.09 sec)
Rows matched: 10  Changed: 10  Warnings: 0
//修改后查看
mysql> select  name , comment from tarena.user where id <= 10 ;
+----------+---------+
| name     | comment |
+----------+---------+
| root     | NULL    |
| bin      | NULL    |
| daemon   | NULL    |
...
| shutdown | NULL    |
| halt     | NULL    |
| mail     | NULL    |
| operator | NULL    |
+----------+---------+
10 rows in set (0.00 sec) [root@localhost ~]#
//修改前查看
mysql> select name , homedir  from tarena.user;
+------------------+--------------------+
| name             | homedir            |
+------------------+--------------------+
| root             | /root              |
| bin              | /bin               |
| daemon           | /sbin              |
| adm              | /var/adm           |
...
| plj              | /home/plj          |
| apache           | /usr/share/httpd   |
| mysql            | /var/lib/mysql     |
| bob              | NULL               |
| jerrya           | NULL               |
| jingyaya         | /home/jingyaya     |
| benben           | NULL               |
| benben2          | NULL               |
| benben3          | NULL               |
| mysql.infoschema | NULL               |
| mysql.session    | NULL               |
| mysql.sys        | NULL               |
| root             | NULL               |
+------------------+--------------------+
36 rows in set (0.00 sec)
//不加条件批量修改
mysql> update  tarena.user set homedir="/student" ;
Query OK, 36 rows affected (0.09 sec)
Rows matched: 36  Changed: 36  Warnings: 0
//修改后查看
mysql> select name , homedir  from tarena.user;
+------------------+----------+
| name             | homedir  |
+------------------+----------+
| root             | /student |
| bin              | /student |
| daemon           | /student |
| adm              | /student |
| lp               | /student |
| sync             | /student |
| shutdown         | /student |
| halt             | /student |
...
| mysql.sys        | /student |
| root             | /student |
+------------------+----------+
36 rows in set (0.00 sec)
#3.删除表记录
//仅删除与条件匹配的行
mysql> delete from tarena.user where id <= 10 ;
Query OK, 10 rows affected (0.06 sec)
//查不到符合条件的记录了
mysql> select  * from tarena.user where id <= 10 ;
Empty set (0.00 sec)

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

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

相关文章

2023-9-12 完全背包问题

题目链接&#xff1a;完全背包问题 初版(时间复杂度拉满) #include <iostream> #include <algorithm>using namespace std;const int N 1010;int n, m; int v[N], w[N]; int f[N][N];int main() {cin >> n >> m;for(int i 1; i < n; i ) cin >…

预防Dos攻击

Dos----拒绝服务攻击&#xff0c;一般是构造特殊的输入&#xff0c;使得后台的处理耗时远超正常水平&#xff0c;随着请求越来越多&#xff0c;后台服务越发疲于奔命&#xff0c;最后因资源耗尽&#xff0c;无法再接受新的请求&#xff0c;最终造成拒绝服务的效果。 特殊输入例…

欧洲汽车制造商押注电力合成燃料 | 2023中国可持续燃料峰会

欧洲几家汽车制造商表示&#xff0c;所谓的电力合成燃料(e-fuels&#xff0c;利用可再生电力合成的化石燃料&#xff0c;又称电子燃料)将在欧洲汽车行业的未来发挥关键作用&#xff0c;它们相信&#xff0c;布鲁塞尔方面在替代燃料问题上的让步&#xff0c;将使它们能够在未来1…

VoxWeekly|The Sandbox 生态周报|20230904

欢迎来到由 The Sandbox 发布的《VoxWeekly》。我们会在每周发布&#xff0c;对上一周 The Sandbox 生态系统所发生的事情进行总结。 如果你喜欢我们内容&#xff0c;欢迎与朋友和家人分享。请订阅我们的 Medium 、关注我们的 Twitter&#xff0c;并加入 Discord 社区&#xf…

Python - PyQt6、QDesigner、pyuic5-tool 安装使用

Python 开发可视化界面可以使用原生的 tkinter&#xff0c;但是原生框架使用起来颇为不方便&#xff0c;所以最流行的还是QT UI框架&#xff0c;QT是使用C语言开发&#xff0c;Python 想使用需要对其进行封装&#xff0c;所以就出现了PyQt框架&#xff0c;这个框架使用极其方便…

u盘制成系统盘之后如何让恢复普通盘

U盘装完pe后怎么还原成普通U盘 1.插入U盘&#xff0c;按WindowsR 输入diskpart 2.输入“list disk”回车&#xff0c;查看U盘代号&#xff0c;例如下图里我的U盘代号是磁盘1&#xff08;你的不一定是1&#xff0c;一定要分清楚&#xff09; 3.输入“select disk 2”选中U盘磁…

Camunda 7.x 系列【55】运行时指标

有道无术,术尚可求,有术无道,止于术。 本系列Spring Boot 版本 2.7.9 本系列Camunda 版本 7.19.0 源码地址:https://gitee.com/pearl-organization/camunda-study-demo 文章目录 1. 概述2. 数据表3. 内置指标4. 配置4.1 指标记录器4.2 记录方标识符4.3 禁用记录器5. 查询…

学习day59

昨天学了插槽&#xff0c;但是没有即笔记了 今天的是vuex 总体来说&#xff0c;vuex就是一个共享单车&#xff0c;每个人都可以使用他&#xff0c;也可也对他进行反馈。即把一个数据列为vuex&#xff0c;然后每个组件可以使用这个对象&#xff0c;也可也反过来反馈他 这一个设…

vim的使用介绍以及命令大全

懒羊羊感谢大家的关注和三连支持~ 目录 前言 一、vim的使用介绍 二、命令大全 1.命令模式 &#xff08;1&#xff09;复制&#xff08;配合粘贴命令p使用&#xff09; &#xff08;2&#xff09;剪切 &#xff08;3&#xff09;粘贴 &#xff08;4&#xff09;删除 …

centos安装flink,通过windows访问webui

1. 安装flink 1.1. flink的下载 通过flink官网下载flink安装包 https://flink.apache.org/ 下载安装包 1.2 flink在centos上的安装 将下载好的flink-1.17.1-bin-scala_2.12.tgz安装包放到centos目录下 解压文件&#xff1a; [rootlocalhost ~]# tar -zxvf flink-1.17.…

数据分享|WEKA信贷违约预测报告:用决策树、随机森林、支持向量机SVM、朴素贝叶斯、逻辑回归...

完整报告链接&#xff1a;http://tecdat.cn/?p28579 作者&#xff1a;Nuo Liu 数据变得越来越重要&#xff0c;其核心应用“预测”也成为互联网行业以及产业变革的重要力量。近年来网络 P2P借贷发展形势迅猛&#xff0c;一方面普通用户可以更加灵活、便快捷地获得中小额度的贷…

C# ppt文件转换为pdf文件

使用第三方插件 Office 实现转换 1.Application方式转换 /// <summary>/// Microsoft.Office.Interop.PowerPoint/// 使用第三方软件 office/// </summary>/// <param name"pptPath">需要转换的ppt文件路径</param>/// <param name"…

【广州华锐互动】云智慧工厂数字孪生:打造高效、灵活的智能制造新模式

随着工业4.0的到来&#xff0c;数字孪生技术逐渐成为实现工业生产智能化升级的关键。云智慧工厂数字孪生利用先进的数字化技术&#xff0c;创建物理实体的虚拟模型&#xff0c;实现对生产过程的实时监控、优化与管理。 云智慧工厂数字孪生是指通过数字孪生技术&#xff0c;构建…

thinkphp5.0 composer 安装oss提示php版本异常

场景复现&#xff1a; 本地 phpstudy 环境&#xff0c;安装的有7.0到7.3三个版本&#xff0c;首先确认composer已经安装 composer安装阿里云oss的命令为&#xff1a;composer require aliyuncs/oss-sdk-php 运行报错&#xff1a; Problem 1- Root composer.json requires php…

leetcode 88:合并两个有序数组 。 双指针解法

题目 算法 双指针 code var merge function(nums1, m, nums2, n) {// 其实就是一个nums1数组从后向前的降序重排&#xff0c;从最后开始&#xff0c;比较nums1有效位置和nums2当前位置数的大小&#xff0c;依次填入&#xff0c;nums2最后若有剩余&#xff0c;则再多一步从后…

比较 JavaScript 中的事物 [详细解释]

曾经被困在想知道你是否需要...... a == b 或者 a === b 或者 isLooselyEqual(a, b) 或者 7.2.2 IsArray(参数) 抽象操作 IsArray 采用参数 argument。调用时它执行以下步骤: 1. 如果Type(参数)不是 Object,则返回 false。 2. 如果参数是一个Array 奇异对象,则返回…

每日一题 102二叉树的层序遍历

题目 给你二叉树的根节点 root &#xff0c;返回其节点值的 层序遍历 。 &#xff08;即逐层地&#xff0c;从左到右访问所有节点&#xff09;。 示例 1&#xff1a; 输入&#xff1a;root [3,9,20,null,null,15,7] 输出&#xff1a;[[3],[9,20],[15,7]] 示例 2&#xff1a…

【第21例】IPD 体系进阶:什么是产品包?什么是需求包?

目录 目录 内容简介 内容详解 CSDN学院 作者简介 目录 【第01例】CDCP | 概念决策评审点

AI绘画:StableDiffusion实操教程-完美世界-魔女(附高清图下载)

前段时间我分享了StableDiffusion的非常完整的教程&#xff1a;“AI绘画&#xff1a;Stable Diffusion 终极宝典&#xff1a;从入门到精通 ” 尽管如此&#xff0c;还有读者反馈说&#xff0c;尽管已经成功安装&#xff0c;但生成的图片与我展示的结果相去甚远。真实感和质感之…

基于Matlab卡尔曼滤波的IMU和GPS组合导航数据融合(附上源码+数据)

本文介绍了如何使用Matlab实现惯性测量单元&#xff08;IMU&#xff09;和全球定位系统&#xff08;GPS&#xff09;组合导航数据融合的卡尔曼滤波算法。通过将IMU和GPS的测量数据进行融合&#xff0c;可以提高导航系统的精度和鲁棒性。我们将详细介绍卡尔曼滤波的原理和实现步…