★MySQL一些很重要的SQL语句

【mysqldumpslow】

-s 排序选项:c 查询次数 r 返回记录行数 t 查询时间 
-t 只显示top n条查询 
mysqldumpslow -s r -t 10000 slow-queries.log >analysis.log

 

【SQL缓存…】

query-cache

 

【PHP中mysql相关函数】

mysql_list_tables () 表查询函数,类似 mysql_query () 函数

mysql_fetch_field () 字段信息函数,返回句柄

Name 字段的名称

Table 字段所属数据表的名称

Type 字段的类型

max_length 字段的最大长度

not_null 字段是否不能为空,是,则这一项的值为 1

primary_key 字段是否为主键,是,则这一项的值为 1

unique_key 字段是否为 unique 键,是,则这一项的值为 1

multiple_key 字段是否不为 unique 键,是,则这一项的值为 1

Numeric 字段是否为数字型,是,则这一项的值为 1

Blob 字段是否为 blob 型,是,则这一项的值为 1

Unsigned 数字型的字段是否为 unsigned 的,是,则这一项的值为 1

Zerofill 数字型的字段是否为 zerofilled 的,是,则这一项的值为 1

 

 

 

 MySQL执行一次update更改多条数据】

 表结构:myid,name.

UPDATE tbName SET name = CASE myid WHEN 2 THEN 'Hello' WHEN 3 THEN 'world' WHEN 8 THEN 'Jerry' END WHERE myid IN (2,3,8) .

这条语句相当于执行 3条update 语句:

① update tbName set name='Hello' where myid=2,

② update tbName set name='world' where myid=3,

③ update tbName set name='Jerry' where myid=8,

但是效率会提高!

 

 

mysql 交换/移动列的顺序,2015年5月19日 12:39:19】

alter table 表名 modify 字段名 字段类型 after 字段
举例
alter table user_info modify user_name varchar(10) after user_id;
将user_name字段移到user_id后面
如果想移到最前面:
alter table user_info modify user_id char(8) first;//将user_id移到最前面!!

alter table qg_weishang modify phone varchar(20) NOT NULL DEFAULT '' COMMENT '手机号码' after code;

 

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

 

【Mysql导出某个表的数据并且加查询条件】

 

mysql导出数据为sql脚本使用mysqldump命令,例如:

mysqldump -uroot -p 123456 test > test.sql 导出test数据库数据到test.sql文件

导出单个表的数据在数据库名后面加空格写上表名,例如导出test数据库users表数据:

mysqldump -uroot -p 123456 test users> test.sql

如果要导出某个表表的一部分数据呢?

我们可以加上--where参数,可以限制导出数据的条件,例如我们要导出test数据库score表(id,user_id,score)的score字段大于等于60的数据:

mysqldump -uroot -p123456 test score --where="score>=60" > test.score.sql

导出一个表的部分字段到一个文件:

mysql -h192.168.x.x -uroot -e "set names 'utf8';select realname,card_number,company_name from Database.name_v where type=2 and status=1" > ~/name_v.sql -p

 

《案例:使用where条件导出某个表的部分数据》

cd ~/backdb/temp_table/

#自定义输入要导出的表名

echo "Please Enter table name:"

read tbname

 

#定义where条件

echo "Please Enter Where TiaoJian"

read tiaojian

 

#定义文件名

before_filename="${tbname}_where.sql"

 

#备份导出数据库

mysqldump -h localhost -uroot -p123456 qgzs $tbname --where="${tiaojian}" > ${before_filename}

 

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

【加索引】

ALTER TABLE qg_goods ADD INDEX IDX_ATTENTION_COUNT (ATTENTION_COUNT) ;

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

 

【MySQL获取group by 的记录总数,使用 SELECT COUNT(DISTINCT field) FROM tbname

 

【添加和修改字段】

alter table qg_tag MODIFY tag_sort int(11);  //修改一个字段的类型

ALTER TABLE qg_goods_bargain_count ADD is_url_matching tinyint(1) NOT NULL DEFAULT 1 COMMENT 'URL是否匹配'; //添加字段

 

 

【修改字段名,或者字段备注等等信息】

alter table qg_goods CHANGE create_time create_time int(11) NOT NULL DEFAULT 0 COMMENT '最后一次入库时间(原:发布时间)';
alter table qg_goods CHANGE last_create_time first_create_time int(11) NOT NULL DEFAULT 0 COMMENT '第一次入库时间';

 

mysql 重命名表

RENAME TABLE tb_name TO new_tb_name, tb_name2 TO new_tb_name2, …

MySQL 添加索引

1.添加PRIMARY KEY(主键索引)
mysql>ALTER TABLE `table_name` ADD PRIMARY KEY ( `column` )
2.添加UNIQUE(唯一索引)
mysql>ALTER TABLE `table_name` ADD UNIQUE (
`column`
)
3.添加INDEX(普通索引)
mysql>ALTER TABLE `table_name` ADD INDEX index_name ( `column` )
4.添加FULLTEXT(全文索引)
mysql>ALTER TABLE `table_name` ADD FULLTEXT ( `column`)
5.添加多列索引
mysql>ALTER TABLE `table_name` ADD INDEX index_name ( `column1`, `column2`, `column3` )

 

【qgzs中的表用到的key索引,应该和index一样的...】

ALTER TABLE qg_goods ADD KEY last_create_time_gid_x( `last_create_time_gid` )

 

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

自定义导出某些数据(加where条件):

/usr/local/mysql/bin/mysqldump -h qwbcgmirror.mysql.rds.aliyuncs.com -u** -p** db_name tb_name --where="id<10" > aa.sql

 

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

【DCL】show databases 看所有库;show tables 看所有表;desc 看表结构;show variables配置文件中的变量

【整型】TINYINT,SMALLINT,MEDIUMINT,INT,BIGINT

【索引】主键索引、唯一索引(unique)、常规索引(index/key 是同义词)、全文索引(fulltext类型索引, MyISAM 表类型使用,只有在varchar char text文本字符串上使用)

【引擎】

 

【SQL like查找】%表示0个或多个字符构成的字符串,_表示单个字符。以PHP100开头:'PHP100%' ,PHP100结束:'%PHP100' ,包含PHP100:'%PHP100%'

 

 

 

转载于:https://www.cnblogs.com/rxbook/p/6000004.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值