mysql数据库的基础知识

来源:互联网 发布:微缩景观世界 知乎 编辑:程序博客网 时间:2024/05/03 21:31

首先聊一聊我自己的mysql的学习方法,我正在学。安装是必不可少的,我是在windows server 2003下安装的,使用的32位5.6.20非安装版,http://dev.mysql.com/downloads/mysql/下载zip文档后,拷贝到c:\mysql就可以了,以后的说明就以这个目录为准了,最简易的启动就是win+r→cmd打开dos窗口,进入c:\mysql\bin,c:\mysql\bin>mysqld<ENTER>,窗口不要关闭就可以了,从进程中可以看到mysqld.exe在运行,再打开一个dos窗口,c:\mysql\bin>mysqladmin -uroot -p shutdown,提示输入数据库的root密码,输入后就可以关闭mysql服务进程了。然后c:\mysql\bin>mysql -uroot -p<ENTER>提示输入口令,直接<ENTER>就可以最简单的方式启动一个mysql的客户端程序,登入之后提示符变为mysql>   然后用mysql>SET PASSWORD FOR root@localhost =PASSWORD('tqv311');   设置root的口令,mysql>quit退出,C:\mysql\bin>mysql -hlocalhost -uroot -ptqv311 重新启动mysql客户端程序并以root的身份连接本地mysql实例,此时没有使用任何数据库。mysql>show databases;<ENTER>显示当前所有的数据库,mysql>use mysql;使用mysql数据库作为当前数据库,mysql>quit 再用C:\mysql\bin>mysql -hlocalhost -uroot -ptqv311 gjj 就直接设定gjj为当前的数据库了,用mysql>select user( );<ENTER>select database( )可以查看当前用户和当前正在使用的数据库(以后用database代表数据库)。转入正题,怎么学呢?先学什么?首先要明白学的东西有什么基础内容,比如mysql是数据库,服务器和客户端的安装、客户端到服务器的连接、数据库的基本概念(实例、数据库、用户、表及索引、引擎)要先完成,要明白自己在干什么,所做工作的成果怎么才能查看到。这些前期工作一定要有耐心,除非你不想真正的学好它,否则用十天的时间完成以上的内容都是完全有可能的。具体到要学的mysql,可以看一下基本的入门书,然后使用mysql这个自带的客户端,千万不要用带界面的客户端,很快你就会被各种各样的麻烦困扰。就用mysql客户端,努力学好使用方法,用两天时间看能不能学的差不多,首先mysql>help contents;查看说明,一个一个看一下。

              前面是讲了一些怎么快速建立一个环境,这一段把这几天摸索的mysql客户端命令梳理一下。首先,mysql>help contents;  mysql>show  plugins;  先看一下type为storage engine的行(怎么能只列出这些行),知道有哪些引擎可以用就可以了。然后mysql>help;  有个tee,mysql>tee c:\mysql\tee.txt   (注意这里不能有冒号)后面的命令和结果都会附加到这个文件;mysqls>notee;  停止记录,在另一个dos窗口c:\mysql>cd .>tee.txt  清空tee.txt ,mysql>tee;再次启用tee.txt记录。c:\mysql>type tee.txt查看内容。【发送到桌面快捷设置快捷键ctrl+shift+alt+t打开,虚拟机中ctrl+alt后,ctrl+shift+alt+c打开有道词典mini窗口】,mysql>show create table tables

<pre name="code" class="sql" style="color: rgb(85, 85, 85); font-style: italic; line-height: 22px;"><span style="white-space:pre"></span>nformation_schema>select * from global_variables where variable_name like 'char%';
information_schema>select * from global_variables where variable_name like '%dir%'; information_schema>select * from global_variables where variable_name like '%dir%';information_schema>select * from schemata;

<pre name="code" class="sql" style="color: rgb(85, 85, 85); font-style: italic; line-height: 22px;"><span style="white-space:pre"></span>nformation_schema>select * from global_variables where variable_name like 'char%';information_schema>select * from global_variables where variable_name like '%dir%'; information_schema>select * from global_variables where variable_name like '%dir%';information_schema>select * from schemata;

如何查看服务器中的所有表的内容呢?mysql> select table_schema,table_name from tables into outfile 'z:\mysql\\outfiletest4.txt' FIELDS TERMINATED BY '\.' ENCLOSED BY '' OPTIONALLY ENCLOSED BY '' LINES TERMINATED BY '\;\r\n' STARTING BY 'SELECT * FROM ';(注意目录用双斜线)然后mysql> source z:\mysql\outfiletest4.txt(注意目录用单斜线)

 select table_schema,table_name from tables into outfile 'z:\mysql\\outfiletest4.txt' FIELDS TERMINATED BY '\.' ENCLOSED BY '' OPTIONALLY ENCLOSED BY '' LINES TERMINATED BY '\;\r\n' STARTING BY 'SELECT * FROM ';


用mysqld启动时,--help可以使这个命令只显示帮助,并不启动mysqld,你把这一句放在my.ini中的mysqld中的第一句,如果没有启动,只列出了帮助信息,就可以确定使用了这个my.ini。


这一段讲一下编码问题,首先要搞清楚字符集和编码,网上很多,mysql中的character set用mysql>show variables like 'char%';collation用mysql>show variables like 'collation%';同时指明了character或collation的缺省值,其中system是metadata的字符集,(win下的是utf8,确保各种语言都可用,是编译时确定的吗?)

sever和client的在my.ini中确定,[mysqld] character-set-server=utf8  collation-server=utf8_general_ci  [client] default-character-set=utf8 。server,database,table,columns按顺序集成上一层对象的,connection、result随着client变化。_ci不分大小写,_cs和_bin分大小写,最好是指定sever和client为utf8后,创建其他对象时不要再指定,这样就统一了,在windows下的mysql命令行下,直接输入命令时,汉字都是用的client字符集,用source<createtable.sql的方式创建表和插入数据时,要存为utf8的编码,否则插入数据时提示错误,创建表时中文字符乱码。mysql>set names 'ascii' 可以改变client的字符集。gvim编辑中,:e ++enc=utf-8 该命令会重新用utf-8编码来打开之前打开的文件。:set fenc=utf-8 该命令修改当前文件编码,:w后保存成该编码的文件。

0 0
原创粉丝点击