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 --------------- 完全删除表

  • 相关阅读:
    Vsftpd 3.0.2 正式版发布
    Putdb WebBuilder 6.5 正式版本发布
    SoaBox 1.1.6 GA 发布,SOA 模拟环境
    pynag 0.4.6 发布,Nagios配置和插件管理
    Percona Playback 0.4,MySQL 负荷回放工具
    xombrero 1.3.1 发布,微型 Web 浏览器
    Hypertable 0.9.6.4 发布,分布式数据库
    libmemcached 1.0.11 发布
    CryptoHeaven 3.7 发布,安全邮件解决方案
    Android Activity生命周期
  • 原文地址:https://www.cnblogs.com/baiyi-ying/p/10208851.html
Copyright © 2011-2022 走看看