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

[经验分享] MySQL数据库管理3-hj

[复制链接]

尚未签到

发表于 2018-10-7 06:26:13 | 显示全部楼层 |阅读模式
  数据导入 :把系统文件的内容保存到数据库服务器的表里
  需求:把/etc/passwd文件的内容保存到userdb库user表里。
  create  database  userdb;
  create   table  userdb.user(
  name  char(30),
  password   char(1),
  uid   int(2),
  gid   int(2),
  comment   varchar(100),
  homedir     varchar(50),
  shell   varchar(25),
  index(name)
  );
  mysql>show variables like "secure_file_priv";
  #cp  /etc/passwd    /var/lib/mysql-files/
  #setenforce   0
  导入命令
  LOAD DATA INFILE  “目录名/文件名”
  INTO TABLE   库名.表名
  FIELDS TERMINATED BY  “分隔符”
  LINES TERMINATED BY  “\n”;
  mysql>  load  data  infile   "/var/lib/mysql-files/passwd"
  into   table   userdb.user   fields  terminated by  ":"
  lines    terminated by  "\n";

  mysql>  alter  table  userdb.user  add  >  primary key  auto_increment   first;
  数据导出:把表记录存储系统文件里。
  sql查询命令  INTO  OUTFILE  “目录名/文件名”
  FIELDS TERMINATED BY  “分隔符”
  LINES TERMINATED BY  “\n”;
  mysql>show variables like  "secure_file_priv";
  mysql>select  *   from userdb.user   where  id    >=    <     -> where
  -> shell is null;
  模糊查询
  like  '表达式'
  _  任意一个字符
  % 零个或多个字符
  select  name from userdb.user where name like  '____';
  select  name from userdb.user where name like  '_____%';
  select  name from userdb.user where name like  'a%';
  select  name from userdb.user where name like  'a%d';
  select  id,name from userdb.user where name like  '%';
  在查询结果里查询记录  having  条件;
  select  id,name from userdb.user where name like  '%'
  having  id   in (63,64,52,61);
  正则匹配
  .    *    [  ]    ^    $
  regexp  '正则表达式'
  select name  from userdb.user where  name  regexp
  't$';
  select name  from userdb.user where  name  regexp
  '^a';
  insert into userdb.user(id ,name)
  values
  (65,&quot;plj9&quot;),(66,&quot;pl8j&quot;),(67,&quot;lu2cy&quot;),(68,&quot;3mack&quot;);
  select name  from userdb.user where  name  regexp  '[0
  -9]';
  select name  from userdb.user where  name  regexp  '^
  [0-9]';
  select name  from userdb.user where  name  regexp  '[0
  -9]$';
  select name,uid  from userdb.user where uid  regexp
  '...';
  select name,uid  from userdb.user where uid  regexp
  '^...$';
  select name,uid  from userdb.user where name   regexp
  '^....$';
  select name,uid  from userdb.user where name   regexp
  '^a.*t$';
  四则运算   +  -   *   /
  select name,uid,gid,uid+gid as sum from userdb.user
  where name in  (&quot;adm&quot;,&quot;bin&quot;);
  alter table  userdb.user  add  s_year   year  default  1990
  after  name;
  select name,s_year,2017-s_year as age from userdb.user
  where   name=&quot;root&quot;;
  alter table  userdb.user  add  shellscript   int(2)  default
  60   after  s_year  ,add   linuxsys  int(2)  default  80  after
  shellscript;
  select name,shellscript,linuxsys ,shellscript+linuxsys  as
  sum  , (shellscript+linuxsys)/2 as  avg   from userdb.user
  where name=&quot;root&quot;;
  逻辑匹配
  逻辑与   and  多个查询条件时,必须同时成立。
  逻辑或   or  多个查询条件时,某个查询条件成立就可以
  逻辑非    !  取反
  select  name from userdb.user  where  name=&quot;root&quot;
  and   uid=0  and  shell=&quot;/bin/bash&quot;;
  select  name from userdb.user  where  name=&quot;root&quot;  or
  uid=3  or  gid=&quot;2002&quot;;
  select  name,uid,gid from userdb.user  where
  name=&quot;root&quot;  or  uid=3  or  gid=&quot;2002&quot;;
  select  name,uid  from  userdb.user   where
  name=&quot;root&quot;  and uid=0   or   uid=1;
  select  name,uid  from  userdb.user   where
  name=&quot;root&quot;  and  ( uid=0   or   uid=1);
  select name  from userdb.user where name!=&quot;root&quot;;
  集聚函数
  sum(字段名)  求和
  avg(字段名)  求平均值
  max(字段名)  求大值
  min(字段名)  求小值
  count(字段名)  求个数
  select  count(name)  from userdb.user  where shell!
  =&quot;/bin/bash&quot;;
  select  count(id)  from userdb.user ;
  select  min(uid) from userdb.user  where
  shell=&quot;/bin/bash&quot;;
  select  max(uid) from userdb.user  where
  shell=&quot;/bin/bash&quot;;
  select sum(uid) from userdb.user;
  select  avg(linuxsys) from userdb.user;
  DISTINCT  不显示字段的重复值
  select  distinct  shell  from userdb.db;
  select  distinct  shell  from userdb.user where uid
  select>  select  *  from  userdb.user  order by  uid  desc  limit  5;
  select  *  from  userdb.user where shell=&quot;/bin/bash&quot;
  order by  uid  desc  limit  5;
  ++++++++++++++++++++++++++++++++++++
  3 更新记录字段的值
  update  库.表  set  字段名=值, 字段名=&quot;值&quot;;
  update  库.表  set  字段名=值, 字段名=&quot;值&quot;  where  条件;
  update  userdb.user  set    s_year=1980;
  update  userdb.user  set  shellscript=100,linuxsys=100
  where  id=1;
  4 删除记录
  delete   from   库.表;删除所有记录
  delete   from   库.表  where  条件 ;
  delete from userdb.user where name is null;
  ++++++++++++++++++++++++++++++++
  复制表(功能 : 备份表  、快速建表)
  create  table 库.表    sql查询;
  create table   userdb.user2  select  * from userdb.user;
  create table   userdb.user3  select  name,uid,homedir
  from userdb.user  limit  10;
  create table   userdb.user4  select  * from userdb.user
  where   1 = 2;
  +++++++++++++++++++++++++++++++++
  where嵌套查询:把内层的查询结果做为外层查询的查询条件。
  sql查询  where  条件  (sql查询);
  select  name,shellscript from userdb.user where
  shellscript <  (select  avg(shellscript) from userdb.user );
  select  name,shellscript from userdb.user where
  shellscript <  (select  avg(shellscript) from userdb.user )
  having name=&quot;lucy&quot;;
  select  user from mysql.user where user in (select name
  from userdb.user where shell=&quot;/bin/bash&quot;);
  多表查询
  select 字段名列表 from 表名列表; 笛卡尔集
  select 字段名列表 from 表名列表 where 条件;
  create  table  userdb.t1  select name,uid,shell  from
  userdb.user  limit  3;
  create  table  userdb.t2  select name,gid,homedir  from
  userdb.user  limit  5;
  select  * from t2,t1;
  select  t1.name,t2.name from t2,t1;
  select  t1.name,t2.* from t2,t1;
  select  * from t2,t1  where  t1.name =  t2.name;
  select t1.name,t1.uid,t2.gid, t2.name from t2,t1  where
  t1.name =  t2.name;
  连接查询
  左连接查询 :查询时以左边的表为主显示查询结果。
  select  字段名列表   from 表A  left join  表B  on  条件;
  右连接查询:查询时以右边的表为主显示查询结果
  select  字段名列表   from 表A  right  join  表B  on  条件;
  create  table  t3   select name,uid,shell  from userdb.user
  limit  3;
  create  table  t4   select name,uid,shell  from userdb.user
  limit  6;
  select  *  from  t3  left  join  t4   on  t3.uid = t4.uid;
  select  t3.*  from  t3  left  join  t4   on  t3.uid = t4.uid;
  select  *  from  t3    right  join  t4  on  t3.uid = t4.uid;
  select  *  from  t3    right  join  t4  on  t3.uid = t4.uid;


运维网声明 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-614062-1-1.html 上篇帖子: MySQL数据库管理2-hj 下篇帖子: MySQL数据库管理4-hj
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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