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) ```

相关推荐
HyggeBest11 分钟前
Mysql 宏观架构
mysql·架构
海尔辛25 分钟前
SQL 基础入门
数据库·sql
jiunian_cn1 小时前
【Linux】Linux权限
linux·服务器·mysql
betazhou2 小时前
有没有 MariaDB 5.5.56 对应 MySQL CONNECTION_CONTROL 插件
linux·数据库·mysql·oracle·mariadb
异常君2 小时前
MySQL 中 count(*)、count(1)、count(字段)性能对比:一次彻底搞清楚
java·mysql·面试
每次的天空2 小时前
Android第十五次面试总结(第三方组件和adb命令)
android
追随远方2 小时前
Android音频开发:Speex固定帧与变长帧编解码深度解析
android·音视频
消失的旧时光-19432 小时前
Android和硬件通信
android
0wioiw02 小时前
安卓基础(编译.Class)
android
烟雨书信2 小时前
Linux中MySQL的逻辑备份与恢复
linux·运维·mysql