SQL自学,mysql从入门到精通 --- 第 15天,数据导入、导出

数据的导入、导出

sql 复制代码
-- 查看当前设置的目录路径,限制从数据库服务器读取和写入文件的操作只能在指定的目录中进行,在安全性和文件操作限制方面具有重要意义。

root@mysqldb 14:19:  [(none)]> SHOW VARIABLES LIKE "secure_file_priv";
+------------------+-------------------+
| Variable_name    | Value             |
+------------------+-------------------+
| secure_file_priv | /data/mysql/data/ |
+------------------+-------------------+
1 row in set (0.02 sec)
sql 复制代码
#配置文件
[root@mrloam ~]# grep secure_file_priv /etc/my.cnf 
secure_file_priv = /data/mysql/data

1.数据导入

sql 复制代码
root@mysqldb 14:40:  [(none)]> CREATE TABLE db3.user (
    -> name VARCHAR(30),
    -> password VARCHAR(8),
    -> uid INT,
    -> gid INT,
    -> comment VARCHAR(150),
    -> homedir CHAR(80),
    -> shell CHAR(60)
    -> );
Query OK, 0 rows affected (0.01 sec)

root@mysqldb 14:40:  [(none)]> DESC db3.user;
+----------+--------------+------+-----+---------+-------+
| Field    | Type         | Null | Key | Default | Extra |
+----------+--------------+------+-----+---------+-------+
| name     | varchar(30)  | YES  |     | NULL    |       |
| password | varchar(8)   | YES  |     | NULL    |       |
| uid      | int(11)      | YES  |     | NULL    |       |
| gid      | int(11)      | YES  |     | NULL    |       |
| comment  | varchar(150) | YES  |     | NULL    |       |
| homedir  | char(80)     | YES  |     | NULL    |       |
| shell    | char(60)     | YES  |     | NULL    |       |
+----------+--------------+------+-----+---------+-------+
7 rows in set (0.01 sec)

root@mysqldb 14:40:  [(none)]> SELECT * FROM db3.user;
Empty set (0.00 sec)
sql 复制代码
-- 准备数据文件
root@mysqldb 14:41:  [(none)]> system cp /etc/passwd /data/mysql/data/
root@mysqldb 14:42:  [(none)]> system ls /data/mysql/data/
auto.cnf	 client-key.pem  ibdata1      mysql		  public_key.pem	    sys
ca-key.pem	 d1		 ib_logfile0  passwd		  server-cert.pem
ca.pem		 db3		 ib_logfile1  performance_schema  server-key.pem
client-cert.pem  ib_buffer_pool  ibtmp1       private_key.pem	  sql_self_learning_skills

-- 导入数据
root@mysqldb 14:43:  [(none)]> load data infile "/data/mysql/data/passwd" into table db3.user fields terminated by ":" lines terminated by "\n";
Query OK, 21 rows affected (0.00 sec)
Records: 21  Deleted: 0  Skipped: 0  Warnings: 0

root@mysqldb 14:45:  [(none)]> alter table db3.user  add  id  int  primary key  auto_increment first;
Query OK, 0 rows affected (0.16 sec)
Records: 0  Duplicates: 0  Warnings: 0

root@mysqldb 14:46:  [(none)]> select  * from db3.user ;
+----+-----------------+----------+------+------+----------------------------+--------------------+----------------+
| 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  |
|  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 |
|  8 | halt            | x        |    7 |    0 | halt                       | /sbin              | /sbin/halt     |
|  9 | mail            | x        |    8 |   12 | mail                       | /var/spool/mail    | /sbin/nologin  |
| 10 | operator        | x        |   11 |    0 | operator                   | /root              | /sbin/nologin  |
| 11 | games           | x        |   12 |  100 | games                      | /usr/games         | /sbin/nologin  |
| 12 | ftp             | x        |   14 |   50 | FTP User                   | /var/ftp           | /sbin/nologin  |
| 13 | nobody          | x        |   99 |   99 | Nobody                     | /                  | /sbin/nologin  |
| 14 | systemd-network | x        |  192 |  192 | systemd Network Management | /                  | /sbin/nologin  |
| 15 | dbus            | x        |   81 |   81 | System message bus         | /                  | /sbin/nologin  |
| 16 | polkitd         | x        |  999 |  998 | User for polkitd           | /                  | /sbin/nologin  |
| 17 | sshd            | x        |   74 |   74 | Privilege-separated SSH    | /var/empty/sshd    | /sbin/nologin  |
| 18 | postfix         | x        |   89 |   89 |                            | /var/spool/postfix | /sbin/nologin  |
| 19 | chrony          | x        |  998 |  996 |                            | /var/lib/chrony    | /sbin/nologin  |
| 20 | mysql           | x        | 1000 | 1000 |                            | /home/mysql        | /sbin/nologin  |
| 21 | test            | x        | 1001 | 1001 |                            | /home/test         | /bin/bash      |
+----+-----------------+----------+------+------+----------------------------+--------------------+----------------+
21 rows in set (0.00 sec)

