mysql数据库常用操作

  • 登录

    • mysql -u root -p【密码模式】 通常默认密码是『123456』

    • 修改访问密码:mysqladmin -u root password “password” 

  • 启动:

    • work目录下可直接运行:./mysqld_safe & 

  • 进入数据后操作:

    • show databases:查看当前数据库拥有的数据库名称;

    • use $database_name:切换到对应的数据库中;

    • show tables:查看当前数据库中拥有的数据表;

    • desc $table_name:查看对应的数据表结构;

  • 创建数据库:

    • create database $database_name

  • 创建数据表:

    • create table $mytable (name VARCHAR(20), sex CHAR(1), birth DATE, birthaddr VARCHAR(20));

    • create table $mytable(id int(4) primary key not  null  auto_increment, item varchar(128) not  null ); #带自增id

  • 插入数据:

    • insert into $mytable values (′abccs′, ′f′, ′1977-07-07′, ′china′);

  • 查询数据库中所有表的名字:

    • select table_name from information_schema.tables where table_schema=“数据库名字"

  • 删除数据表中的字段:

    • alter table `$table_name` drop column $删除的字段;

  • 添加数据表中的字段:

    • alter table `$table_name`   Add column $添加的字段 int not null default 0 AFTER `Regionid` (在哪个字段后面添加)

  • 导出数据库数据文件的方法:

    • 导出为csv文件:mysql -A $database_name -h 127.0.0.1 -uroot -p123456 -ss -e "SELECT * from $table_name limit 30000;" >$table_name.csv

    • 导出为表结构 + 数据sql形式: mysqldump -uroot -pdbpasswd $dbname >db.sql;

  • 导入csv到数据库中:

    • mysql -u用户名 -p密码 数据库名 --local-infile=1 -e "load data local infile '/home/hrd/sdata.csv' into table sdata fields terminated by ',' lines terminated by '\r\n';"

    • 特别注意:

      • u用户名之间是没有空格的;

      • p与密码之间也没有空格。

      • sdata是表名,与csv文件/home/hrd/sdata.csv名称一致。

      • 数据库就是sdata表所在的数据库。

      • fields terminated by ‘,’表示数据之间用“,”隔开,这是csv文件的特性。

      • lines terminated by ‘\r\n’表示每行数据以回车结束。

      • 至此,文件导入成功。

  • 给已有的数据表增加自增字段:

    • alter table $table_name add column id int auto_increment not null, add primary key(id);

  • 调整mysql字段顺序的方法:

    • ALTER TABLE `$table_name` CHANGE `a3` `a3` VARCHAR(256) AFTER `q3`;

  • 查看数据库最后修改时间:

    •  select * from information_schema.TABLES where information_schema.TABLES.TABLE_SCHEMA = '表名' and information_schema.TABLES.TABLE_NAME = '表名' 

  • 查看本机数据库(所有表)最后修改时间:

    • SELECT TABLE_SCHEMA,TABLE_NAME,UPDATE_TIME FROM information_schema.tables order by UPDATE_TIME DESC;

  • 查询数据表中有多少条记录:

    • select count($表中任意属性名) from $table_name;

  • 更新数据记录:

    • update $table_name set a1 = "北京明天xx+,xx+℃~xx+℃,xx+." where q1 = "明日北京天气”;

  • 数据删除:

    • delete from $table_name where q1=“大红袍”;

  • 解决因数据删除,主键(id)不连续的问题:

    • 如果是最后结果

  • 删除数据表:

    • drop table $table_name

  • 修改字段长度:

    • alter table 表名 modify column 字段名 类型;

  • 从一个表查结果写入另一张表的操作办法:

    • INSERT INTO test_qd_domain_srcid_info SELECT * FROM qd_domain_srcid_info where domain="entity query”;

  • 查询表结构的字段集合,且支持排除某个字段操作;

    • colums = select group_concat(`COLUMN_NAME` separator ',') from information_schema.`COLUMNS` where TABLE_SCHEMA='%s' and TABLE_NAME='%s' and COLUMN_NAME NOT IN ('%s’);

    • 结合select,可以查询出来指定的列数据:

      • select $colums from $table_name;

  • 查询表项名字:

    • SELECT column_name FROM information_schema.columns WHERE table_schema='your_db_name' AND table_name='your_tb_name’ ;

  • 清空数据库中的所有数据:

    • delete from $table_name;

  • mysql数据库删除重复记录方法:

    • delete from $table_name where  q1 in (select q1 from ( select q1 from $table_name group by q1 having count(q1)>1) a)  and id not in ( select min(id) from (select min(id) as id from $table_name group by q1 having count(q1)>1 ) b);

  • left join、(inner)join、right join含义:参考

     
    • left join:以左表为主,“连接”右表与左表交集部分

      • select
           *
        from
           subject
        left join score on subject.id = score.id
    • (inner)join:左表与右表交集部分​​​​​​

      • select
           *
        from
           subject
        join score on subject.id = score.id
      •  
      •  

    • right join:以右表为主,“连接”左表与左表交集部分

      • select
           *
        from
           subject
        right join score on subject.id = score.id
      •  

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值