设为首页 收藏本站
查看: 1033|回复: 0

[经验分享] MySQL第三天(管理表记录)

[复制链接]

尚未签到

发表于 2018-10-6 10:22:43 | 显示全部楼层 |阅读模式
  day03
  一、管理表记录?
  导入数据:
  把系统文件的内容存储到数据库服务器的表里。
  把系统用户信息/etc/passwod存储到数据库服务器的db3库下的user里。
  用户名 密码 UID GID 描述信息 家目录shell
  mysql> create table user(
  -> name char(50),
  -> password char(8),
  -> uid tinyint(6),
  -> gid tinyint(6),
  -> comment char(100),
  -> homedir char(100),
  -> shell   char(30),
  -> index(name)
  ->);
  Query OK, 0 rows affected (0.06 sec)
  mysql> desc user;
  +----------+------------+------+-----+---------+-------+
  | Field    | Type       | Null | Key | Default | Extra |
  +----------+------------+------+-----+---------+-------+
  | name     | char(50)   | YES  | MUL | NULL    |       |
  | password | char(8)    | YES  |     | NULL    |       |
  | uid      | tinyint(6) | YES  |     | NULL    |       |
  | gid      | tinyint(6) | YES  |     | NULL    |       |
  | comment  | char(100)  | YES  |     | NULL    |       |
  | homedir  | char(100)  | YES  |     | NULL    |       |
  | shell    | char(30)   | YES  |     | NULL    |       |
  +----------+------------+------+-----+---------+-------+
  7 rows in set (0.00 sec)
  [root@db1 ~]# cp  /etc/passwd  /var/lib/mysql-files/  ##复制passwd文件到数据库默认载体目录内
  mysql> load data infile                             ##导入文件到数据库默认目录
  -> "/var/lib/mysql-files/passwd"                ##字段分隔为:行分隔为换行(字段分隔符要与文件一致)
  -> into table db3.user                          ##导入的数据要与表字段匹配
  -> fields terminated by ":"                     ##禁止selinux
  -> lines terminated by "\n";
  Query OK, 44 rows affected, 33 warnings (0.01 sec)
  Records: 44  Deleted: 0  Skipped: 0  Warnings: 33
  mysql> select * from db3.user;
  +---------------------+----------+------+------+-----------------------------------------------------------------+---------------------------+----------------+
  | name                | password | uid  | gid  | comment                                                         | homedir                   | shell          |
  +---------------------+----------+------+------+-----------------------------------------------------------------+---------------------------+----------------+
  | root                | x        |    0 |    0 | root                                                            | /root                     | /bin/bash      |
  | bin                 | x        |    1 |    1 | bin                                                             | /bin                      | /sbin/nologin  |
  | daemon              | x        |    2 |    2 | daemon                                                          | /sbin                     | /sbin/nologin  |
  | adm                 | x        |    3 |    4 | adm                                                             | /var/adm                  | /sbin/nologin  |
  | lp                  | x        |    4 |    7 | lp                                                              | /var/spool/lpd            | /sbin/nologin  |
  | sync                | x        |    5 |    0 | sync                                                            | /sbin                     | /bin/sync      |
  | shutdown            | x        |    6 |    0 | shutdown                                                        | /sbin                     | /sbin/shutdown |
  | halt                | x        |    7 |    0 | halt                                                            | /sbin                     | /sbin/halt     |
  | mail                | x        |    8 |   12 | mail                                                            | /var/spool/mail           | /sbin/nologin  |
  | operator            | x        |   11 |    0 | operator                                                        | /root                     | /sbin/nologin  |
  | games               | x        |   12 |  100 | games                                                           | /usr/games                | /sbin/nologin  |
  | ftp                 | x        |   14 |   50 | FTP User                                                        | /var/ftp                  | /sbin/nologin  |
  | nobody              | x        |   99 |   99 | Nobody                                                          | /                         | /sbin/nologin  |

  mysql>>  Query OK, 44 rows affected (0.05 sec)
  Records: 44  Duplicates: 0  Warnings: 0
  mysql> select * from db3.user;
  +----+---------------------+----------+------+------+-----------------------------------------------------------------+---------------------------+----------------+

  |>  +----+---------------------+----------+------+------+-----------------------------------------------------------------+---------------------------+----------------+
  |  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  |
  修改数据库默认载体目录
  mysql> show  variables  like   "secure_file_priv";    ##查看数据库默认目录
  +------------------+-----------------------+
  | Variable_name    | Value                 |
  +------------------+-----------------------+
  | secure_file_priv | /var/lib/mysql-files/ |
  +------------------+-----------------------+
  1 row in set (0.01 sec)
  mysql> quit
  bye
  [root@db1 ~]# vim /etc/my.cnf
  [root@db1 ~]# mkdir  /mydata
  [root@db1 ~]# ls -ld  /mydata/
  drwxr-xr-x. 2 root root 6 2月  23 22:51 /mydata/
  [root@db1 ~]# chown  mysql  /mydata
  [root@db1 ~]# setenforce  0
  [root@db1 ~]# getenforce
  Permissive
  [root@db1 ~]# systemctl restart mysqld
  mysql> show  variables  like   "secure_file_priv";
  +------------------+----------+
  | Variable_name    | Value    |
  +------------------+----------+
  | secure_file_priv | /mydata/ |
  +------------------+----------+
  1 row in set (0.01 sec)
  +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  导出数据:把表记录存储到系统文件里。
  命令格式:
  sql查询  into  outfile  "目录名/文件名"  fields  terminated by "符号"  lines terminated by "符号";    ##目录为"secure_file_priv"指定的目录,文件自动生成,行分隔默认为"\n"
  mysql> select * from db3.user into outfile  "/mydata/a.txt" fields  terminated by ":";
  Query OK, 44 rows affected (0.02 sec)
  mysql> quit
  Bye
  mysql> select * from db3.user into outfile  "/mydata/b.txt";                             ##字段分隔默认为tab
  Query OK, 44 rows affected (0.00 sec)
  mysql> quit
  Bye
  +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  表记录的增、删、改、查
  插入数据(增)
  一次插入1条记录给所有字段赋值
  一次插入1条记录给指定字段赋值
  insert into 库.表 values(字段值列表);
  insert into 库.表(字段名列表)  values(字段值列表),(字段值列表),(字段值列表);
  mysql> insert into  db3.user  values(45,"jack","x",30,30,"this is student","/home/jack","/bin/bash");   ##一次插入1条记录给所有字段赋值
  Query OK, 1 row affected (0.00 sec)
  mysql> insert into db3.user(name,uid,gid) values("tom",31,31);                                       ##一次插入1条记录给指定字段赋值
  Query OK, 1 row affected (0.00 sec)
  查询记录:
  select  字段名列表  from  库.表  [where 条件];
  select * from  db3.user;
  select name,uid from db3.user;                       ##查询 name,uid字段

  mysql> select name,uid from db3.user where>  +--------+------+
  | name   | uid  |
  +--------+------+
  | root   |    0 |
  | bin    |    1 |
  | daemon |    2 |
  +--------+------+
  3 rows in set (0.00 sec)
  查询/删除/更新数据时的匹配条件?
  1)数值比较 >  >=  <   select name from db3.user where uid=500;
  Empty set (0.00 sec)
  mysql> select * from db3.user where uid select name from db3.user where name=&quot;root&quot;;
  +------+
  | name |
  +------+
  | root |
  +------+
  1 row in set (0.00 sec)
  mysql> select name from db3.user where shell!=&quot;/bin/bash&quot;;
  3)范围内匹配
  between 数字1 and 数字2    ##在...之间
  mysql> select * from db3.user where uid between 10 and 20;
  +----+----------+----------+------+------+----------+------------+---------------+

  |>  +----+----------+----------+------+------+----------+------------+---------------+
  | 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 |
  +----+----------+----------+------+------+----------+------------+---------------+
  3 rows in set (0.00 sec)
  4)in (值列表)   ##在..里面
  not in (值列表)   ##不在...里面
  mysql> select * from db3.user where name in(&quot;root&quot;,&quot;bin&quot;,&quot;adm&quot;);
  +----+------+----------+------+------+---------+----------+---------------+

  |>  +----+------+----------+------+------+---------+----------+---------------+
  |  4 | adm  | x        |    3 |    4 | adm     | /var/adm | /sbin/nologin |
  |  2 | bin  | x        |    1 |    1 | bin     | /bin     | /sbin/nologin |
  |  1 | root | x        |    0 |    0 | root    | /root    | /bin/bash     |
  +----+------+----------+------+------+---------+----------+---------------+
  3 rows in set (0.00 sec)
  mysql> select name,uid from db3.user where uid in(500,100,20);     ##查询name,uid列的记录,条件是字段uid是500或者100或者20的
  Empty set (0.01 sec)
  mysql> select name,uid from db3.user where uid not in (20,50,80);  ##查询name,uid列的记录,条件是字段uid不是20或者50或者80的
  5)逻辑比较 (有多个判断条件)
  逻辑与and  多个条件必须同时成立
  逻辑或 or  多个条件某一个成立即可
  逻辑非 not
  mysql> select * from db3.user where name=&quot;jin&quot;  or  uid=100  or  shell=&quot;/bin/bash&quot;;
  +----+-------+----------+------+------+-----------------+-------------+-----------+

  |>  +----+-------+----------+------+------+-----------------+-------------+-----------+
  |  1 | root  | x        |    0 |    0 | root            | /root       | /bin/bash |
  | 43 | usetr | x        |  127 |  127 | usetr           | /home/usetr | /bin/bash |
  | 45 | jack  | x        |   30 |   30 | this is student | /home/jack  | /bin/bash |
  +----+-------+----------+------+------+-----------------+-------------+-----------+
  3 rows in set (0.00 sec)
  mysql> select * from db3.user where name=&quot;root&quot;  and  uid=0;
  +----+------+----------+------+------+---------+---------+-----------+

  |>  +----+------+----------+------+------+---------+---------+-----------+
  |  1 | root | x        |    0 |    0 | root    | /root   | /bin/bash |
  +----+------+----------+------+------+---------+---------+-----------+
  1 row in set (0.00 sec)
  6)匹配空   is null
  匹配非空   is not null
  mysql> select * from  db3.user where shell is null;
  +----+------+----------+------+------+---------+---------+-------+

  |>  +----+------+----------+------+------+---------+---------+-------+
  | 46 | tom  | NULL     |   31 |   31 | NULL    | NULL    | NULL  |
  +----+------+----------+------+------+---------+---------+-------+
  1 row in set (0.00 sec)
  mysql> select name,uid from db3.user where uid is not null;
  7)不显示查询结果的重复值
  mysql> select distinct shell from db3.user;
  +----------------+
  | shell          |
  +----------------+
  | /bin/bash      |
  | /sbin/nologin  |
  | /bin/sync      |
  | /sbin/shutdown |
  | /sbin/halt     |
  | /bin/false     |
  | NULL           |
  +----------------+
  7 rows in set (0.00 sec)
  8)查询时做四则运算(+ - * /)

  mysql>>  Query OK, 46 rows affected (0.05 sec)
  Records: 46  Duplicates: 0  Warnings: 0
  mysql> select name,age  from db3.user;        ##查看name,age的记录
  +---------------------+------+
  | name                | age  |
  +---------------------+------+
  | root                |   21 |
  | bin                 |   21 |
  | daemon              |   21 |
  | adm                 |   21 |
  | lp                  |   21 |
  | sync                |   21 |
  | shutdown            |   21 |
  | halt                |   21 |
  | mail                |   21 |
  | operator            |   21 |
  | games               |   21 |
  | ftp                 |   21 |
  | nobody              |   21 |
  | avahi-autoipd       |   21 |
  | systemd-bus-proxy   |   21 |
  | systemd-network     |   21 |
  mysql> select name,age,2018-age as syear from db3.user where name=&quot;root&quot;;     查看name,age,2018-age(字段名为syear)的记录,条件为字段name为root
  +------+------+-------+
  | name | age  | syear |
  +------+------+-------+
  | root |   21 |  1997 |
  +------+------+-------+
  1 row in set (0.00 sec)
  mysql> select name,uid,gid,(uid+gid)/2 as pjz from  db3.user where name=&quot;sync&quot;;
  +------+------+------+--------+
  | name | uid  | gid  | pjz    |
  +------+------+------+--------+
  | sync |    5 |    0 | 2.5000 |
  +------+------+------+--------+
  1 row in set (0.00 sec)
  mysql> select name,uid,gid from db3.user where uid=gid;
  +---------------------+------+------+
  | name                | uid  | gid  |
  +---------------------+------+------+
  | root                |    0 |    0 |
  | bin                 |    1 |    1 |
  | daemon              |    2 |    2 |
  | nobody              |   99 |   99 |
  | avahi-autoipd       |  127 |  127 |
  | systemd-bus-proxy   |  127 |  127 |
  | systemd-network     |  127 |  127 |
  | dbus                |   81 |   81 |
  | polkitd             |  127 |  127 |
  9)使用聚集函数(内置的,对数据做统计的命令)
  count(字段名)   统计个数  (null值不做统计)
  sum(字段名)    求和
  avg(字段名)    计算平均数
  max(字段名)    求最大值
  min(字段名)    求最小值
  mysql> select min(uid) from db3.user where uid>100;   ##查看最小uid,条件为uid大于100
  +----------+
  | min(uid) |
  +----------+
  |      107 |
  +----------+
  1 row in set (0.00 sec)
  mysql> select count(name) from db3.user where shell=&quot;/bin/bash&quot;;   ##查看name的个数,条件为shell字段为&quot;/bin/bash&quot;
  +-------------+
  | count(name) |
  +-------------+
  |           3 |
  +-------------+
  1 row in set (0.00 sec)
  mysql> select count(name),count(id) from db3.user;                ##查看name字段值的个数,id字段值的个数
  +-------------+-----------+
  | count(name) | count(id) |
  +-------------+-----------+
  |          46 |        46 |
  +-------------+-----------+
  1 row in set (0.00 sec)
  mysql> insert into db3.user(name) values(null);                ##插入name字段的值,值为空
  Query OK, 1 row affected (0.00 sec)
  mysql> select count(name),count(id) from db3.user;             ##查看name,id字段值的个数,id多一个,因为自增,name为空没有增加个数
  +-------------+-----------+
  | count(name) | count(id) |
  +-------------+-----------+
  |          46 |        47 |
  +-------------+-----------+
  1 row in set (0.00 sec)
  mysql> select count(name) from db3.user where name is null;    ##查看name字段值的个数,条件为name为空,个数为0,因为值为空什么都没有,不统计。
  +-------------+
  | count(name) |
  +-------------+
  |           0 |
  +-------------+
  1 row in set (0.00 sec)
  mysql> select count(id) from db3.user where name is null;     ##查看id字段值的个数,条件为name字段值为空。(名字为空的id个数)
  +-----------+
  | count(id) |
  +-----------+
  |         1 |
  +-----------+
  1 row in set (0.00 sec)
  模糊匹配 like '表达式';
  %    匹配零个或多个字符
  _    匹配任意一个字符
  mysql> select name from db3.user where name like '___';      ##查看name字段值位数为3个的记录
  +------+
  | name |
  +------+
  | adm  |
  | bin  |
  | ftp  |
  | gdm  |
  | ntp  |
  | rpc  |
  | tom  |
  | tss  |
  +------+
  8 rows in set (0.00 sec)
  mysql> select name from db3.user where name like '%';   ##查看name字段值位数为2个以上的记录
  +---------------------+
  | name                |
  +---------------------+
  | abrt                |
  | adm                 |
  | avahi               |
  | avahi-autoipd       |
  | bin                 |
  mysql> select name from db3.user where name like 'a%';    ##查看name字段值含有a的记录
  +---------------+
  | name          |
  +---------------+
  | abrt          |
  | adm           |
  | avahi         |
  | avahi-autoipd |
  +---------------+
  4 rows in set (0.00 sec)
  正则匹配
  mysql> insert into db3.user(name)values(&quot;8yaya&quot;),(&quot;ya6ya&quot;),(&quot;yaya4&quot;),(&quot;YayA&quot;),(&quot;TOM&quot;);
  Query OK, 5 rows affected (0.00 sec)
  Records: 5  Duplicates: 0  Warnings: 0
  mysql> select name from db3.user where name regexp '[0-9]';
  +-------+
  | name  |
  +-------+
  | 8yaya |
  | ya6ya |
  | yaya4 |
  +-------+
  3 rows in set (0.00 sec)
  mysql> select name,uid from db3.user where uid regexp '..';    ##查看na
  +---------------------+------+
  | name                | uid  |
  +---------------------+------+
  | operator            |   11 |
  | games               |   12 |
  | ftp                 |   14 |
  | nobody              |   99 |
  | avahi-autoipd       |  127 |
  | systemd-bus-proxy   |  127 |
  mysql> select name,uid from db3.user where uid regexp '^..$';    ##查看name为2个字符的记录
  +----------+------+
  | name     | uid  |
  +----------+------+
  | operator |   11 |
  | games    |   12 |
  | ftp      |   14 |
  | nobody   |   99 |
  查询分组(过滤掉相同的)
  sql查询  group  by  字段名;
  mysql> select shell from db3.user where uid between 10 and 20 group by shell;
  +---------------+
  | shell         |
  +---------------+
  | /sbin/nologin |
  +---------------+
  1 row in set (0.00 sec)
  比较
  mysql> select shell from db3.user where uid between 10 and 20;
  +---------------+
  | shell         |
  +---------------+
  | /sbin/nologin |
  | /sbin/nologin |
  | /sbin/nologin |
  +---------------+
  3 rows in set (0.00 sec)
  查询排序 order by
  asc|desc
  sql查询  order  by  字段名 升序|降序    ##默认为升序

  mysql> select>  +----+----------+------+------+

  |>  +----+----------+------+------+
  | 31 | radvd    |   75 |   75 |
  | 41 | sshd     |   74 |   74 |
  | 42 | tcpdump  |   72 |   72 |
  | 38 | avahi    |   70 |   70 |
  | 20 | tss      |   59 |   59 |
  | 36 | gdm      |   42 |   42 |
  | 40 | ntp      |   38 |   38 |
  | 28 | rpc      |   32 |   32 |
  | 46 | tom      |   31 |   31 |
  | 45 | jack     |   30 |   30 |
  | 33 | rpcuser  |   29 |   29 |
  | 44 | mysql    |   27 |   27 |
  | 12 | ftp      |   14 |   50 |
  | 11 | games    |   12 |  100 |
  | 10 | operator |   11 |    0 |
  +----+----------+------+------+
  15 rows in set (0.00 sec)

  mysql> select>  +----+----------+------+------+

  |>  +----+----------+------+------+
  | 10 | operator |   11 |    0 |
  | 11 | games    |   12 |  100 |
  | 12 | ftp      |   14 |   50 |
  | 44 | mysql    |   27 |   27 |
  | 33 | rpcuser  |   29 |   29 |
  | 45 | jack     |   30 |   30 |
  | 46 | tom      |   31 |   31 |
  | 28 | rpc      |   32 |   32 |
  | 40 | ntp      |   38 |   38 |
  | 36 | gdm      |   42 |   42 |
  | 20 | tss      |   59 |   59 |
  | 38 | avahi    |   70 |   70 |
  | 42 | tcpdump  |   72 |   72 |
  | 41 | sshd     |   74 |   74 |
  | 31 | radvd    |   75 |   75 |
  +----+----------+------+------+
  15 rows in set (0.00 sec)

  mysql> select>  +----+----------+------+------+

  |>  +----+----------+------+------+
  | 10 | operator |   11 |    0 |
  | 11 | games    |   12 |  100 |
  | 12 | ftp      |   14 |   50 |
  | 44 | mysql    |   27 |   27 |
  | 33 | rpcuser  |   29 |   29 |
  | 45 | jack     |   30 |   30 |
  | 46 | tom      |   31 |   31 |
  | 28 | rpc      |   32 |   32 |
  | 40 | ntp      |   38 |   38 |
  | 36 | gdm      |   42 |   42 |
  | 20 | tss      |   59 |   59 |
  | 38 | avahi    |   70 |   70 |
  | 42 | tcpdump  |   72 |   72 |
  | 41 | sshd     |   74 |   74 |
  | 31 | radvd    |   75 |   75 |
  +----+----------+------+------+
  15 rows in set (0.00 sec)
  限制显示查询记录行数
  sql查询  limit  数字;      #显示查询结果的前几行
  sql查询  limit  数字1,数字2;     ##限制显示行的范围,数字2限制显示的行数,第一行的编号为0
  mysql> select * from db3.user limit 2,4;
  +----+--------+----------+------+------+---------+----------------+---------------+------+

  |>  +----+--------+----------+------+------+---------+----------------+---------------+------+
  |  3 | daemon | x        |    2 |    2 | daemon  | /sbin          | /sbin/nologin |   21 |
  |  4 | adm    | x        |    3 |    4 | adm     | /var/adm       | /sbin/nologin |   21 |
  |  5 | lp     | x        |    4 |    7 | lp      | /var/spool/lpd | /sbin/nologin |   21 |
  |  6 | sync   | x        |    5 |    0 | sync    | /sbin          | /bin/sync     |   21 |
  +----+--------+----------+------+------+---------+----------------+---------------+------+
  4 rows in set (0.00 sec)
  mysql> select * from db3.user order by uid desc limit 3;                            ##查询uid最大三个所有记录
  +----+-------------------+----------+------+------+----------------------------+------------------------+---------------+------+

  |>  +----+-------------------+----------+------+------+----------------------------+------------------------+---------------+------+
  | 14 | avahi-autoipd     | x        |  127 |  127 | Avahi IPv4LL Stack         | /var/lib/avahi-autoipd | /sbin/nologin |   21 |
  | 15 | systemd-bus-proxy | x        |  127 |  127 | systemd Bus Proxy          | /                      | /sbin/nologin |   21 |
  | 16 | systemd-network   | x        |  127 |  127 | systemd Network Management | /                      | /sbin/nologin |   21 |
  +----+-------------------+----------+------+------+----------------------------+------------------------+---------------+------+
  3 rows in set (0.00 sec)
  查询/删除/更新数据时都可以
  条件修改
  update  库.表  set  字段=值,字段=&quot;值&quot;  where 条件;
  批量修改
  update  库.表  set  字段=值,字段=&quot;值&quot;;
  mysql> update db3.user set age=18;
  Query OK, 52 rows affected (0.00 sec)
  Rows matched: 52  Changed: 52  Warnings: 0
  mysql> update db3.user set name=null where name=&quot;root&quot;;
  Query OK, 1 row affected (0.00 sec)
  Rows matched: 1  Changed: 1  Warnings: 0
  mysql> update db3.user set uid=uid+1 where uid delete from db3.user where name is null;
  Query OK, 2 rows affected (0.00 sec)
  删除所有表记录
  delete from 库.表;
  复制表
  create table  库.表 sql查询;
  mysql> create table db3.user2 select * from db3.user;    ##备份表user表给user2, 不能备份key
  Query OK, 50 rows affected (0.09 sec)
  Records: 50  Duplicates: 0  Warnings: 0
  mysql> desc user2;
  +----------+------------+------+-----+---------+-------+
  | Field    | Type       | Null | Key | Default | Extra |
  +----------+------------+------+-----+---------+-------+

  |>  | name     | char(50)   | YES  |     | NULL    |       |
  | password | char(8)    | YES  |     | NULL    |       |
  | uid      | tinyint(6) | YES  |     | NULL    |       |
  | gid      | tinyint(6) | YES  |     | NULL    |       |
  | comment  | char(100)  | YES  |     | NULL    |       |
  | homedir  | char(100)  | YES  |     | NULL    |       |
  | shell    | char(30)   | YES  |     | NULL    |       |
  | age      | tinyint(2) | YES  |     | 21      |       |
  +----------+------------+------+-----+---------+-------+
  9 rows in set (0.00 sec)
  mysql> create table db3.user3 select * from db3.user where 1=2;    ##快速建表结构
  Query OK, 0 rows affected (0.02 sec)
  Records: 0  Duplicates: 0  Warnings: 0
  mysql> select * from user3;        ##表内没有记录
  Empty set (0.00 sec)
  mysql> desc user3;
  +----------+------------+------+-----+---------+-------+
  | Field    | Type       | Null | Key | Default | Extra |
  +----------+------------+------+-----+---------+-------+

  |>  | name     | char(50)   | YES  |     | NULL    |       |
  | password | char(8)    | YES  |     | NULL    |       |
  | uid      | tinyint(6) | YES  |     | NULL    |       |
  | gid      | tinyint(6) | YES  |     | NULL    |       |
  | comment  | char(100)  | YES  |     | NULL    |       |
  | homedir  | char(100)  | YES  |     | NULL    |       |
  | shell    | char(30)   | YES  |     | NULL    |       |
  | age      | tinyint(2) | YES  |     | 21      |       |
  +----------+------------+------+-----+---------+-------+
  9 rows in set (0.00 sec)
  单表查询
  ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  where嵌套查询
  select 字段名 from 库.表 where 条件 (select 字段名 from 库.表 where 条件);
  外面的查询在内的结果查询
  查找UID的字段值大于uid平均值的name和uid
  mysql> select  name,uid from  db3.user where uid > (select avg(uid) from db3.user);
  +---------------------+------+
  | name                | uid  |
  +---------------------+------+
  | nobody              |   99 |
  | avahi-autoipd       |  127 |
  | systemd-bus-proxy   |  127 |
  | systemd-network     |  127 |
  | dbus                |   81 |
  | polkitd             |  127 |
  | unbound             |  127 |
  | colord              |  127 |
  | usbmuxd             |  113 |
  | geoclue             |  127 |
  | saslauth            |  127 |
  | libstoragemgmt      |  127 |
  | abrt                |  127 |
  | setroubleshoot      |  127 |
  | rtkit               |  127 |
  | chrony              |  127 |
  | radvd               |   75 |
  | qemu                |  107 |
  | nfsnobody           |  127 |
  | pulse               |  127 |
  | gnome-initial-setup |  127 |
  | postfix             |   89 |
  | sshd                |   74 |
  | usetr               |  127 |
  +---------------------+------+
  24 rows in set (0.00 sec)
  mysql> select avg(uid) from db3.user;
  +----------+
  | avg(uid) |
  +----------+
  |  73.5111 |
  +----------+
  查找uid最小值的name
  mysql> select name from db3.user where uid = (select min(uid) from db3.user);
  +------+
  | name |
  +------+
  | bin  |
  +------+
  1 row in set (0.00 sec)
  mysql> select name,uid from db3.user where uid = (select min(uid) from db3.user);
  +------+------+
  | name | uid  |
  +------+------+
  | bin  |    2 |
  +------+------+
  1 row in set (0.00 sec)
  借用另一个表里面查询本表
  mysql> select name from db3.user where name in (select user from mysql.user where host=&quot;localhost&quot;);
  Empty set (0.00 sec)
  +++++++++++++++++++++++++++++++++++++++++++++++++++
  多表查询(将两个以上的表,按某个条件连接起来,取所要的数据)
  select 字段名列表 from 表名列表;笛卡尔集合(查询)
  select 字段名列表 from 表名列表 where 条件;
  mysql> create database db4;
  Query OK, 1 row affected (0.00 sec)
  mysql> create table db4.t1 select name,uid,homedir  from  db3.user limit 3;
  Query OK, 3 rows affected (0.03 sec)
  Records: 3  Duplicates: 0  Warnings: 0
  mysql> select * from db4.t1;
  +--------+------+----------+
  | name   | uid  | homedir  |
  +--------+------+----------+
  | bin    |    2 | /bin     |
  | daemon |    3 | /sbin    |
  | adm    |    4 | /var/adm |
  +--------+------+----------+
  3 rows in set (0.00 sec)
  mysql> create table db4.t2 select name,uid,homedir  from  db3.user limit 5;
  Query OK, 5 rows affected (0.03 sec)
  Records: 5  Duplicates: 0  Warnings: 0
  mysql> select * from db4.t2;
  +--------+------+----------------+
  | name   | uid  | homedir        |
  +--------+------+----------------+
  | bin    |    2 | /bin           |
  | daemon |    3 | /sbin          |
  | adm    |    4 | /var/adm       |
  | lp     |    5 | /var/spool/lpd |
  | sync   |    6 | /sbin          |
  +--------+------+----------------+
  5 rows in set (0.00 sec)
  不加条件
  mysql> select from t1,t2;       ##迪卡尔(表少的行数表多的行数)
  +--------+------+----------+--------+------+----------------+
  | name   | uid  | homedir  | name   | uid  | homedir        |
  +--------+------+----------+--------+------+----------------+
  | bin    |    2 | /bin     | bin    |    2 | /bin           |
  | daemon |    3 | /sbin    | bin    |    2 | /bin           |
  | adm    |    4 | /var/adm | bin    |    2 | /bin           |
  | bin    |    2 | /bin     | daemon |    3 | /sbin          |
  | daemon |    3 | /sbin    | daemon |    3 | /sbin          |
  | adm    |    4 | /var/adm | daemon |    3 | /sbin          |
  | bin    |    2 | /bin     | adm    |    4 | /var/adm       |
  | daemon |    3 | /sbin    | adm    |    4 | /var/adm       |
  | adm    |    4 | /var/adm | adm    |    4 | /var/adm       |
  | bin    |    2 | /bin     | lp     |    5 | /var/spool/lpd |
  | daemon |    3 | /sbin    | lp     |    5 | /var/spool/lpd |
  | adm    |    4 | /var/adm | lp     |    5 | /var/spool/lpd |
  | bin    |    2 | /bin     | sync   |    6 | /sbin          |
  | daemon |    3 | /sbin    | sync   |    6 | /sbin          |
  | adm    |    4 | /var/adm | sync   |    6 | /sbin          |
  +--------+------+----------+--------+------+----------------+
  15 rows in set (0.00 sec)
  加条件
  mysql> select t1.name,t2.name,t1.homedir from t1,t2 where t1.name = t2.name;
  +--------+--------+----------+
  | name   | name   | homedir  |
  +--------+--------+----------+
  | bin    | bin    | /bin     |
  | daemon | daemon | /sbin    |
  | adm    | adm    | /var/adm |
  +--------+--------+----------+
  3 rows in set (0.00 sec)
  mysql> select t1.name,t2.name,t1.homedir from t1,t2 where t1.uid = t2.uid;
  +--------+--------+----------+
  | name   | name   | homedir  |
  +--------+--------+----------+
  | bin    | bin    | /bin     |
  | daemon | daemon | /sbin    |
  | adm    | adm    | /var/adm |
  +--------+--------+----------+
  3 rows in set (0.00 sec)
  +++++++++++++++++++++++++++++++++++++++
  连接查询
  select  字段名列表 from 表1  left join 表2  on 条件;
  select  字段名列表 from 表1  right join 表2  on 条件;
  mysql> create table db4.t3 select name,uid,homedir from db3.user limit 4;
  Query OK, 4 rows affected (0.02 sec)
  Records: 4  Duplicates: 0  Warnings: 0
  mysql> create table db4.t4 select name,uid,homedir from db3.user limit 6;
  Query OK, 6 rows affected (0.04 sec)
  Records: 6  Duplicates: 0  Warnings: 0
  mysql> select * from db4.t3;
  +--------+------+----------------+
  | name   | uid  | homedir        |
  +--------+------+----------------+
  | bin    |    2 | /bin           |
  | daemon |    3 | /sbin          |
  | adm    |    4 | /var/adm       |
  | lp     |    5 | /var/spool/lpd |
  +--------+------+----------------+
  4 rows in set (0.00 sec)
  mysql> select * from db4.t4;
  +----------+------+----------------+
  | name     | uid  | homedir        |
  +----------+------+----------------+
  | bin      |    2 | /bin           |
  | daemon   |    3 | /sbin          |
  | adm      |    4 | /var/adm       |
  | lp       |    5 | /var/spool/lpd |
  | sync     |    6 | /sbin          |
  | shutdown |    7 | /sbin          |
  +----------+------+----------------+
  6 rows in set (0.00 sec)
  左连接
  mysql> select * from t3 left join t4 on t3.uid = t4.uid;   ##以左表为主显示所有记录,条件显示相同的记录
  +--------+------+----------------+--------+------+----------------+
  | name   | uid  | homedir        | name   | uid  | homedir        |
  +--------+------+----------------+--------+------+----------------+
  | bin    |    2 | /bin           | bin    |    2 | /bin           |
  | daemon |    3 | /sbin          | daemon |    3 | /sbin          |
  | adm    |    4 | /var/adm       | adm    |    4 | /var/adm       |
  | lp     |    5 | /var/spool/lpd | lp     |    5 | /var/spool/lpd |
  +--------+------+----------------+--------+------+----------------+
  4 rows in set (0.00 sec)
  右连接
  mysql> select * from t3 right join t4 on t3.uid = t4.uid;    ##以右表为主显示所有记录,条件显示相同的记录,不相同的用null显示
  +--------+------+----------------+----------+------+----------------+
  | name   | uid  | homedir        | name     | uid  | homedir        |
  +--------+------+----------------+----------+------+----------------+
  | bin    |    2 | /bin           | bin      |    2 | /bin           |
  | daemon |    3 | /sbin          | daemon   |    3 | /sbin          |
  | adm    |    4 | /var/adm       | adm      |    4 | /var/adm       |
  | lp     |    5 | /var/spool/lpd | lp       |    5 | /var/spool/lpd |
  | NULL   | NULL | NULL           | sync     |    6 | /sbin          |
  | NULL   | NULL | NULL           | shutdown |    7 | /sbin          |
  +--------+------+----------------+----------+------+----------------+
  6 rows in set (0.00 sec)
  mysql> select t3.name,t4.name from t3 right join t4 on t3.uid = t4.uid;    ##以右表为主显示name记录,条件显示相同的记录,不相同的用null显示
  +--------+----------+
  | name   | name     |
  +--------+----------+
  | bin    | bin      |
  | daemon | daemon   |
  | adm    | adm      |
  | lp     | lp       |
  | NULL   | sync     |
  | NULL   | shutdown |
  +--------+----------+
  6 rows in set (0.00 sec)
  商品  衣服
  库存信息表
  销售信息表
  对象 学生
  缴费信息表
  班级表
  就业表
  扩展知识?
  +++++++++++++++++++++++++++++++++++++++++++++++++++


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-613575-1-1.html 上篇帖子: mysql数据库主从配置及还原 下篇帖子: 自动备份mysql和mariadb数据库
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表