2.数据导出

把表记录存储到系统文件里

批量处理数据

命令格式:

sql查询命令 into outfile "目录/文件名"

fields terminated by "列间隔符号" lines terminated by "行间隔符号"\]; ```sql -- 数据导出 root@mysqldb 14:47: [(none)]> select * from db3.user where id <= 10 into outfile "/data/mysql/data/a.txt"; Query OK, 10 rows affected (0.00 sec) root@mysqldb 14:51: [(none)]> select name ,shell from db3.user into outfile "/data/mysql/data/b.txt" fields terminated by "###"; Query OK, 21 rows affected (0.00 sec) root@mysqldb 14:51: [(none)]> select name , shell , uid from db3.user where id <= 3 -> into outfile "/data/mysql/data/c.txt" -> fields terminated by "????" lines terminated by "###" ; Query OK, 3 rows affected (0.00 sec) ``` ```sql #查看 [root@mrloam ~]# cat /data/mysql/data/a.txt 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 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 8 halt x 7 0 halt /sbin /sbin/halt 9 mail x 8 12 mail /var/spool/mail /sbin/nologin 10 operator x 11 0 operator /root /sbin/nologin [root@mrloam ~]# cat /data/mysql/data/b.txt root###/bin/bash bin###/sbin/nologin daemon###/sbin/nologin adm###/sbin/nologin lp###/sbin/nologin sync###/bin/sync shutdown###/sbin/shutdown halt###/sbin/halt mail###/sbin/nologin operator###/sbin/nologin games###/sbin/nologin ftp###/sbin/nologin nobody###/sbin/nologin systemd-network###/sbin/nologin dbus###/sbin/nologin polkitd###/sbin/nologin sshd###/sbin/nologin postfix###/sbin/nologin chrony###/sbin/nologin mysql###/sbin/nologin test###/bin/bash [root@mrloam ~]# cat /data/mysql/data/c.txt root????/bin/bash????0###bin????/sbin/nologin????1###daemon????/sbin/nologin????2### ``` ## 3.管理表记录 ```sql root@mysqldb 15:06: [(none)]> insert into db3.user -> values -> (22,"tom","x",2001,2001,"test user","/home/tom","/bin/bash"), -> (23,"tom","x",2001,2001,"test user","/home/tom","/bin/bash"), -> (24,"tom","x",2001,2001,"test user","/home/tom","/bin/bash"); Query OK, 3 rows affected (0.00 sec) Records: 3 Duplicates: 0 Warnings: 0 root@mysqldb 14:59: [(none)]> insert into db3.user(name,uid,shell) values("bob",3000,"/bin/bash"); Query OK, 1 row affected (0.00 sec) root@mysqldb 15:00: [(none)]> insert into db3.user(name,uid,shell) -> values -> ("bobf",3000,"/bin/bash"),("bobc",3003,"/bin/bash"),("bobA",3002,"/bin/bash"); Query OK, 3 rows affected (0.00 sec) Records: 3 Duplicates: 0 Warnings: 0 ``` ```sql root@mysqldb 15:01: [(none)]> select * from db3.user where shell = "/sbin/nologin" ; +----+-----------------+----------+------+------+----------------------------+--------------------+------------- | id | name | password | uid | gid | comment | homedir | shell +----+-----------------+----------+------+------+----------------------------+--------------------+------------- | 2 | bin | x | 1 | 1 | bin | /bin | /sbin/nologi | 3 | daemon | x | 2 | 2 | daemon | /sbin | /sbin/nologi | 4 | adm | x | 3 | 4 | adm | /var/adm | /sbin/nologi | 5 | lp | x | 4 | 7 | lp | /var/spool/lpd | /sbin/nologi | 9 | mail | x | 8 | 12 | mail | /var/spool/mail | /sbin/nologi | 10 | operator | x | 11 | 0 | operator | /root | /sbin/nologi | 11 | games | x | 12 | 100 | games | /usr/games | /sbin/nologi | 12 | ftp | x | 14 | 50 | FTP User | /var/ftp | /sbin/nologi | 13 | nobody | x | 99 | 99 | Nobody | / | /sbin/nologi | 14 | systemd-network | x | 192 | 192 | systemd Network Management | / | /sbin/nologi | 15 | dbus | x | 81 | 81 | System message bus | / | /sbin/nologi | 16 | polkitd | x | 999 | 998 | User for polkitd | / | /sbin/nologi | 17 | sshd | x | 74 | 74 | Privilege-separated SSH | /var/empty/sshd | /sbin/nologi | 18 | postfix | x | 89 | 89 | | /var/spool/postfix | /sbin/nologi | 19 | chrony | x | 998 | 996 | | /var/lib/chrony | /sbin/nologi | 20 | mysql | x | 1000 | 1000 | | /home/mysql | /sbin/nologi +----+-----------------+----------+------+------+----------------------------+--------------------+------------- 16 rows in set (0.00 sec) root@mysqldb 15:01: [(none)]> select name , shell from db3.user where shell = "/sbin/nologin" ; +-----------------+---------------+ | name | shell | +-----------------+---------------+ | bin | /sbin/nologin | | daemon | /sbin/nologin | | adm | /sbin/nologin | | lp | /sbin/nologin | | mail | /sbin/nologin | | operator | /sbin/nologin | | games | /sbin/nologin | | ftp | /sbin/nologin | | nobody | /sbin/nologin | | systemd-network | /sbin/nologin | | dbus | /sbin/nologin | | polkitd | /sbin/nologin | | sshd | /sbin/nologin | | postfix | /sbin/nologin | | chrony | /sbin/nologin | | mysql | /sbin/nologin | +-----------------+---------------+ 16 rows in set (0.00 sec) ``` ```sql root@mysqldb 15:01: [(none)]> update db3.user set password="A" , comment="student" ; Query OK, 28 rows affected (0.00 sec) Rows matched: 28 Changed: 28 Warnings: 0 root@mysqldb 15:02: [(none)]> update db3.user set password="x" , comment="root" where name="root"; Query OK, 1 row affected (0.00 sec) Rows matched: 1 Changed: 1 Warnings: 0 ``` ```sql root@mysqldb 15:02: [(none)]> delete from db3.user where id >= 21 ; Query OK, 8 rows affected (0.00 sec) ``` ```sql root@mysqldb 15:07: [(none)]> select name , uid , gid from db3.user where uid != gid ; +----------+------+------+ | name | uid | gid | +----------+------+------+ | adm | 3 | 4 | | lp | 4 | 7 | | sync | 5 | 0 | | shutdown | 6 | 0 | | halt | 7 | 0 | | mail | 8 | 12 | | operator | 11 | 0 | | games | 12 | 100 | | ftp | 14 | 50 | | polkitd | 999 | 998 | | chrony | 998 | 996 | +----------+------+------+ 11 rows in set (0.00 sec) root@mysqldb 15:08: [(none)]> select name , uid , gid from db3.user where uid != gid ; +----------+------+------+ | name | uid | gid | +----------+------+------+ | adm | 3 | 4 | | lp | 4 | 7 | | sync | 5 | 0 | | shutdown | 6 | 0 | | halt | 7 | 0 | | mail | 8 | 12 | | operator | 11 | 0 | | games | 12 | 100 | | ftp | 14 | 50 | | polkitd | 999 | 998 | | chrony | 998 | 996 | +----------+------+------+ 11 rows in set (0.00 sec) root@mysqldb 15:08: [(none)]> select * from db3.user where id <= 5 ; +----+--------+----------+------+------+---------+----------------+---------------+ | id | name | password | uid | gid | comment | homedir | shell | +----+--------+----------+------+------+---------+----------------+---------------+ | 1 | root | x | 0 | 0 | root | /root | /bin/bash | | 2 | bin | A | 1 | 1 | student | /bin | /sbin/nologin | | 3 | daemon | A | 2 | 2 | student | /sbin | /sbin/nologin | | 4 | adm | A | 3 | 4 | student | /var/adm | /sbin/nologin | | 5 | lp | A | 4 | 7 | student | /var/spool/lpd | /sbin/nologin | +----+--------+----------+------+------+---------+----------------+---------------+ 5 rows in set (0.00 sec) root@mysqldb 15:09: [(none)]> select name , shell from db3.user where shell != "/bin/bash" ; +-----------------+----------------+ | name | shell | +-----------------+----------------+ | bin | /sbin/nologin | | daemon | /sbin/nologin | | adm | /sbin/nologin | | lp | /sbin/nologin | | sync | /bin/sync | | shutdown | /sbin/shutdown | | halt | /sbin/halt | | mail | /sbin/nologin | | operator | /sbin/nologin | | games | /sbin/nologin | | ftp | /sbin/nologin | | nobody | /sbin/nologin | | systemd-network | /sbin/nologin | | dbus | /sbin/nologin | | polkitd | /sbin/nologin | | sshd | /sbin/nologin | | postfix | /sbin/nologin | | chrony | /sbin/nologin | | mysql | /sbin/nologin | +-----------------+----------------+ 19 rows in set (0.00 sec) root@mysqldb 15:09: [(none)]> select name , uid , shell from db3.user where shell is not null ; +-----------------+------+----------------+ | name | uid | shell | +-----------------+------+----------------+ | root | 0 | /bin/bash | | bin | 1 | /sbin/nologin | | daemon | 2 | /sbin/nologin | | adm | 3 | /sbin/nologin | | lp | 4 | /sbin/nologin | | sync | 5 | /bin/sync | | shutdown | 6 | /sbin/shutdown | | halt | 7 | /sbin/halt | | mail | 8 | /sbin/nologin | | operator | 11 | /sbin/nologin | | games | 12 | /sbin/nologin | | ftp | 14 | /sbin/nologin | | nobody | 99 | /sbin/nologin | | systemd-network | 192 | /sbin/nologin | | dbus | 81 | /sbin/nologin | | polkitd | 999 | /sbin/nologin | | sshd | 74 | /sbin/nologin | | postfix | 89 | /sbin/nologin | | chrony | 998 | /sbin/nologin | | mysql | 1000 | /sbin/nologin | +-----------------+------+----------------+ 20 rows in set (0.00 sec) root@mysqldb 15:09: [(none)]> select name , uid , shell from db3.user where shell is null ; Empty set (0.00 sec) ``` ```sql root@mysqldb 15:10: [(none)]> select name , uid from db3.user where uid in (3 ,6,9,11); +----------+------+ | name | uid | +----------+------+ | adm | 3 | | shutdown | 6 | | operator | 11 | +----------+------+ 3 rows in set (0.00 sec) root@mysqldb 15:10: [(none)]> select shell from db3.user where shell not in ("/bin/bash","/sbin/nologin"); +----------------+ | shell | +----------------+ | /bin/sync | | /sbin/shutdown | | /sbin/halt | +----------------+ 3 rows in set (0.00 sec) ``` ```sql root@mysqldb 15:10: [(none)]> select name , uid from db3.user -> where name = "sync" or name = "apache" or uid=3; +------+------+ | name | uid | +------+------+ | adm | 3 | | sync | 5 | +------+------+ 2 rows in set (0.00 sec) root@mysqldb 15:11: [(none)]> select * from db3.user where id >= 10 and id <= 20 ; +----+-----------------+----------+------+------+---------+--------------------+---------------+ | id | name | password | uid | gid | comment | homedir | shell | +----+-----------------+----------+------+------+---------+--------------------+---------------+ | 10 | operator | A | 11 | 0 | student | /root | /sbin/nologin | | 11 | games | A | 12 | 100 | student | /usr/games | /sbin/nologin | | 12 | ftp | A | 14 | 50 | student | /var/ftp | /sbin/nologin | | 13 | nobody | A | 99 | 99 | student | / | /sbin/nologin | | 14 | systemd-network | A | 192 | 192 | student | / | /sbin/nologin | | 15 | dbus | A | 81 | 81 | student | / | /sbin/nologin | | 16 | polkitd | A | 999 | 998 | student | / | /sbin/nologin | | 17 | sshd | A | 74 | 74 | student | /var/empty/sshd | /sbin/nologin | | 18 | postfix | A | 89 | 89 | student | /var/spool/postfix | /sbin/nologin | | 19 | chrony | A | 998 | 996 | student | /var/lib/chrony | /sbin/nologin | | 20 | mysql | A | 1000 | 1000 | student | /home/mysql | /sbin/nologin | +----+-----------------+----------+------+------+---------+--------------------+---------------+ 11 rows in set (0.00 sec) -- || 也可以表示或 root@mysqldb 15:11: [(none)]> select name , uid from db3.user -> where name = "sync" || name = "apache" || uid=3; +------+------+ | name | uid | +------+------+ | adm | 3 | | sync | 5 | +------+------+ 2 rows in set (0.00 sec) -- && 表示and root@mysqldb 15:11: [(none)]> select * from db3.user where id >= 10 && id <= 20 ; +----+-----------------+----------+------+------+---------+--------------------+---------------+ | id | name | password | uid | gid | comment | homedir | shell | +----+-----------------+----------+------+------+---------+--------------------+---------------+ | 10 | operator | A | 11 | 0 | student | /root | /sbin/nologin | | 11 | games | A | 12 | 100 | student | /usr/games | /sbin/nologin | | 12 | ftp | A | 14 | 50 | student | /var/ftp | /sbin/nologin | | 13 | nobody | A | 99 | 99 | student | / | /sbin/nologin | | 14 | systemd-network | A | 192 | 192 | student | / | /sbin/nologin | | 15 | dbus | A | 81 | 81 | student | / | /sbin/nologin | | 16 | polkitd | A | 999 | 998 | student | / | /sbin/nologin | | 17 | sshd | A | 74 | 74 | student | /var/empty/sshd | /sbin/nologin | | 18 | postfix | A | 89 | 89 | student | /var/spool/postfix | /sbin/nologin | | 19 | chrony | A | 998 | 996 | student | /var/lib/chrony | /sbin/nologin | | 20 | mysql | A | 1000 | 1000 | student | /home/mysql | /sbin/nologin | +----+-----------------+----------+------+------+---------+--------------------+---------------+ 11 rows in set (0.00 sec) ``` ```sql -- 查询的优先级 root@mysqldb 15:15: [(none)]> select name , uid from db3.user where uid = 1 or uid = 0 and name = "root" ; +------+------+ | name | uid | +------+------+ | root | 0 | | bin | 1 | +------+------+ 2 rows in set (0.00 sec) root@mysqldb 15:15: [(none)]> root@mysqldb 15:16: [(none)]> root@mysqldb 15:16: [(none)]> select name , uid from db3.user where ( uid = 1 or uid = 0 ) and name = "root"; +------+------+ | name | uid | +------+------+ | root | 0 | +------+------+ 1 row in set (0.00 sec) ``` 通配符 _ % ```sql root@mysqldb 15:16: [(none)]> select name from db3.user where name like '___'; +------+ | name | +------+ | bin | | adm | | ftp | +------+ 3 rows in set (0.00 sec) root@mysqldb 15:29: [(none)]> select name from db3.user where name like '____'; +------+ | name | +------+ | root | | sync | | halt | | mail | | dbus | | sshd | +------+ 6 rows in set (0.00 sec) root@mysqldb 15:29: [(none)]> select name from db3.user where name like '%a%'; +----------+ | name | +----------+ | daemon | | adm | | halt | | mail | | operator | | games | +----------+ 6 rows in set (0.00 sec) root@mysqldb 15:29: [(none)]> select name from db3.user where name like 'a%'; +------+ | name | +------+ | adm | +------+ 1 row in set (0.00 sec) root@mysqldb 15:29: [(none)]> select name from db3.user where name like '___%___'; +-----------------+ | name | +-----------------+ | daemon | | shutdown | | operator | | nobody | | systemd-network | | polkitd | | postfix | | chrony | +-----------------+ 8 rows in set (0.00 sec) ``` 正则匹配 regexp where 字段名 regexp '正则表达式' \^ $ . \* \[\] \| ^:匹配字符串的开头 $:匹配字符串的结尾 .:匹配任意字符(除了换行符) *:匹配前面的字符零次或多次 []:匹配方括号中的任意一个字符 |:表示"或"的关系,匹配多个选项中的一个 ​ ```sql root@mysqldb 15:29: [(none)]> insert into db3.user(name) values ("yaya9"),("y7aya"),("ya6ya"),("3yaya"); Query OK, 4 rows affected (0.00 sec) Records: 4 Duplicates: 0 Warnings: 0 root@mysqldb 15:31: [(none)]> select name from db3.user where name regexp '[0-9]'; +-------+ | name | +-------+ | yaya9 | | y7aya | | ya6ya | | 3yaya | +-------+ 4 rows in set (0.00 sec) root@mysqldb 15:31: [(none)]> select name from db3.user where name regexp '^[0-9]'; +-------+ | name | +-------+ | 3yaya | +-------+ 1 row in set (0.00 sec) root@mysqldb 15:31: [(none)]> select name , uid from db3.user where uid regexp '..' ; +-----------------+------+ | name | uid | +-----------------+------+ | operator | 11 | | games | 12 | | ftp | 14 | | nobody | 99 | | systemd-network | 192 | | dbus | 81 | | polkitd | 999 | | sshd | 74 | | postfix | 89 | | chrony | 998 | | mysql | 1000 | +-----------------+------+ 11 rows in set (0.00 sec) root@mysqldb 15:31: [(none)]> select name , uid from db3.user where uid regexp '^..$' ; +----------+------+ | name | uid | +----------+------+ | operator | 11 | | games | 12 | | ftp | 14 | | nobody | 99 | | dbus | 81 | | sshd | 74 | | postfix | 89 | +----------+------+ 7 rows in set (0.00 sec) root@mysqldb 15:31: [(none)]> select name , uid from db3.user where name regexp '^a.*t$' ; Empty set (0.00 sec) root@mysqldb 15:32: [(none)]> select name , uid from db3.user where name regexp '^r|t$' ; +------+------+ | name | uid | +------+------+ | root | 0 | | halt | 7 | +------+------+ 2 rows in set (0.00 sec) ``` ±\*/% ```sql root@mysqldb 15:36: [(none)]> update db3.user set uid=uid+1 where id <= 5; Query OK, 5 rows affected (0.00 sec) Rows matched: 5 Changed: 5 Warnings: 0 root@mysqldb 15:38: [(none)]> update db3.user set uid=uid-1 where id <= 5; Query OK, 5 rows affected (0.00 sec) Rows matched: 5 Changed: 5 Warnings: 0 root@mysqldb 15:38: [(none)]> alter table db3.user add age tinyint unsigned not null default 19 after name ; Query OK, 0 rows affected (0.05 sec) Records: 0 Duplicates: 0 Warnings: 0 root@mysqldb 15:38: [(none)]> select name , 2020 - age s_year from db3.user where name = "root" ; +------+--------+ | name | s_year | +------+--------+ | root | 2001 | +------+--------+ 1 row in set (0.00 sec) root@mysqldb 15:38: [(none)]> select name , 2020 - age s_year from db3.user ; +-----------------+--------+ | name | s_year | +-----------------+--------+ | root | 2001 | | bin | 2001 | | daemon | 2001 | | adm | 2001 | | lp | 2001 | | sync | 2001 | | shutdown | 2001 | | halt | 2001 | | mail | 2001 | | operator | 2001 | | games | 2001 | | ftp | 2001 | | nobody | 2001 | | systemd-network | 2001 | | dbus | 2001 | | polkitd | 2001 | | sshd | 2001 | | postfix | 2001 | | chrony | 2001 | | mysql | 2001 | | yaya9 | 2001 | | y7aya | 2001 | | ya6ya | 2001 | | 3yaya | 2001 | +-----------------+--------+ 24 rows in set (0.00 sec) root@mysqldb 15:38: [(none)]> select name,uid,gid ,(uid+gid)/2 pjf from db3.user where name="games"; +-------+------+------+---------+ | name | uid | gid | pjf | +-------+------+------+---------+ | games | 12 | 100 | 56.0000 | +-------+------+------+---------+ 1 row in set (0.00 sec) root@mysqldb 15:39: [(none)]> select * from db3.user where id % 2 = 0 ; +----+-----------------+-----+----------+------+------+---------+--------------------+---------------+ | id | name | age | password | uid | gid | comment | homedir | shell | +----+-----------------+-----+----------+------+------+---------+--------------------+---------------+ | 2 | bin | 19 | A | 1 | 1 | student | /bin | /sbin/nologin | | 4 | adm | 19 | A | 3 | 4 | student | /var/adm | /sbin/nologin | | 6 | sync | 19 | A | 5 | 0 | student | /sbin | /bin/sync | | 8 | halt | 19 | A | 7 | 0 | student | /sbin | /sbin/halt | | 10 | operator | 19 | A | 11 | 0 | student | /root | /sbin/nologin | | 12 | ftp | 19 | A | 14 | 50 | student | /var/ftp | /sbin/nologin | | 14 | systemd-network | 19 | A | 192 | 192 | student | / | /sbin/nologin | | 16 | polkitd | 19 | A | 999 | 998 | student | / | /sbin/nologin | | 18 | postfix | 19 | A | 89 | 89 | student | /var/spool/postfix | /sbin/nologin | | 20 | mysql | 19 | A | 1000 | 1000 | student | /home/mysql | /sbin/nologin | | 26 | y7aya | 19 | NULL | NULL | NULL | NULL | NULL | NULL | | 28 | 3yaya | 19 | NULL | NULL | NULL | NULL | NULL | NULL | +----+-----------------+-----+----------+------+------+---------+--------------------+---------------+ 12 rows in set (0.00 sec) root@mysqldb 15:39: [(none)]> select name , uid from db3.user where uid % 2 != 0 ; +----------+------+ | name | uid | +----------+------+ | bin | 1 | | adm | 3 | | sync | 5 | | halt | 7 | | operator | 11 | | nobody | 99 | | dbus | 81 | | polkitd | 999 | | postfix | 89 | +----------+------+ 9 rows in set (0.00 sec) ``` 聚集函数 求和 sum(字段名) 求平均数 avg(字段名) 最大值 max(字段名) 最小值 min(字段名) 个数 count(字段名) ```sql root@mysqldb 15:39: [(none)]> select max(uid) from db3.user ; +----------+ | max(uid) | +----------+ | 1000 | +----------+ 1 row in set (0.00 sec) root@mysqldb 15:41: [(none)]> select max(uid) from db3.user where id <= 10; +----------+ | max(uid) | +----------+ | 11 | +----------+ 1 row in set (0.00 sec) root@mysqldb 15:41: [(none)]> select min(uid) from db3.user where id <= 10; +----------+ | min(uid) | +----------+ | 0 | +----------+ 1 row in set (0.00 sec) root@mysqldb 15:41: [(none)]> select avg(uid) from db3.user; +----------+ | avg(uid) | +----------+ | 180.2500 | +----------+ 1 row in set (0.00 sec) root@mysqldb 15:41: [(none)]> select count(name) from db3.user where shell!="/bin/bash"; +-------------+ | count(name) | +-------------+ | 19 | +-------------+ 1 row in set (0.00 sec) root@mysqldb 15:41: [(none)]> select count(*) from db3.user; +----------+ | count(*) | +----------+ | 24 | +----------+ 1 row in set (0.00 sec) root@mysqldb 15:41: [(none)]> select min(uid) , max(gid) from db3.user; +----------+----------+ | min(uid) | max(gid) | +----------+----------+ | 0 | 1000 | +----------+----------+ 1 row in set (0.00 sec) root@mysqldb 15:41: [(none)]> select min(uid) zx , max(gid) zd from db3.user; +------+------+ | zx | zd | +------+------+ | 0 | 1000 | +------+------+ 1 row in set (0.00 sec) ``` 查询结果 排序 order by 字段名 asc\|desc ```sql root@mysqldb 15:41: [(none)]> select name , uid from db3.user where uid >=10 and uid <= 800 -> order by uid asc; +-----------------+------+ | name | uid | +-----------------+------+ | operator | 11 | | games | 12 | | ftp | 14 | | sshd | 74 | | dbus | 81 | | postfix | 89 | | nobody | 99 | | systemd-network | 192 | +-----------------+------+ 8 rows in set (0.00 sec) root@mysqldb 15:42: [(none)]> select name , uid from db3.user where uid >=10 and uid <= 800 -> order by uid desc; +-----------------+------+ | name | uid | +-----------------+------+ | systemd-network | 192 | | nobody | 99 | | postfix | 89 | | dbus | 81 | | sshd | 74 | | ftp | 14 | | games | 12 | | operator | 11 | +-----------------+------+ 8 rows in set (0.00 sec) ``` 查询结果分组 group by 字段名 root@mysqldb 15:43: [(none)]> select shell from db3.user where uid >= 10 group by shell; +---------------+ | shell | +---------------+ | /sbin/nologin | +---------------+ 1 row in set (0.00 sec) root@mysqldb 15:43: [(none)]> select shell from db3.user group by shell; +----------------+ | shell | +----------------+ | NULL | | /bin/bash | | /bin/sync | | /sbin/halt | | /sbin/nologin | | /sbin/shutdown | +----------------+ 6 rows in set (0.00 sec) distinct 去重显示 ```sql root@mysqldb 15:43: [(none)]> select shell from db3.user; +----------------+ | shell | +----------------+ | /bin/bash | | /sbin/nologin | | /sbin/nologin | | /sbin/nologin | | /sbin/nologin | | /bin/sync | | /sbin/shutdown | | /sbin/halt | | /sbin/nologin | | /sbin/nologin | | /sbin/nologin | | /sbin/nologin | | /sbin/nologin | | /sbin/nologin | | /sbin/nologin | | /sbin/nologin | | /sbin/nologin | | /sbin/nologin | | /sbin/nologin | | /sbin/nologin | | NULL | | NULL | | NULL | | NULL | +----------------+ 24 rows in set (0.00 sec) root@mysqldb 15:44: [(none)]> select distinct shell from db3.user ; +----------------+ | shell | +----------------+ | /bin/bash | | /sbin/nologin | | /bin/sync | | /sbin/shutdown | | /sbin/halt | | NULL | +----------------+ 6 rows in set (0.00 sec) root@mysqldb 15:44: [(none)]> select distinct gid from db3.user; +------+ | gid | +------+ | 0 | | 1 | | 2 | | 4 | | 7 | | 12 | | 100 | | 50 | | 99 | | 192 | | 81 | | 998 | | 74 | | 89 | | 996 | | 1000 | | NULL | +------+ 17 rows in set (0.00 sec) ``` 过滤查询结果 having 条件 ```sql root@mysqldb 15:44: [(none)]> select name from db3.user where shell != "/bin/bash" having name in ("sync","games"); +-------+ | name | +-------+ | sync | | games | +-------+ 2 rows in set (0.00 sec) root@mysqldb 15:45: [(none)]> select id , name from db3.user where id >= 10 having name is null ; Empty set (0.00 sec) root@mysqldb 15:45: [(none)]> select id , name from db3.user where id >= 10 and name is null ; Empty set (0.00 sec) ``` 限制查询结果显示行数 limit ```sql root@mysqldb 15:46: [(none)]> select name , uid , gid from db3.user where shell != "/bin/bash" limit 1; +------+------+------+ | name | uid | gid | +------+------+------+ | bin | 1 | 1 | +------+------+------+ 1 row in set (0.00 sec) root@mysqldb 15:46: [(none)]> select name , uid , gid from db3.user where shell != "/bin/bash" limit 3; +--------+------+------+ | name | uid | gid | +--------+------+------+ | bin | 1 | 1 | | daemon | 2 | 2 | | adm | 3 | 4 | +--------+------+------+ 3 rows in set (0.00 sec) ```

相关推荐
阿巴斯甜2 小时前
Android 报错:Zip file '/Users/lyy/develop/repoAndroidLapp/l-app-android-ble/app/bu
android
Kapaseker2 小时前
实战 Compose 中的 IntrinsicSize
android·kotlin
xq95273 小时前
Andorid Google 登录接入文档
android
黄林晴4 小时前
告别 Modifier 地狱,Compose 样式系统要变天了
android·android jetpack
冬奇Lab17 小时前
Android触摸事件分发、手势识别与输入优化实战
android·源码阅读
城东米粉儿20 小时前
Android MediaPlayer 笔记
android
Jony_20 小时前
Android 启动优化方案
android
阿巴斯甜20 小时前
Android studio 报错:Cause: error=86, Bad CPU type in executable
android
张小潇20 小时前
AOSP15 Input专题InputReader源码分析
android
_小马快跑_1 天前
Kotlin | 协程调度器选择:何时用CoroutineScope配置,何时用launch指定?
android