时间:2021-07-01 10:21:17 帮助过:73人阅读
mysql doc username=siemens800@msn.com http://imysql.cn/taxonomy/term/22 http://user.qzone.qq.com/170475387/blog/145 http://dev.mysql.com/doc/refman/5.1/zh/storage-engines.html MySQL 5.1 在线中文手册 http://imysql.cn/docs/MySQL_51_zh/mysql_
mysql doc
username=siemens800@msn.com
http://imysql.cn/taxonomy/term/22
http://user.qzone.qq.com/170475387/blog/145
http://dev.mysql.com/doc/refman/5.1/zh/storage-engines.html
MySQL 5.1 在线中文手册 http://imysql.cn/docs/MySQL_51_zh/mysql_51.html
MySQL 5.1 在线英文手册 http://imysql.cn/docs/MySQL_51_en/mysql_51.html
MySQL 5.0 GUI 工具下载
http://mysql.cdpa.nsysu.edu.tw/Downloads/MySQLGUITools/mysql-gui-tools-5.0r12-linux-i386.tar.gz
MySQL 5.0 免安装包下载
http://download.mysql.cn/download_file/zip/5.0/mysql-noinstall-5.0.22-win32.zip
http://mysql.ntu.edu.tw/Downloads/MySQL-5.0/mysql-noinstall-5.0.67-win32.zip
http://mysql.ntu.edu.tw/Downloads/MySQL-5.0/mysql-5.0.67-linux-i686-glibc23.tar.gz
http://mysql.ntu.edu.tw/Downloads/MySQL-5.1/mysql-5.1.29-rc-linux-i686-glibc23.tar.gz
MySQL 6.0 免安装包下载
http://dev.mysql.com/downloads/mysql/6.0.html
ftp://ftp.stu.edu.tw/pub/Unix/Database/Mysql/Downloads/MySQL-6.0/mysql-noinstall-6.0.0-alpha-win32.zip
mysql jdbc driver
http://mysql.oss.eznetsols.org/Downloads/Connector-J/mysql-connector-java-5.1.6.zip
mysql envionment variables
文件:mysql_home.bat
内容:
@echo off
@echo 系统变量[old]
path
tskill explorer
setx MYSQL_HOME D:/MYSQL5
set MYSQL_HOME=D:/MYSQL5
set Path=%MYSQL_HOME%/bin;%path%
@echo 系统变量[new]
path
cmd
MySQL startup.bat
http://rockjava.javaeye.com/blog/234585
如果你的MySql没有安装成系统服务的话,每次启动MySql还跑到服务里去启动,麻烦!呵呵。
1、安装版的MySql
启动:
StartMySQL.bat
net start mysql
关闭:
ShutdownMySQL.bat
net stop mysql
加上pause,可以查看是否启动或停止成功 :
net start mysql
pause
net stop mysql
pause
记录启动日志:
net start mysql> > mysql.log
2、非安装版MySql:
StartMySQL.bat
%mysql-path%/bin/mysqld -u root -p ******
其中-u代表用户名,-p代表用户密码
直接关闭dos窗口就可以关闭MySql服务了。
mysql install.bat
d:/mysql5/bin/mysqld -remove
d:/msyql5/bin/mysqld -install
d:/mysql5/bin/net start mysql
d:/mysql5/bin/mysql -h localhost -u root -p
mysql remove.bat
d:/mysql5/bin/net stop mysql
d:/msyql5/bin/mysqld -remove
MySQL Command
1.远程mysql D:/>mysql -h 192.168.116.159 -P 3306 -u root -p 123
1.进入mysql D:/>cd /mysql5/bin 或 D:/>cd /mysql5/bin 或 D:>cd /m*
1.加载MySQL D:/>mysql5/bin/mysqld-nt.exe 或 D:/>mysql5/bin/mysqld-nt --install 或 D:>/mysql5/mysqld-nt MYSQL
1.卸载MySQL D:/mysql5/mysqld-nt --remove
1.进入数据库 D:/mysql5/mysql -u root 或 D:/mysql5 -u root -p -h 127.0.0.1
1.显示数据库 mysql->show databases; 或 D: /mysql/mysqlshow -uroot;
2.创建数据库 mysql->create database db;
2.删除数据库 mysql->drop database db; 或 mysql->drop database if exists db;
3.选择数据库 mysql->use db
4.查看用户表 mysql->select user();
4.创建数据表
mysql->create table mytable
(
id int(3) auto_increment not null primary key,
name char(20)not null,
address varchar(50) default '深圳',
sex char(1)not null ,
year date not null,
);
4.删除数据表 mysql>drop table mytable;
5.显示表总数 mysql>show tables;
6.显示表结构 mysql>describe mytable; 或mysql->desc mytable;
7.查询表内容 mysql>select * from mytable;
8.增加数据表 mysql>insert into mytable values('','summer','深圳一中','男''1983-08-24');
9.增加表字段 mysql>alter table mytable add name varchar(20)not null;
10.删除表字段mysql>alter table mytable drop name;
11.查看时间 mysql>select now();
12.算术计算 mysql>select 8*9;
13.mysql帮助 mysql>help 或?
14.退出数据库mysql>quit 或exit 或q
15.开启安装版mysql服务 net start mysql
16.关闭安装版mysql服务 net stop mysql
17.更改数据库mysql密码
D:/Program Files/mysql-5.0.27-win32 noinstall/bin/mysql -u root -p
mysql>show databases;
mysql>use mysql;
mysql>select * from user;
mysql>update user set password='root' where user='root';
17.更改数据库root密码
Mysql >set password for root@localhost=password(‘’);
18.
创建权限select,insert,update,delete,create,drop 14个
,index,alter,grant,references,reload,shutdown,process,file
权限信息user、db、host、tables_priv和columns_priv表被存储在mysql数据库中(即在名为mysql的数据库中)。
权限参考:http://kapoc.blogdriver.com/kapoc/1277618.html
http://hi.baidu.com/kowstudio/blog/item/82458bafc61c0acf7dd92a5d.html
drop 如果你将mysql数据库的drop权限授予一个用户,该用户能抛弃存储了MySQL存取权限的数据库!
attention: 对用户授权的语句可以多次运行,即多次创建同一个据有不同权限的用户
example: root用户创建name="etang",pwd="etang"并授权:增删改查,禁止建表和删表@localhost
mysql>grant select,insert,update,delete on *.* to etang@localhost identified by 'etang';
annotate :*.* 表示所有数据库.所有表;etang@% 表示任何地址连接
example:
root用户创建:用户custom
从主机localhost、server.domain和whitehouse.gov连接
从localhost存取bankaccount数据库
从whitehouse.gov存取expenses数据库
从所有3台主机存取customer 数据库
从所有3台主机上使用口令stupid。
shell> mysql --user=root mysql
mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP
ON bankaccount.* TO custom@localhost IDENTIFIED BY 'stupid';
mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP
ON expenses.* TO custom@whitehouse.gov IDENTIFIED BY 'stupid';
mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP
ON customer.* TO custom@'%' IDENTIFIED BY 'stupid';
test ok:
DOS输入mysql -u etang -p 或 mysql -h localhost -u etang -p
Enter Password:etang
Welcome to the MySQL montitor...
其他语句:
select "hello";
select "This/nIS/nFour/nlins";
首先要说明一点的是:一般情况下,修改MySQL密码是需要有mysql里的root权限的,这样一般用户是无法更改密码的,除非请求管理员帮助修改。
MySQL错误_中文参照列表
1005:创建表失败
1006:创建数据库失败
1007:数据库已存在,创建数据库失败
1008:数据库不存在,删除数据库失败
1009:不能删除数据库文件导致删除数据库失败
1010:不能删除数据目录导致删除数据库失败
1011:删除数据库文件失败
1012:不能读取系统表中的记录
1020:记录已被其他用户修改
1021:硬盘剩余空间不足,请加大硬盘可用空间
1022:关键字重复,更改记录失败
1023:关闭时发生错误
1024:读文件错误
1025:更改名字时发生错误
1026:写文件错误
1032:记录不存在
1036:数据表是只读的,不能对它进行修改
1037:系统内存不足,请重启数据库或重启服务器
1038:用于排序的内存不足,请增大排序缓冲区
1040:已到达数据库的最大连接数,请加大数据库可用连接数
1041:系统内存不足
1042:无效的主机名
1043:无效连接
1044:当前用户没有访问数据库的权限
1045:不能连接数据库,用户名或密码错误
1048:字段不能为空
1049:数据库不存在
1050:数据表已存在
1051:数据表不存在
1054:字段不存在
1065:无效的SQL语句,SQL语句为空
1081:不能建立Socket连接
1114:数据表已满,不能容纳任何记录
1116:打开的数据表太多
1129:数据库出现异常,请重启数据库
1130:连接数据库失败,没有连接数据库的权限
1133:数据库用户不存在
1141:当前用户无权访问数据库
1142:当前用户无权访问数据表
1143:当前用户无权访问数据表中的字段
1146:数据表不存在
1147:未定义用户对数据表的访问权限
1149:SQL语句语法错误
1158:网络错误,出现读错误,请检查网络连接状况
1159:网络错误,读超时,请检查网络连接状况
1160:网络错误,出现写错误,请检查网络连接状况
1161:网络错误,写超时,请检查网络连接状况
1062:字段值重复,入库失败
1169:字段值重复,更新记录失败
1177:打开数据表失败
1180:提交事务失败
1181:回滚事务失败
1203:当前用户和数据库建立的连接已到达数据库的最大连接数,请增大可用的数据库连接数或重启数据库
1205:加锁超时
1211:当前用户没有创建用户的权限
1216:外键约束检查失败,更新子表记录失败
1217:外键约束检查失败,删除或修改主表记录失败
1226:当前用户使用的资源已超过所允许的资源,请重启数据库或重启服务器
1227:权限不足,您无权进行此操作
1235:MySQL版本过低,不具有本功能
MySQL修改密码方法总结
http://www.javaeye.com/wiki/topic/204868
http://hi.baidu.com/ykstar/blog/item/528b6390de4ea08da977a4bd.html
方法一
使用phpMyAdmin (图形化管理MySql数据库的工具),这是最简单的,直接用SQL语句修改mysql数据库库的user表,不过别忘了使用PASSWORD函数,插入用户用Insert命令,修改用户用Update命令,删除用Delete命令。在本节后面有数据表user字段的详细介绍。
方法二
使用mysqladmin。输入
mysqladmin -u root -p oldpassword newpasswd
执行这个命令后,需要输入root的原密码,这样root的密码将改为newpasswd。同样,把命令里的root改为你的用户名,你就可以改你自己的密码了。 当然如果你的mysqladmin连接不上mysql server,或者你没有办法执行mysqladmin,那么这种方法就是无效的,而且mysqladmin无法把密码清空。
下面的方法都在mysql提示符下使用,且必须有mysql的root权限:
方法三
mysql> INSERT INTO mysql.user (Host,User,Password) VALUES (/'%/',/'system/', PASSWORD(/'manager/'));
mysql> FLUSH PRIVILEGES
确切地说这是在增加一个用户,用户名为system,密码为manager。注意要使用PASSWORD函数,然后还要使用FLUSH PRIVILEGES来执行确认。
方法四
和方法三一样,只是使用了REPLACE语句
mysql> REPLACE INTO mysql.user (Host,User,Password)
VALUES(/'%/',/'system/',PASSWORD(/'manager/'));
mysql> FLUSH PRIVILEGES
方法五
使用SET PASSWORD语句
mysql> SET PASSWORD FOR system@/"%/" = PASSWORD(/'manager/');
你也必须使用PASSWORD()函数,但是不需要使用FLUSH PRIVILEGES来执行确认。
方法六
使用GRANT ... IDENTIFIED BY语句,来进行授权。
mysql> GRANT USAGE ON *.* TO system@/"%/" IDENTIFIED BY /'manager/';
这里PASSWORD()函数是不必要的,也不需要使用FLUSH PRIVILEGES来执行确认。
注 :PASSWORD()函数作用是为口令字加密,在程序中MySql自动解释。
方法七
D:/>mysql/bin>mysqladmin -u root -p 123 password 456
待测任务 :
http://www.matrix.org.cn/thread.shtml?topicId=229efa5f-54b5-11dc-af81-f34262335978&forumId=38
http://www.wang48.com/jishubaodian/jishubaodianview.jsp?jsd_id=517
http://www.wang48.com/database/?nowpage=1
MYSQL 字符集问题
http://www.blogjava.net/rabbit/archive/2008/03/28/189251.html
MySQL的字符集支持(Character Set Support)有两个方面: 字符集(Character set)和排序方式(Collation)。
对于字符集的支持细化到四个层次:服务器(server),数据库(database),数据表(table)和连接(connection)。
Error 1045 : Access denied for user: 'root@localhost' (Using password: YES )
解决 http://en.zj.cn/blog/8/8/archives/2008/3572.html
Error in my_thread_global_end(): 1 threads didn’t exit
windows 2003企业版,php5.2.2,MySQL(和PHP搭配之最佳组合) 5.037,wordpress中文版2.1.2
成功配置后,在主页和管理页经常出现Error in my_thread_global_end(): 1 threads didn’t exit。
解决 http://www.cncms.com.cn/mysql/4920.htm
查询发现是php5.22和MySQL(和PHP搭配之最佳组合) 5.037问题,需要下载php5.2.1,把libMySQL(和PHP搭配之最佳组合) .dll覆盖php5.2.2的libMySQL(和PHP搭配之最佳组合) .dll,问题解决。
SQL的identity属性作用: 自动增长列 identity(起始值,步长)
http://blog.csdn.net/didostream/archive/2007/12/17/1944345.aspx
--建表,很简单,就不说了
CREATE TABLE [Photos] (
[PhotoID] [int] IDENTITY (1, 1) NOT NULL ,
[AlbumID] [int] NOT NULL ,
[Caption] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
)
--清空表
truncate table dbo.Photos
GO
--打开容许对被IDENTITY修饰的列进行插入的开关,默认示关闭的,也就是不容许
set IDENTITY_INSERT dbo.Photos on
insert into Photos(PhotoID,AlbumID,Caption)values(1,1,'maql1')
insert into Photos(PhotoID,AlbumID,Caption)values(1,2,'maql2')
insert into Photos(PhotoID,AlbumID,Caption)values(1,3,'maql3')
insert into Photos(PhotoID,AlbumID,Caption)values(2,1,'zhangr1')
insert into Photos(PhotoID,AlbumID,Caption)values(2,2,'zhangr2')
insert into Photos(PhotoID,AlbumID,Caption)values(2,3,'zhangr3')
go
--关闭IDENTITY_INSERT开关,也就是不容许对这一列进行插入,而是让其自动增长
set IDENTITY_INSERT dbo.Photos off
insert into Photos(AlbumID,Caption)values(1,'maql1')
insert into Photos(AlbumID,Caption)values(2,'maql2')
insert into Photos(AlbumID,Caption)values(3,'maql3')
insert into Photos(AlbumID,Caption)values(1,'zhangr1')
insert into Photos(AlbumID,Caption)values(2,'zhangr2')
insert into Photos(AlbumID,Caption)values(3,'zhangr3')
insert into Photos(AlbumID,Caption)values(3,'maql4')
go
在本地计算机无法启动MYSQL服务错误 1067 进程意外终止
解决 这种情况一般是my.ini文件配置出错了
http://hi.baidu.com/dburu/blog/item/d30efcf88f56070cd9f9fd0c.html
http://hi.baidu.com/kaleluo/blog/item/a46824d888be933033fa1c83.html
文件:my.ini放入D:/mysql5即可
内容:
[mysqld]
# set basedir to installation path, e.g., d:/mysql5
# 设置为MYSQL的安装目录
basedir=D:/mysql5
# set datadir to location of data directory,
# e.g., c:/mysql/data or d:/mydata/data
# 设置为MYSQL的数据目录
datadir=D:/mysql5/data
[WinMySQLadmin]
Server=D:/mysql5/bin/mysqld-nt.exe
user=root
password=
#以上是设置WinMySQLadmin的配置
[Server]
user=root
password=
[Client]
user=root
password=
JDK、Tomcat和MySQL的绿色安装方法
http://www.blogjava.net/afunms/archive/2007/10/12/152455.html
JDK、Tomcat和MySQL的绿色安装方法。
要制作web系统setup一键安装程序,必须先解决JDK、Tomcat和MySQL三者的绿色
安装问题。今天研究了半天,终于有了结果。
现在假设我们要把这三者安装到C:/SourceView目录下。
1. JDK。Copy安装好的JDK,C:/Program Files/Java/jdk1.5.0_11到
C:/SourceView下就可以了。
2. Tomcat。Copy安装好的Tomcat到C:/Sourceview下。然后修改bin下的startup.bat
在文件顶部加上
set CATALINA_HOME=C:/SourceView/tomcat
set JAVA_HOME=C:/SourceView/jdk1.5.0_11
3. MySQL。最麻烦的就是MySQL了。Copy安装好的MySQL到C:/SourceView下。
首先修改my.ini.
basedir=C:/sourceview/MySQL/
datadir=C:/sourceview/MySQL/data/
然后,执行
C:/sourceview/MySQL/bin>mysqld-nt --install MySQL5.0
--defaults-file="C:/sourceview/MySQL/my.ini"
安装MySQL服务,服务名MySQL5.0。
C:/windows/system32/net start MySQL5.0
启动MySQL服务。
这样,以后只要copy SourceView到需要安装的地方,然后修改一下几点文件,这三者就能用了。
MySql Query Browser
Default Schema:mysql、ssh、test、information_schema
mysql show log tools
http://www.javaeye.com/topic/242516
mysqldumpslow、mysqlsla 、myprofi 、mysql-explain-slow-log、mysqllogfilter
linux 下mysql 性能监控和分析工具:
http://www.maycode.com/index.php/hotspot/35-linux/787-mysql.html
Maatkit
Maatkit is a great set of tools for MySQL Performance Analyses and maintainence. Must know and have for any MySQL User.
mysqladmin
mysqladmin extended -i100 -r is very nice way to look how MySQL performance counters increment and it can tell you a lot about server run status.
mysqlreport
MySQL Report is a tool which would look at status variables same as mysqladmin extended but will group them together nicely and provide some hints on what are good and bad values.
vmstat
vmstat 10 is a great tool to run and understand what system load is looking up. It is not too detailed but great for the glance view.
mysqlsla
This is nice tool to analyze slow query log. It reads bunch of different log formats and has various stats, and it was there before mk-log-parser appeared.
innotop
Innotop is great top like tool for MySQL and is helpful even if you do not use Innodb tables. Very nice to watch what happens to server in the real time.
filefrag
filefrag is the fool to check fragmentation of the file. Ever wondered how fragmented your tablespace or table on the file level ?
iostat
iostat tool is a great help investigating/troubleshooting IO problems - it will show you amount of IOs happening per device, their type, request size as well as queue size and response time.
mpstat
mpstat is a great tool to see details on CPU usage - how are different CPUs are being used, how many interrupts the handle etc. Helps to better understand and fine tune the load.
oprofile
oprofile is usually used for advanced MySQL tuning when the load is CPU bound - it will tell you where exactly inside MySQL or Kernel CPU time is spent.
iohist
iohist is a little tool to show histogram for IO response time. The main use for it is to see how response time is split for read and write request rather than seeing the average reported by iostat. These can be very different.
drtace
Dtrace is a great tool for system level performance analyses, with a catch of it being unavailable on Linux which limits it practical use dramatically.
fincore
fincore is a tool to check how well given file is cached in operation system cache. Very helpful to analyze caching of MyISAM tables for example.
sysbench
sysbench is a tool to check performance of system and MySQL. Helpful to check different hardware and OS characteristic.
MySQL分页SQL和ORACLE分页SQL
http://hi.baidu.com/82826200/blog/item/a4608ace42ab630692457e9c.html
MySQL limit 分页
http://blog.163.com/xiaosanshaoli@126/blog/static/2979216320085251039537/
1. 标准查询语句:
select * from table(表名) limit startPos,pageSize
小结:
1.startPos:定义当前页起始位置 注意:当前页的起始位置只能在当前页确定之后才能定义;
2.pageSize:定义每页显示数据的条数
3.如果给定2个参数,第一个指定要返回的第一行的偏移量,第二个指定返回行的最大数目。初始行的偏移量是0(不是1)。
如: select * from table LIMIT 5,10; 这个查询出来的是第6到15之间的10条数据
如果给定一个参数,它指出返回行的最大数目。
如: select * from table LIMIT 5; 这个查询出来的是前5条数据
(LIMIT n等价于LIMIT 0,n)
MySQL删除表中大批量的数据
http://www.javayou.com/diary/146633154
假设有一个表(osc_logs)有2000万条记录,我们要在业务不停止的情况下删除其中status=1的所有记录,差不多有1800万条,直接执行 DELETE FROM osc_logs WHERE status=1 会发现删除失败,因为lock wait timeout exceed的错误。因为这条语句所涉及的记录数太多了,因此我们可以分批来删除,比如每10000条进行删除,那么我们可以利用MySQL这样的语句来完成
DELETE FROM osc_logs WHERE status=1 ORDER BY log_id LIMIT 10000;
然后分多次执行就可以把这1800万条记录成功删除。
mysql backup & comback 备份和恢复
http://www.eliuzd.com/blog/article.asp?id=320
1。导出一个数据库
mysqldump -u用户名 -p密码 数据库名 > 导出的文件名
D:/mysql5/bin>mysqldump -u root -p root ssh > ssh.sql
2。导出数据库的一个表
mysqldump -u用户名 -p密码 数据库名 表名 > 导出的文件名
D:/mysql5/bin>mysqldump -u root -p root ssh > ssh.sql
3。导入数据到mysql5
d:/mysql5/bin>mysql -uroot -p
mysql>use ssh;
mysql>source d:/ssh.sql
Ubuntu使用cron自动备份mysql数据库
http://bbisky.javaeye.com/blog/87519
ubuntu server上运行了一个discuz论坛,今天想起来备份一下数据库,原来一直没有备份过猛吧!!呵呵。想到干脆来个自动备份,根据论坛贴子不是太多,一周备份一次吧。 下面是备份脚本文件 #!/bin/sh /usr/bin/mysqldump -ueceroot -p88558855 --default-character-set=utf8 --opt --extended-insert=false --triggers -R --hex-blob -x airclass_BBS | gzip > ~/mysqlbackup/airclass_BBS_$(date +%F).gz 使用了gzip压缩后保存到指定的位置,并用日期命名文件。在终端下执行了一下,没有问题。 然后把脚本放到/etc/cron.weekly目录,让他每星期执行一次。原来也弄过一次,始终没有正确执行过,后来发现原来是脚本写得有问题,原来是在windows下用记事本写的,然后传到服务器上。用$ ./cuc-db-backup 执行了一下,发现有错,提示#!/bin/sh^M: interper…什么的错误,原来是文件格式的问题,没办法,直接在linux终端重抄了一遍文件,OK,没问题了!等着自动备份吧 :-P 顺便研究了一下ubuntu的crontab文件,内容如下: # m h dom mon dow user command 17 * * * * root run-parts --report /etc/cron.hourly 25 6 * * * root test -x /usr/sbin/anacron || run-parts --report /etc/cron.daily 47 6 * * 7 root test [...]
MySQL中的各种JOIN
MySQL JOIN(CROSS JOIN, INNER JOIN, LEFT /RIGHT[OUTER] JOIN)
http://hi.baidu.com/alex_wang58/blog/item/0e98dcf0709f66c67831aae3.html
1. 笛卡尔积(交叉连接)
在MySQL中可以为CROSS JOIN或者省略CROSS即JOIN,或者使用','
如
SELECT * FROM table1 CROSS JOIN table2
SELECT * FROM table1 JOIN table2
SELECT * FROM table1,table2
由于其返回的结果为被连接的两个数据表的乘积,因此当有WHERE
, ON或USING条件的时候一般不建议使用,因为当数据表项目太多的时候,会非常慢。
一般使用LEFT [OUTER] JOIN或者RIGHT [OUTER] JOIN
2. 内连接INNER JOIN
在MySQL中把INNER JOIN叫做等值连接,即需要指定等值连接条件
在MySQL中CROSS和INNER JOIN被划分在一起,不明白。
参看MySQL帮助手册
http://dev.mysql.com/doc/refman/5.0/en/join.html
join_table:
table_reference [INNER | CROSS] JOIN table_factor [join_condition]
3. MySQL中的外连接,分为左外连接和右连接,
即除了返回符合连接条件的结果之外,还要返回左表(左连接)或者右表(右连接)中不符合连接条件的结果,相对应的使用NULL对应。
a. LEFT [OUTER] JOIN
SELECT column_name FROM table1 LEFT [OUTER] JOIN table2 ON table1.column=table2.column
除了返回符合连接条件的结果之外,还需要显示左表中不符合连接条件的数据列,相对应使用NULL对应
b. RIGHT [OUTER] JOIN
SELECT column_name FROM table1 RIGHT [OUTER] JOIN table2 ON table1.column=table2.column
RIGHT与LEFT JOIN相似不同的仅仅是除了显示符合连接条件的结果之外,还需要显示右表中不符合连接条件的数据列,相应使用NULL对应
--------------------------------------------
添加显示条件WHERE, ON, USING
1. WHERE子句
2. ON
3. USING子句,如果连接的两个表连接条件的两个列具有相同的名字的话可以使用USING
例如
SELECT
连接多余两个表的情况
举例:
mysql> SELECT artists.Artist, cds.title, genres.genre
-> FROM cds
-> LEFT JOIN genres
-> ON cds.genreID = genres.genreID
-> LEFT JOIN artists
-> ON cds.artistID = artists.artistID;
或者
mysql> SELECT artists.Artist, cds.title, genres.genre
-> FROM cds
-> LEFT JOIN genres
-> ON cds.genreID = genres.genreID
-> LEFT JOIN artists
-> ON cds.artistID = artists.artistID
-> WHERE (genres.genre = 'Pop');
--------------------------------------------
另外需要注意的地方
在MySQL中涉及到多表查询的时候,需要根据查询的情况,想好使用哪种连接方式效率更高。
1. 交叉连接(笛卡尔积)或者内连接
[INNER | CROSS] JOIN
2. 左外连接LEFT [OUTER] JOIN或者右外连接RIGHT [OUTER] JOIN
注意指定连接条件WHERE, ON,USING.
--------------------------------------------
看懂MySQL手册定义的MySQL各种JOIN的用法 //看懂如下的定义方式
http://lveyo.javaeye.com/blog/229879
为了备份虚拟主机的mysql数据库,只能用mysqldump导出到本地。
运行:
Java代码
Java代码
mysqldump --opt -h192.168.0.156 -uUsername -pPassword databaseName>database.sql
但由于数据库用户的权限不够,总显示:
Java代码
Java代码
mysqldump: Got error: 1044: Access denied for user 'Username'@'%' to database 'databaseName' when using LOCK TABLES
是没有LOCK TABLES的权限,于是查看mysqldump的帮助,加上参数--skip-lock-tables
Java代码
Java代码
mysqldump --opt -h192.168.0.156 -uUsername -pPassword --skip-lock-tables databaseName>database.sql
备份成功!
mysql tools
http://www.javaeye.com/news/1447
1. phpMyAdmin
phpMyAdmin是一个PHP写的MySql管理软件,它能够创建和删除 databases,创建/删除/改变 tables,删除/编辑/增加 fields,运行SQL statement,管理keys on fields.
phpMyAdmin是基于web的开源软件。
官网URL: http://www.phpmyadmin.net
2. HeidiSQL
HeidiSQL 有一个非常容易使用用户友好的界面,它允许你在windows桌面上管理和浏览MySql数据库。它的特点包括:生成的优秀的SQL-exports功能,两个数据库表同步功能,管理用户权限,导入Text,CSV,HTML,XML等类型文件数据,通过舒服易用的表格显示数据等等。
HeidiSQL 是一个优秀的桌面MySql开源管理程序。
官网URL: http://www.heidisql.com
Screenshots: http://www.heidisql.com/screenshots.php
Download: http://www.heidisql.com
3. MySQL GUI Tools
MySQL GUI Tools 管理工具包括很多基本的功能,包括以下三个部分:
- MySQL Administrator
- MySQL Query Browser
- MySQL Migration Toolkit
支持多种操作系统平台: Windows/Mac/Linux
类型 : Desktop/ (GPL / commercial) Dual licensing.
官网URL: http://dev.mysql.com/downloads/gui-tools/
4. MyDB Studio
MyDB Studio 是一个Mysql Server端管理工具的集合,包括:SSH数据库链接工具,用户权限管理,服务器重启工具,MySql使用缓存重启工具,查看/中止服务端进程工具等。
官网URL: http://www.mydb-studio.com
Screenshots: http://www.mydb-studio.com/index.php?lang=en&p=2
下载Download: http://www.mydb-studio.com/index.php?lang=en&p=3
5. SQL Front
SQL-Front 是一个MySql数据库图形界面管理工具。它帮助你定义和管理数据库结构,导入数据,编辑数据等。
官网URL: http://www.sql-front.com
Screenshots: http://www.sql-front.com/screenshots.html
下载Download: http://www.sql-front.com/download.html
6. SQLyog MySQL GUI - Community Edition
一个同样优秀的MySql的图形界面工具。企业版有更多功能。
官网URL: http://www.webyog.com
end