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

[经验分享] MySQL 数据库简单操作

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2014-9-5 09:17:13 | 显示全部楼层 |阅读模式
对于想要从事或爱好mysql相关工作的童鞋们,有必要掌握在命令行下对mysql实现一些简单的操作。本文从描述了如何登录到mysql数据库服务器,如何在mysql提示符下发布命令,创建数据库,以及执行一些简单的DML操作。



1、连接到与退出mysql


    为了连接mysql数据库服务器,当调用mysql时,通常需要提供一个MySQL用户名并且很可能需要一个密码。如果服务器  
    运行在登录服务器之外的其它机器上,还需要指定主机名。联系管理员以找出进行连接所使用的参数 (即,连接的主机  
    、用户名和使用的密码)。知道正确的参数后,可以按照以下方式进行连接:  
    shell> mysql -h host -u user -p  
    mysql> select version(),current_date;  
    +---------------------------------------+--------------+  
    | version()                             | current_date |  
    +---------------------------------------+--------------+  
    | 5.6.17-enterprise-commercial-advanced | 2014-04-28   |  
    +---------------------------------------+--------------+  
    1 row in set (0.03 sec)  
      
    --在允许匿名登录到本地服务器的情下可以直接在shell提示符下直接输入mysql即可实现登录  
    mysql> #提示符告诉你mysql准备为你输入命令。  
      
    shell> mysql  
    --输入分号表示结束命令输入并执行该命令  
    --成功地连接后,可以在mysql>提示下输入QUIT (或\q ,exit)随时退出  
    mysql> QUIT  
    Bye  
    --在Unix中,也可以按control-D键断开服务器。  


2、发布命令


    mysql执行命令可分为非交互与交互模式  
    a) 非交互模式  
    非交互模式,也叫批模式,也就是将想要运行的命令放在一个文件中,然后告诉mysql从文件读取它的输入。  
    通常用于返回数据量较大,以及批量管理,执行特殊脚本运行的情形。  
    shell> mysql <query.sql  
      
    [iyunv@linux1 ~]# more query.sql   
    show databases;  
    use cnfo  
    select * from tb_tmp;   
    [iyunv@linux1 ~]# mysql -u root -pmysql <query.sql  
    Warning: Using a password on the command line interface can be insecure.  
    Database  
    information_schema  
    cnfo  
    mysql  
    performance_schema  
    test  
    name    sex     birth  
    Jack    F       2014-04-28  
    John    M       2013-04-28  
      
    --也可以使用下面的2种方式来执行批  
    mysql > source /<dir>/filename   
    mysql > \./<dir>/finename         
      
    --如下面的演示  
    [iyunv@linux1 ~]# mysql -u root -pmysql  
    mysql> source query.sql  
    +--------------------+  
    | Database           |  
    +--------------------+  
    | information_schema |  
    | cnfo               |  
    | mysql              |  
    | performance_schema |  
    | test               |  
    +--------------------+  
    5 rows in set (0.00 sec)  
      
    Reading table information for completion of table and column names  
    You can turn off this feature to get a quicker startup with -A  
      
    Database changed  
    +------+------+------------+  
    | name | sex  | birth      |  
    +------+------+------------+  
    | Jack | F    | 2014-04-28 |  
    | John | M    | 2013-04-28 |  
    +------+------+------------+  
    2 rows in set (0.00 sec)  
      
    也可以在shell模式下直接执行SQL,如下面的方法:  
    -e or --execution=option   
    shell>mysql -e "SQL cmd1;SQL cmd2;.."  
    shell>mysql --execute="SQL cmd1;SQL cmd2;.."  
      
    b) 交互模式  
    交互模式就是直接在mysql提示符下发布命令并执行命令。  
    如下操作,不区分大小写,输入回车后会得到命令执行的结果,即为交互模式。  
    mysql> SELECT VERSION(), CURRENT_DATE;  
    mysql> select version(), current_date;  
    mysql> SeLeCt vErSiOn(), current_DATE;  
      
    --简单计算  
    mysql> select power(2,3),(5-1)*4;  
    +------------+---------+  
    | power(2,3) | (5-1)*4 |  
    +------------+---------+  
    |          8 |      16 |  
    +------------+---------+  
    1 row in set (0.00 sec)  
      
    --分号分割多行  
    mysql> select version();select current_date;  
    +---------------------------------------+  
    | version()                             |  
    +---------------------------------------+  
    | 5.6.17-enterprise-commercial-advanced |  
    +---------------------------------------+  
    1 row in set (0.01 sec)  
      
    +--------------+  
    | current_date |  
    +--------------+  
    | 2014-04-28   |  
    +--------------+  
    1 row in set (0.00 sec)  
      
    --换行输入命令  
    --注,可以输入空行  
    mysql> select user(),  
        -> current_date;  
    +----------------+--------------+  
    | user()         | current_date |  
    +----------------+--------------+  
    | root@localhost | 2014-04-28   |  
    +----------------+--------------+  
    1 row in set (0.00 sec)  
      
    --取消执行当前命令  
    mysql> select current_date()\c  


