zoukankan      html  css  js  c++  java
  • linux命令行操作mysql数据库明细

    连接数据库==》

    mysql -uroot -p

    输入root密码

    进入mysql操作后 下面的命令不要忘了最后结尾的;

    1.选择数据库
    命令: use <数据库名>

    2.查看表的引擎类型等状态信息
    SHOW TABLE STATUS [FROMdb_name] [LIKE 'pattern']

    3.当前数据库包含的表信息
    show tables;

    4.查看当前使用的数据库
    select database();

    5.删除数据库
    命令:drop database <数据库名>;

    6.显示所有的数据库
    命令:show databases;(注意:最后有个s)

    7.创建数据库
    命令:create database <数据库名>;

    8.建立表
    create table <表名> (<字段名1> <类型1> [,..<字段名n> <类型n>]);
    补充:根据已有的表创建新表。
    8.1 create table tab_new like tab_old; (只有表结构)
    8.2 create table tab_new as select * from tab_old; (既包含表结构,又包含表数据)

    9.获取表结构
    命令:
    desc 表名;
    or
    show columns from 表名;

    10. 删除表
    命令:drop table <表名>;
    11.更改表名
    命令:rename table 原表名 to 新表名;

    12.在表中增加字段
    命令:alter table 表名 add 字段 类型 其他;
    例如:alter table myclass add passtest int(4) default '0';

    13.插入数据
    命令:insert into <表名> [( <字段名1>[,..<字段名n > ])] values ( 值1 )[, ( 值n )];
    例如:
    insert into myclass (id, name, sex, degree, passtest) values(1, 'david', 1, 80.56, 78);
    insert into myclass values(2, 'sandy', 0, 100, 90);
    insert into myclass (id, name, sex, degree) values(3, 'renee', 0, 90.34);

    14.导出整个数据库
    命令:mysqldump -u 用户名 -p 数据库名 > 导出的文件名

    15.导出一个表
    命令:mysqldump -u 用户名 -p 数据库名 表名> 导出的文件名

    16.导出一个数据库结构
    命令:mysqldump -u root -p -d --add-drop-table test > test_db.sql
    -d 没有数据 --add-drop-table 在每个create 语句之前增加一个drop table

    17.常用source 命令
    source "路径名"+/mytest_emp_dept.sql

    show open tables;
    能够查看当前有那些表是打开的。In_use列表示有多少线程正在使用某张表,Name_locked表示表名是否被锁,这一般发生在Drop或Rename命令操作这张表时。
    所以这条命令不能帮助解答我们常见的问题:当前某张表是否有死锁,谁拥有表上的这个锁等。
    show open tables from database;
    show OPEN TABLES where In_use > 0;

    SELECT * FROM information_schema.`PROCESSLIST`;
    添加索引
    ALTER TABLE t_cms_home ADD INDEX IDX_SID(C_SID);

    查看表索引索引 
    show INDEX from t_cms_home;
    show keys from t_u_basic;

    SHOW PROCESSLIST显示哪些线程正在运行
    show processlist;只列出前100条,如果想全列出请使用show full processlist;

    查看服务器状态。
    show status like '%lock%';
    日志:二进制文件记录
    show variables like 'log_bin';

    记录二进制数据的文件具体信息
    show master status;

    explain命令显示了mysql如何使用索引来处理select语句以及连接表
    EXPLAIN的使用方法:
    在select语句前加上explain就可以了。

    显示系统变量的名称和值
    show variables;

    显示服务器所支持的不同权限
    show privileges;

    显示create database 语句是否能够创建指定的数据库
    show create database database_name;

    显示create database 语句是否能够创建指定的数据表
    show create table table_name;

    显示安装以后可用的存储引擎和默认引擎。
    show engies;

    显示innoDB存储引擎的状态
    show innodb status;

    显示BDB存储引擎的日志
    show logs;

    显示最后一个执行的语句所产生的错误、警告和通知
    show warnings;

    只显示最后一个执行语句所产生的错误
    show errors

    18 说明:拷贝表(拷贝数据,源表名:a 目标表名:b) (Access可用)
    insert into b(a, b, c) select d,e,f from b;

    19.说明:跨数据库之间表的拷贝(具体数据使用绝对路径) (Access可用)
    insert into b(a, b, c) select d,e,f from b in ‘具体数据库' where 条件
    例子:..from b in '"&Server.MapPath(".")&"data.mdb" &"' where..

    20、说明:between的用法,between限制查询数据范围时包括了边界值,not between不包括
    select * from table1 where time between time1 and time2
    select a,b,c, from table1 where a not between 数值1 and 数值2

    21、说明:一条sql 语句搞定数据库分页
    select top 10 b.* from (select top 20 主键字段,排序字段 from 表名 order by 排序字段
    desc) a,表名 b where b.主键字段 = a.主键字段 order by a.排序字段

    22、
    select * from table1, table2 where table1.id *= table2.id -------- 
    左外部连接, table1 中有的而 table2 中没有得以 null表示 table1.id =* table2.id -------- 右外部连接

    23、delete from table_name where Stockid = 3 
    truncate table_name ----------- 删除表中所有行,仍保持表的完整性  
    drop table table_name --------------- 完全删除表

  • 相关阅读:
    eclipse环境:把jdk1.6 改 jdk1.7或jdk1.8(改回也可以)(图文详解)
    SVN 将文件还原到之前的指定版本
    用起来很方便的枚举扩展类
    VS2015新功能
    EasyUi 动态列
    基于EasyUi的快速开发框架
    深圳某保险公司招聘职位列表
    考勤系统之计算工作小时数
    考勤系统之状态管理
    第一次裁员
  • 原文地址:https://www.cnblogs.com/baiyi-ying/p/10208851.html
Copyright © 2011-2022 走看看