目录
【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
停止:
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
SELECT * FROM mytable LIMIT 5,10;
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
关联产生多条数据解决方案:
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
15)表结构增加一列
alter table mytable add column single char(1) not null;