常用笔记:MySQL

【MySQL】

mysql -h192.168.0.201 -P3306 -uroot -p123 -D数据库名 #命令行连接数据库
SET PASSWORD = PASSWORD('123456'); #修改root密码
mysqldump -uroot -p123456 test [score] [--where="score>=60"] > db.sql #导出表数据并包含where条件
mysql -h192.168.x.x -uroot -p123456 -e "set names 'utf8';select field from dbname where type=2" > db.sql #自定义SQL数据导出

 mysqlfloat类型的问题:

MySQL数据库的float类型,明明更新数据为 999999999(九个9),但是update之后结果变成了1000000000(10亿)。后来查阅资料才知道需要设置为decimal,问题解决。目前原因没查明白,先记下来!

mysqldump 备份导出数据排除某张表,用 --ignore-table=dbname.tablename 参数,可以忽略多个。

mysqldump --set-gtid-purged=OFF -h127.0.0.1 -uroot -p123456 dbname --ignore-table=dbname.tb1--ignore-table=dbname.tb2 > ./db_files/db.sql

MySQL查询某字段值重复的数据:

查询user表中 user_name字段值重复的数据及重复次数:
select user_name,count(*) as count from user group by user_name having count>1;

shell 脚本中执行SQL语句 -e:

有时候希望通过定时脚本自动执行某些SQL语句,用下面的命令:

/usr/local/mysql/bin/mysql -uroot -p123456 -e "
use dbname
source db.sql
select * from dev
quit"

MySQLsum()字段进行条件筛选:having

显示每个地区的总人口数和总面积.仅显示那些面积超过100的地区。
SELECT region, SUM(population), SUM(area) FROM bbc GROUP BY region HAVING SUM(area)>100
在这里,我们不能用where来筛选超过100的地区,因为表中不存在这样一条记录。相反,having子句可以让我们筛选成组后的各组数据

MySQL复制同一个服务器的表结构和表数据

例如,现在服务器上有数据库 dbx 和 dby,dbx中有很多表,要把dbx中的表全部复制到dby,如下操作:
use dby;
[复制表结构]
CREATE TABLE user LIKE dbx.user
[复制旧表的数据到新表]
INSERT INTO user SELECT * FROM dbx.user

mysql 查找某个表在哪个库

SELECT table_schema FROM information_schema.TABLES WHERE table_name = '表名';

常用SQL语句:

/*创建表*/
CREATE TABLE tb_test (
id int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增主键',
name varchar(100) NOT NULL DEFAULT '' COMMENT '名称',
user_id int(11) unsigned NOT NULL DEFAULT '0' COMMENT '用户id',
update_time int(11) unsigned NOT NULL DEFAULT '0' COMMENT '修改时间',
is_del tinyint(1) unsigned NOT NULL DEFAULT '0' COMMENT '是否禁用',
PRIMARY KEY (id),
KEY user_idx (name,user_id)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT='用户信息';
/*给表添加字段 ADD*/
ALTER TABLE tb_test ADD is_url tinyint(1) NOT NULL DEFAULT 1 COMMENT '是否是URL';
/*修改一个字段的类型 MODIFY*/
ALTER TABLE tb_test MODIFY is_url int(11) NOT NULL DEFAULT 1 COMMENT '是否是URL';
/*修改一个字段的名称  CHANGE*/
ALTER TABLE tb_test CHANGE is_url is_web_url int(11) NOT NULL DEFAULT 1 COMMENT '是否是URL';
/*添加普通索引*/
ALTER TABLE tb_test ADD KEY is_del_x(update_time,is_del);
ALTER TABLE tb_test ADD INDEX idx_name_content(name);
/*删除字段*/
ALTER TABLE tb_test DROP COLUMN is_web_url;
/*重命名表*/
RENAME TABLE tb_test TO tb_ceshi
/*添加数据*/
insert into tb_test(`id`,`name`,`user_id`) values (1,'哈哈哈',1001),(2,'李四',1002);
/*修改数据*/
update tb_test set `name`=’abcd’ where id=5;
/*删除数据*/
delete from tb_test where id=5;

猜你喜欢

转载自www.cnblogs.com/rxbook/p/10685323.html