zoukankan      html  css  js  c++  java
  • 常用笔记: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;
  • 相关阅读:
    iPad 3g版完美实现打电话功能(phoneitipad破解)
    vb.NET基础总结
    PMP考试的过与只是
    Oracle基础学习5-- Oracle权限之”角色”
    linux内存操作----kernel 3.5.X copy_from_user()和copy_to_user()
    猜数字游戏
    pthread_t definition
    POJ 2057 The Lost House
    简单截图功能实现
    java实现罗马数字转十进制
  • 原文地址:https://www.cnblogs.com/rxbook/p/10685323.html
Copyright © 2011-2022 走看看