zoukankan      html  css  js  c++  java
  • MYSQL常用查命令

    MYSQL常用查命令

    mysql> select version();        查看MySQL的版本号
    mysql> select current_date();        查看MySQL的当前日期
    mysql> select version(),current_date(); 同时查看MySQL的版本号和当前日期
    mysql> show databases;            显示当前存在的数据库
    mysql> USE mysql            选择使用数据库(USE和QUIT命令不需要分号结束)
    Database changed
    mysql> select database();        显示当前选择的数据库
    mysql> show tables;            显示当前数据库中存在的表
    mysql> select * from db;        显示表(db)的内容    
    mysql> describe mytable;        显示表的结构
    或show columns from 表名;


    mysql> select
    -> user()
    -> c
    mysql>


    查看MySQL当前用户占用的连接数


    命令: show processlist;
    如果是root帐号,你能看到所有用户的当前连接。如果是其它普通帐号,只能看到自己占用的连接。
    show processlist;只列出前100条,如果想全列出请使用show full processlist;
    mysql> show processlist;


    一。数据库:


        mysql> CREATE DATABASE abccs;         创建一个数据库         
          mysql> USE abccs            选择使用数据库
          mysql> drop database 数据库名;        删除数据库


    二。表:


        1。创建一个表mytable:
        
          mysql> CREATE TABLE mytable 
              -> (
              -> name VARCHAR(20), 
              -> sex CHAR(1),
              -> birth DATE, 
              -> birthaddr VARCHAR(20)
              -> );

    建立一个员工生日表,表的内容包含员工姓名、性别、出生日期、出生城市。
          由于name、birthadd的列值是变化的,因此选择VARCHAR,其长度不一定是20。
            可以选择从1到255的任何长度,如果以后需要改变它的字长,可以使用ALTER TABLE语句。
          性别只需一个字符就可以表示:"m"或"f",因此选用CHAR(1);
          birth列则使用DATE数据类型。


        2。查询刚添加的记录:
        mysql> select * from mytable;
          Empty set (0.00 sec)      这说明刚才创建的表还没有记录。

    3。添加新记录:
        mysql> insert into mytable                
              -> values
              ->(
              ->'abccs',
              ->'f',
              ->'1977-07-07',
              ->'china'
              ->);


        4。用文本方式将数据装入一个数据库表:
             一条一条地添加新记录,实在太麻烦。
           创建一个文本文件“mysql.txt”,按表结构排好每行每条记录,用定位符(tab)把值分开。
            abccs f 1977-07-07 china  
              mary f 1978-12-12 usa
              tom m 1970-09-02 usa

    使用此命令将文本文件“mytable.txt”装载到表中:    
             mysql> Load data local infile "mytable.txt" into table mytable;


        数据传入命令load data local infile "文件名" into table 表名;
        注意:你最好将文件复制到mysql/bin目录下,并且要先用use命令选表所在的库。
        
        5。更新记录:
        mysql> update mytable set birth = "1973-09-02" where name = "tom";
        
        6。删除记录:
          mysql> delete from mytable where id=10;         //删除掉所有id=10的记录;
        mysql> delete from mytable where id=10 limit 1; //限制删除掉1条id=10的记录;
        mysql> delete from mytable            //删除一个表的全部记录;
        mysql> DELETE FROM t1 WHERE C>10;
          mysql> drop table tablename1,tablename2,…;    //删除整一个表或多个表,小心使用。


        7。重命名表:
        mysql> alter table t1 rename t2;


        8。修改mysql的表结构:


        查看mysql的表结构:
          mysql> describe mytable;   或用show columns from 表名;
       
        修改字段属性
        mysql> alter table tablename modify id int(10) unsigned auto_increment primary key not null


        修改默认值
        mysql> alter table tablename alter id default 0


        给字段增加primary key
        mysql> alter table tablename add primary key(id);

    删除primary key
        1、alter table tablename drop primary key;
        2、drop primary key on tablename;


        修改table表数据引擎
        mysql> alter table tableName ENGINE = MyISAM (InnoDB);


        增加一新字段名:
          mysql> alter table mytable add column single char(1);
        mysql> ALTER TABLE table ADD field INT(11) UNSIGNED NOT NULL


        删除字段
        mysql> alter table t2 drop column c;


        附:
        为了改变列a,从INTEGER改为TINYINT NOT NULL(名字一样),
        并且改变列b,从CHAR(10)改为CHAR(20),同时重命名它,从b改为c:
        ALTER TABLE t2 MODIFY a TINYINT NOT NULL, CHANGE b c CHAR(20);


        增加一个新TIMESTAMP列,名为d:
        ALTER TABLE t2 ADD d TIMESTAMP; 


        在列d上增加一个索引,并且使列a为主键:
        ALTER TABLE t2 ADD INDEX (d), ADD PRIMARY KEY (a);


        增加一个新的AUTO_INCREMENT整数列,命名为c:
        ALTER TABLE t2 ADD c INT UNSIGNED NOT NULL AUTO_INCREMENT,ADD INDEX (c);
        
        注意,我们索引了c,因为AUTO_INCREMENT柱必须被索引,
        并且另外我们声明c为NOT NULL,因为索引了的列不能是NULL。 


        使用name列的头10个字符创建一个索引:
        CREATE INDEX part_of_name ON customer (name(10));

    三。数据的备份与恢复:


    导出和导入数据:(命令在DOS的mysql/bin目录下执行)
    导出表
    mysqldump --opt school > school.sql
    注释:将数据库school中的表全部备份到school.sql文件,school.sql是一个文本文件,
    文件名任取,打开看看你会有新发现。
    mysqldump --opt school teacher student > school.teacher.student.sql
    注释:将数据库school中的teacher表和student表备份到school.teacher.student.sql文
    件,school.teacher.student.sql是一个文本文件,文件名任取,打开看看你会有新发现。


    导入表
    mysql
    mysql>create database school;
    mysql>use school;
    mysql>source school.sql;
    (或将school.sql换为school.teacher.sql / school.teacher.student.sql)

    导出数据库
    mysqldump --databases db1 db2 > db1.db2.sql
    注释:将数据库dbl和db2备份到db1.db2.sql文件,db1.db2.sql是一个文本文件,文件名
    任取,打开看看你会有新发现。
    (举个例子:
    mysqldump -h host -u user -p pass --databases dbname > file.dump
    就是把host上的以名字user,口令pass的数据库dbname导入到文件file.dump中。)


    导入数据库
    mysql < db1.db2.sql


    复制数据库mysqldump --all-databases > all-databases.sql
    注释:将所有数据库备份到all-databases.sql文件,all-databases.sql是一个文本文件,文件名任取。


    导入数据库
    mysql
    mysql>drop database a;
    mysql>drop database b;
    mysql>drop database c;
    ...
    mysql>source all-databases.sql; (或exit退出mysql后 mysql < all-databases.sql)




    mysql备份和恢复的命令 
    备份和恢复的命令分别为: 


    备份:mysqldump --force --add-drop-table --extended-insert -h"数据库主机名" -u"用户名" -p"密码" "数据库名" > 备份数据文件名 
    恢复:mysql -h"数据库主机名" -u"用户名" -p"密码" "数据库名" < 备份数据文件名 
    备份文件名可为d:sql.bak
    示例:
    在DOSCMD模式下备份用mysqldump -u root -p ***** ksedata >d:sql.bak
    恢复用mysql -u root -p ***** ksedata <d:sql.bak


    当然可以用-h指定主机名

  • 相关阅读:
    poj 3321 Apple Tree
    hdu 1520 Anniversary party
    Light OJ 1089 Points in Segments (II)
    Timus 1018 Binary Apple Tree
    zoj 3299 Fall the Brick
    HFUT 1287 法默尔的农场
    Codeforces 159C String Manipulation 1.0
    GraphQL + React Apollo + React Hook 大型项目实战(32 个视频)
    使用 TypeScript & mocha & chai 写测试代码实战(17 个视频)
    GraphQL + React Apollo + React Hook + Express + Mongodb 大型前后端分离项目实战之后端(19 个视频)
  • 原文地址:https://www.cnblogs.com/pekkle/p/6568807.html
Copyright © 2011-2022 走看看