3、获取mysql帮助信息
直接在提示符下输入mysql --help会得到mysql命令所有参数的相关帮助信息,可以配合管道符more使用
shell> mysql --help



4、mysql常用提示符的含义
提示符    含义
mysql>    准备好接受新命令。
->        等待多行命令的下一行。
'>        等待下一行,等待以单引号(“'”)开始的字符串的结束。
">        等待下一行,等待以双引号(“"”)开始的字符串的结束。
`>        等待下一行,等待以反斜点(‘`’)开始的识别符的结束。
/*>       等待下一行,等待以/*开始的注释的结束。



5、日常操作


    --创建数据库  
    mysql> create database cnfo;  
    Query OK, 1 row affected (0.00 sec)  
      
    --切换数据库  
    mysql> use cnfo  
    Database changed  
      
    --查看当前数据库  
    mysql> select database();  
    +------------+  
    | database() |  
    +------------+  
    | cnfo       |  
    +------------+  
    1 row in set (0.00 sec)  
      
    --启动mysql时连接到指定数据库  
    [iyunv@linux1 ~]# mysql -u root -p cnfo  
    Enter password:   
      
    mysql> select database();  
    +------------+  
    | database() |  
    +------------+  
    | cnfo       |  
    +------------+  
    1 row in set (0.01 sec)  
      
    --在当前库创建表  
    mysql> create table tb_tmp(name varchar(20),  
        -> sex char(1),birth date);  
    Query OK, 0 rows affected (0.09 sec)  
      
    --显示当前库所有的表  
    mysql> show tables;  
    +----------------+  
    | Tables_in_cnfo |  
    +----------------+  
    | tb_tmp         |  
    +----------------+  
    1 row in set (0.00 sec)  
      
    --查看表的定义信息  
    mysql> desc tb_tmp  
        -> ;  
    +-------+-------------+------+-----+---------+-------+  
    | Field | Type        | Null | Key | Default | Extra |  
    +-------+-------------+------+-----+---------+-------+  
    | name  | varchar(20) | YES  |     | NULL    |       |  
    | sex   | char(1)     | YES  |     | NULL    |       |  
    | birth | date        | YES  |     | NULL    |       |  
    +-------+-------------+------+-----+---------+-------+  
    3 rows in set (0.02 sec)  
      
    -- Author : Leshami  
    -- Blog   : http://blog.iyunv.com/leshami  
    --为表插入记录  
    mysql> insert into tb_tmp values('Jcack','F','20140428');  
    Query OK, 1 row affected (0.08 sec)  
      
    mysql> insert into tb_tmp values('John','M','20130428');  
    Query OK, 1 row affected (0.02 sec)  
      
    --查看表上的记录  
    mysql> select * from tb_tmp;  
    +-------+------+------------+  
    | name  | sex  | birth      |  
    +-------+------+------------+  
    | Jcack | F    | 2014-04-28 |  
    | John  | M    | 2013-04-28 |  
    +-------+------+------------+  
    2 rows in set (0.00 sec)  
      
    --更新表上的记录  
    mysql> update tb_tmp set name='Jack' where name='Jcack';  
    Query OK, 1 row affected (0.01 sec)  
    Rows matched: 1  Changed: 1  Warnings: 0  
      
    --过滤查询  
    mysql> select * from tb_tmp where sex='F';  
    +------+------+------------+  
    | name | sex  | birth      |  
    +------+------+------------+  
    | Jack | F    | 2014-04-28 |  
    +------+------+------------+  
    1 row 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-24478-1-1.html 上篇帖子: MHA+非root用户SSH等效性配置 下篇帖子: 在chroot环境下将MySQL日志输出到syslog 数据库
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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