现在的位置: 首页 > 综合 > 正文

linux下mysql使用整理

2013年12月03日 ⁄ 综合 ⁄ 共 2935字 ⁄ 字号 评论关闭

目录

【mysql安装】

【常用SQL语句】

【SQL模糊匹配】

【SQL中常用函数】

【mysql安装】

【mysql中的键】

【mysql的sql文本文件】

【navicat for mysql】

【查询大小写区分】

【参考资料】

【SQL模糊匹配】

------------------------------------------




【mysql安装】

安装选项

--with-plugins=myisam,innodb_plugin,innobase


数据库目录

/var/lib/mysql/

配置文件目录

/etc/my.cnf

log目录

/var/lib/mysql/[hostname名].err


初始化数据库:

mysql_install_db --user=mysql

启动:

mysqld start  或者 service mysql start

停止:

mysqld stop


是否支持innodb查询:

show variables like 'have_innodb';


【常用SQL语句】

1)连接数据库

连接远程mysql数据库

mysql -uremoteuser -pmh_db_server -h65.255.42.38 -Djoyhero_user

mysql常用参数:“

--skip-column-names 查询结果不显示表头标题,例如:

mysql --skip-column-names -e "update table set field=xx limit 10;select row_count();"

1)查看表结构信息

show create table mem_tip_info;

2)查看前几条数据

select uid from sys_user limit 2;

SELECT * FROM table   LIMIT [offset,] rows | rows OFFSET offset

SELECT * FROM mytable LIMIT 5,10;  // 检索记录行 6-15


3)插入一条数据,若存在则更新某几个字段的值

ON DUPLICATE KEY UPDATE

例如:insert into test2 select * from test1 on duplicate key update a = 'REMOVE-ME';

http://blog.csdn.net/cheungjustin/article/details/5992445


4)导入表定义sql文件

命令行输入: mysql -h localhost -u root -p mydb2 < e:\mysql\mydb2.sql

mysql -h localhost -u star -p star < \

5)插入多条数据

insert into sys_mail_system (uid, content_id) values(1, 'a'), (2, 'b');

替换形式插入:

replace into sys_mail_system (uid, content_id) values(1, 'a'), (2, 'b');


6)清空表中所有数据

truncate table log_gm_operate;  立即执行

delete from log_gm_operate;


7)修改表数据

update 表名 set 字段=新值,… where 条件

mysql> update MyClass set name='Mary' where id=1;


8)当前数据库包含的表信息:

mysql> show tables; (注意:最后有个s)

9)显示所有的数据库

命令:show databases (注意:最后有个s)

mysql> show databases;


10)数据库导出导入操作


mysqldump导出database或table:

mysqldump -u <用户名> -p <密码> <database名> [table1 table2] > dump.sql

例如:

mysqldump -u wcnc -p smgp_apps_wcnc > wcnc.sql

导出表部分数据

mysqldump -uroot -p'njmysqlurp543' joyhero_index user_index --where="uid <=200" > user_index_100.sql

恢复数据库或表

mysql -u username -p password dbname < filename.sql



其它参数说明:

--databases: mysqldump后跟的所有都是database,而不是table。这个在需要备份多个数据库的时候有效。

如果使用了--databases参数,则在导入的时候可以不指定数据库,并且数据库可不存在。

例如:


-t or --no-create-info

这个选项使的mysqldump命令不创建CREATE TABLE语句,这个选项在您只需要数据而不需要DDL(数据库定义语句)时很方便。


-d or --no-data 这个选项使的mysqldump命令不创建INSERT语句。

在您只需要DDL语句时,可以使用这个选项。


11)两个数据库之间拷贝

$mysqldump database [table] | mysql [-h other.host.com] database1


12)左关联

left join <表名> on <条件> where子句

select  A.ID as AID, B.ID as BID   from A left join B on A.ID = B.ID where B.ID<3

关联产生多条数据解决方案:

http://www.forasp.cn/html/2291.html

select product.*,foraspcn.image from product left join(select imagename,pid from image group by pid) foraspcn on product.pid = foraspcn.pid;

第二张表现group by滤掉重复数据,GROUP BY 是分组查询, 一般 GROUP BY 是和 聚合函数配合使用,


13)修复表

REPAIR TABLE [表名称];

http://blog.chinaunix.net/space.php?uid=20447986&do=blog&id=1945633


14)用户权限查看和修改

mysql>use <数据库名>

mysql> grant all on *.* TO rxsg2@'%' identified by "rxsg2" with grant option;

mysql>GRANT ALL ON *.* TO star@localhost IDENTIFIED BY "star" WITH GRANT OPTION;

mysql>GRANT ALL ON *.* TO star@127.0.0.1 IDENTIFIED BY "star" WITH GRANT OPTION;

grant all on *.* to 'remoteuser'@"%" identified by "mh_db_server"

注意密码必须要用双引号

show grants for star@localhost

show grants for star@'%'


http://hi.baidu.com/drinfgu/blog/item/20ed39dbc902b2163af3cf18.html


15)表结构增加一列

alter table mytable add column single char(1) not null;


抱歉!评论已关闭.