美文网首页
命令行下对MySQL基础操作

命令行下对MySQL基础操作

作者: 五秋木 | 来源:发表于2018-04-18 00:01 被阅读0次
    1. Windows下打开MySQL command line client --Unicode

    MySQL command line client --Unicode与MySQL command line client区别:
    Unicode是统一的字符编码标准,MySQL的Windows客户端自从5.6.2版本后提供了Unicode界面支持。而原来的MySQL Client是默认在dos下运行的,不够满足Windows下标准编码的需求。用起来也有感觉,在Unicode下运行速度比原来的在dos环境下运行要快得多,字体等也更符合编程要求(Unicode是用的16位储存和表示每个字符的,并能够表示大多数字符。

    1. 输入password
    2. SHOW DATABASES:
      列出 MySQL 数据库管理系统的数据库列表。
    3. USE 数据库名
    4. SHOW TABLES:
      显示指定数据库的所有表,使用该命令前需要使用 use 命令来选择要操作的数据库。
    5. SHOW COLUMNS FROM : 或者使用命令DESCRIBE 表名
      显示数据表的属性,属性类型,主键信息 ,是否为 NULL,默认值等其他信息。
    6. SHOW INDEX FROM 表名:
      显示数据表的详细索引信息,包括PRIMARY KEY(主键)。
    mysql> SHOW TABLE STATUS  FROM RUNOOB;   # 显示数据库 RUNOOB 中所有表的信息
    
    mysql> SHOW TABLE STATUS from RUNOOB LIKE 'runoob%';     # 表名以runoob开头的表的信息
    mysql> SHOW TABLE STATUS from RUNOOB LIKE 'runoob%'\G;   # 加上 \G,查询结果按列打印
    
    1. eixt;
      推出客户端
    2. 显示所用的用户
      在Mysql中其实有一个内置且名为mysql的数据库,这个数据库中存储的是Mysql的一些数据,比如用户、权限信息、存储过程等,所以呢,我们可以通过如下简单的查询语句来显示所有的用户呢。
      SELECT User, Host FROM mysql.user;
    3. 显示当前状态:status;包括当前用户信息
    4. 显示当前用户:select user();
    5. 创建数据库CREATE database sql_learning;
    6. 删除数据库DROP database sql_learning;
    7. 创建表示例:
    mysql> use sql_learning;
    Database changed
    mysql> create table student(
        -> id int not null,
        -> name varchar(10) not null
        -> PRIMARY KEY (id),
        -> )engine=innodb default charset=utf8;
    Query OK, 0 rows affected (0.75 sec)
    
    mysql> describe student;
    +-------+-------------+------+-----+---------+-------+
    | Field | Type        | Null | Key | Default | Extra |
    +-------+-------------+------+-----+---------+-------+
    | id    | int(11)     | NO   |     | NULL    |       |
    | name  | varchar(10) | NO   |     | NULL    |       |
    +-------+-------------+------+-----+---------+-------+
    2 rows in set (0.00 sec)
    
    • PRIMARY KEY关键字用于定义列为主键。 您可以使用多列来定义主键,列间以逗号分隔。
    • ENGINE 设置存储引擎,CHARSET 设置编码。
      创建数据库表时数据存储引擎 engine两种:engine=innodb和engine=myisam
      • myisam,默认类型。是存储记录和文件的标准类型,支持全文搜索,可以被压缩,与其他引擎相比,有检查和修复表格的大部分工具,不支持事务,不支持外键。强调的是性能,执行速度比较快,可以在不同的系统中迁移。如果执行大量 的SELECT,MyISAM是更好的选择。
      • innodb,支持事务处理等高级处理,支持外键,如果执行大量的select和update语句,出于性能考虑,使用innodb是最好的选择。
    1. 删除表:DROP table student;
    2. 插入数据
    INSERT INTO table_name ( field1, field2,...fieldN )
                           VALUES
                           ( value1, value2,...valueN );
    

    插入数据示例:

    mysql> insert into student
        -> (id,name)
        -> values
        -> (001,'qin');
    Query OK, 1 row affected (0.05 sec)
    mysql> insert into student
        -> (id,name)
        -> values
        -> (002,'hui');
    Query OK, 1 row affected (0.06 sec)
    mysql> insert into student
        -> (id,name)
        -> values
        -> (001,'dong');
    Query OK, 1 row affected (0.05 sec)
    mysql> select * from student;
    +----+------+
    | id | name |
    +----+------+
    |  1 | qin  |
    |  2 | hui  |
    |  1 | dong |
    +----+------+
    3 rows in set (0.00 sec)
    

    插入多条数据:

    INSERT INTO table_name  (field1, field2,...fieldN)  VALUES  (valueA1,valueA2,...valueAN),(valueB1,valueB2,...valueBN),(valueC1,valueC2,...valueCN)......;
    
    mysql> insert into student
        -> (id,name)values
        -> (004,'wang'),
        -> (005,'xiao'),
        -> (006,'meng');
    
    1. 查询语句
    SELECT column_name,column_name
    FROM table_name
    [WHERE Clause]
    [OFFSET M ][LIMIT N]
    

    查询语句中你可以使用一个或者多个表,表之间使用逗号(,)分割,并使用WHERE语句来设定查询条件。
    SELECT 命令可以读取一条或者多条记录。
    你可以使用星号(*)来代替其他字段,SELECT语句会返回表的所有字段数据
    你可以使用 WHERE 语句来包含任何条件。
    你可以通过OFFSET指定SELECT语句开始查询的数据偏移量。默认情况下偏移量为0。
    你可以使用 LIMIT 属性来设定返回的记录数。

    MySQL 的 WHERE 子句的字符串比较是不区分大小写的。 你可以使用 BINARY 关键字来设定 WHERE 子句的字符串比较是区分大小写的。

    mysql> SELECT * from runoob_tbl WHERE BINARY runoob_author='runoob.com';
    Empty set (0.01 sec)
     
    mysql> SELECT * from runoob_tbl WHERE BINARY runoob_author='RUNOOB.COM';
    +-----------+---------------+---------------+-----------------+
    | runoob_id | runoob_title  | runoob_author | submission_date |
    +-----------+---------------+---------------+-----------------+
    | 3         | JAVA 教程   | RUNOOB.COM    | 2016-05-06      |
    | 4         | 学习 Python | RUNOOB.COM    | 2016-03-06      |
    +-----------+---------------+---------------+-----------------+
    2 rows in set (0.01 sec)
    
    1. 修改更新数据
      UPDATE table_name SET field1=new-value1, field2=new-value2
      [WHERE Clause]
    2. 删除数据
      DELETE FROM table_name [WHERE Clause]
    3. 获取服务器元数据
      以下命令语句可以在 MySQL 的命令提示符使用,也可以在脚本中 使用,如PHP脚本.
    命令 描述
    SELECT VERSION( ) 服务器版本信息
    SELECT DATABASE( ) 当前数据库名 (或者返回空)
    SELECT USER( ) 当前用户名
    SHOW STATUS 服务器状态
    SHOW VARIABLES 服务器配置变量
    1. 自增auto_increment,其指定的属性无需赋值,设为null即可。
      例如属性id已经
    INSERT INTO student (id,name) VALUES
        -> (NULL,'housefly');
    

    重置序列
    如果你删除了数据表中的多条记录,并希望对剩下数据的AUTO_INCREMENT列进行重新排列,那么你可以通过删除自增的列,然后重新添加来实现。 不过该操作要非常小心,如果在删除的同时又有新记录添加,有可能会出现数据混乱。操作如下所示:

    mysql> ALTER TABLE student DROP id;
    mysql> ALTER TABLE student
        -> ADD id INT UNSIGNED NOT NULL AUTO_INCREMENT FIRST,
        -> ADD PRIMARY KEY (id);
    

    设置序列开始值
    mysql> CREATE TABLE student
    -> (
    -> id INT UNSIGNED NOT NULL AUTO_INCREMENT,
    -> PRIMARY KEY (id),
    -> name VARCHAR(30) NOT NULL,
    )engine=innodb auto_increment=100 charset=utf8;

    对于已经建立好的表,使用
    mysql> ALTER TABLE t AUTO_INCREMENT = 100;

    1. 重复数据防止插入:设置指定的字段为 PRIMARY KEY(主键) 或者 UNIQUE(唯一) 索引来保证数据的唯一性。

    INSERT IGNORE INTO与INSERT INTO区别:
    INSERT INTO插入重复数据会出现错误
    INSERT IGNORE INTO出现重复数据会自动忽略。并给出警告。

    mysql> INSERT IGNORE INTO person_tbl (last_name, first_name)
        -> VALUES( 'Jay', 'Thomas');
    Query OK, 1 row affected (0.00 sec)
    mysql> INSERT IGNORE INTO person_tbl (last_name, first_name)
        -> VALUES( 'Jay', 'Thomas');
    Query OK, 0 rows affected (0.00 sec)
    
    1. mysql在创建表时,表名以及字段名可以不加引号,加引号的话要加反引号,即键盘数字1左边的符号,同时COMMENT的内容使用正常的引号或双引而不能使用反引号,因此有如下两种正确的创建方法
    • 表名和字段名不加引号
    mysql> CREATE TABLE TB_IP_WHITELIST (
     id BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
     productName VARCHAR(255) NOT NULL DEFAULT '' COMMENT '产品名',
     ipWhite TEXT NOT NULL COMMENT '白名单',
     remark VARCHAR(255) NOT NULL DEFAULT '' COMMENT '备注',
     UNIQUE KEY product_name (productName),
     PRIMARY KEY (id)
    )ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT ='名单信息表';
    
    • 表名和字段名加反引号
    mysql> CREATE TABLE `TB_IP_WHITELIST` (
      `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
      `productName` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '产品名',
      `ipWhite` TEXT NOT NULL COMMENT '白名单',
      `remark` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '备注',
      UNIQUE KEY `product_name` (`productName`),
      PRIMARY KEY (`id`)
    )ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT ='名单信息表';
    

    相关文章

      网友评论

          本文标题:命令行下对MySQL基础操作

          本文链接:https://www.haomeiwen.com/subject/dibhpxtx.html