MySQL学习笔记(一)
读书分为两种方式:一种是将书当成教材看,一页页翻看;另一种则是将书当成参考书看,用到相关知识的时候就查书。学习编程语言的话,我推荐是选择一本浅显易懂的书作为教材,然后选些晦涩难懂或者厚的巨著作为参考书。
学习数据库系统,我选择《数据库系统概论》作为专业术语以及系统概念补充的参考书,然后用网上的一份SQL语句文档作为我的学习主线。通过解决实际问题提高自己的能力。
一、安装配置MySQL服务器
安装以及配置MySQL较为简单,不再赘述。不过仍然要提下关于MySQL安装配置完后出现中文乱码情况,具体的解决方案可以参考我的这篇文章:Windows使用MySQL数据库管理系统中文乱码问题
二、MySQL登入登出
为了适用于初学者,本文不直接用sql developer远程登录MySQL服务器写SQL语句,而是在命令行学习MySQL语句。
1、连接mysql服务器
mysql默认的账户名是root,默认的密码也是root,当然你也可以修改。登录mysql的简略方法如下图所示,当然还能够再增加参数。
1.1)输入 mysql -u[USER] -p[PASSWORD]直接连接本机MySQL服务器
注意密码知识隐藏了一部分,并非是-p1;
1.2) 先输入 mysql -u[USER] -p,然后输入密码********直接连接本机MySQL服务器
读者可以尝试输入 mysql -u[USER] -p [PASSWORD],mysql -u [USER] -p [PASSWORD],看看到底是什么情况?当然这也是以后需要注意的内容。
1.3)输入 mysql -h[IP Address] -u[USER] -p[PASSWORD]
注意:localhost=127.0.0.1,即A类地址的保留地址,用于作为本地软件环回测试本主机的进程之间的通信之用,即为环回地址。
2. 断开与mysql服务器连接
断开连接的方式有四种:1)"quit;" 或"quit" 2)"exit;"或"exit" 3)"\q;"或"\q" 4)[ctrl + c]组合键
小结一下:
a)mysql参数及其含义:-h(host)代表MySQL服务器主机地址;-u(user)代表根用户名;-p(password)代表连接密码。
b)-h和主机地址、-u和用户名这两者之间有空格没有问题,但是-p和密码之间不能有空格,如果有空格则会要求重新输入密码,然后还是报错。
c)mysql的SQL语句一般都要用";"结尾,否则系统认为输入未结束。不过登入操作不能加分号,否则出现ERROR 1045。
三、数据库增删查操作
MySQL关系型数据库是面向对象,以集合作为基本操作单元的数据库。在使用MySQL时必须首先创建数据库,然后使用相应数据库,之后才能够创建基表、虚表、索引、序列等。
1. 创建数据库
输入 CREATE DATABASE db_name; 创建数据库。
创建数据库对象
2. 使用数据库
输入 USE db_name; 使用数据库。
使用数据库
3. 删除数据库
输入 DROP DATABASE db_name; 丢弃数据库。
删除数据库
4. 查询数据库命令
输入命令 "?"、"\?"或"help" 查询相关操作数据库命令,输入命令"?/help + 具体内容"查看MySQL帮助文档。
MySQL命令集
5. 查看数据库信息
在MySQL中使用SHOW命令来查看全部数据库以及一个数据库下的所有表。
输入 SHOW databases; 查看全部数据库信息。
全部数据库信息
输入 USE db_name; 再输入 SHOW tables; 显示db_name数据库下所有的表信息。当然也可一句话完成SHOW tables FROM db_name。
相应数据库下所有表信息
四、总结反思
本文主要介绍MySQL入门级的命令,其中特别需要注意的是创建和删除数据库命令,必须带有DATABASE关键字。
为什么创建、删除数据库必须有DATABASE?为什么数据库对象的操作,只有创建(CREATE)、删除(DROP)、使用(USE)、显示(SHOW),没有插入(INSERT)和更新(UPDATE)?其实如果能够清除回答这些问题,数据库操作命令怎么会记错呢!
1)数据库对象作为独立的个体存在,与其它数据库不存在耦合关系,因此就没有必要有插入(INSERT)操作。显然数据库的先后顺序对操作数据库对象没有影响,这样只要有CREATE来创建数据库对象就足够了,没有必要用INSERT。
2)同时,数据库对象也没有必要更新。创建(CREATE)、删除(DROP)就完成了更新(UPDATE)的所有功能。
3)使用USE是因为有时需要切换操作的数据库对象,即有些表在另一个数据库中,如果重新登录MySQL浪费时间,那么使用USE db_name来使用数据库对象。USE不加DATABASE是因为MySQL的USE关键字用于使用命名空间,即USE只能用于db_name和schema_name。
4)SHOW能够显示所有数据库(databases),也能够显示当前正在使用数据库的所有表(tables)。由于已经说明了需要显示的是数据库还是表,那么就没有必要再加DATABASE或TABLE关键字了。
5)CREATE DATABASE和DROP DATABASE需要加DATABASE来操纵数据库,因为CREATE、DROP也用于操作表、视图、索引、序列等,所以必须用DATABASE关键词区别数据库对象操作与其余别的操作。
其次,由于MySQL自带帮助文档,能够在命令行查询(使用"? 查询内容"命令),极大地提高了MySQL开发效率,希望能够经常使用。
声明:本文系作者原创,如需转载必须经过本人同意。