美文网首页
mysql文档

mysql文档

作者: lmem | 来源:发表于2016-12-15 22:19 被阅读48次

    1.mysql入门

    mysql> SELECT SIN(PI()/4), (4+1)*5;
    +------------------+---------+
    | SIN(PI()/4)      | (4+1)*5 |
    +------------------+---------+
    | 0.70710678118655 |      25 |
    +------------------+---------+
    1 row in set (0.02 sec)
    

    可以两个一起输入

    mysql> **SELECT VERSION(); SELECT NOW();
    **
    +------------------+
    | VERSION()        |
    +------------------+
    | 5.7.10-ndb-7.5.1 |
    +------------------+
    1 row in set (0.00 sec)
    
    +---------------------+
    | NOW()               |
    +---------------------+
    | 2016-01-29 18:02:55 |
    +---------------------+
    1 row in set (0.00 sec)
    

    还可以多行输入

    mysql> SELECT
        -> USER()
        -> ,
        -> CURRENT_DATE;
    +---------------+--------------+
    | USER()        | CURRENT_DATE |
    +---------------+--------------+
    | jon@localhost | 2010-08-06   |
    +---------------+--------------+
    

    如果取消\c

    mysql> SELECT
        -> USER()
        -> \c
    mysql>
    

    注意下面的这些字符代表的含义,如果出现了这些字符表示字符串未及结束

    Paste_Image.png
    mysql> **SELECT * FROM my_table WHERE name = 'Smith AND age < 30;
    ** '>
    

    2.Create a database

    查看数据库

    mysql> SHOW DATABASES;
    +----------+
    | Database |
    +----------+
    | mysql    |
    | test     |
    | tmp      |
    +----------+
    

    使用数据库

    mysql> **USE test
    **Database changed
    

    刚开始可能没有权限,需要授权,your_mysql_name是用户名,your_client_host是登录的主机名

    mysql> **GRANT ALL ON menagerie.* TO 'your_mysql_name'@'your_client_host';
    **
    

    创建数据库

    mysql> CREATE DATABASE menagerie;
    
    

    直接使用数据库

    shell> mysql -h host -u user -p menagerie
    Enter password: ********
    

    3.tables

    查看表

    mysql> SHOW TABLES;
    **Empty set (0.00 sec)
    
    mysql> DESCRIBE pet;
    +---------+-------------+------+-----+---------+-------+
    | Field   | Type        | Null | Key | Default | Extra |
    +---------+-------------+------+-----+---------+-------+
    | name    | varchar(20) | YES  |     | NULL    |       |
    | owner   | varchar(20) | YES  |     | NULL    |       |
    | species | varchar(20) | YES  |     | NULL    |       |
    | sex     | char(1)     | YES  |     | NULL    |       |
    | birth   | date        | YES  |     | NULL    |       |
    | death   | date        | YES  |     | NULL    |       |
    +---------+-------------+------+-----+---------+-------+
    

    创建表

    mysql> CREATE TABLE pet (name VARCHAR(20), owner VARCHAR(20),
        -> species VARCHAR(20), sex CHAR(1), birth DATE, death DATE);
    

    向表中增加数据

    mysql> INSERT INTO pet
        -> VALUES ('Puffball','Diane','hamster','f','1999-03-30',NULL);
    

    从文件中加载,默认是tab分割

    Whistler        Gwen    bird    \N      1997-12-09      \N
    mysql> LOAD DATA LOCAL INFILE '/path/pet.txt' INTO TABLE pet
        -> LINES TERMINATED BY '\r\n';
    

    查询表

    mysql> SELECT * FROM pet WHERE (species = 'cat' AND sex = 'm')
        -> OR (species = 'dog' AND sex = 'f');
    +-------+--------+---------+------+------------+-------+
    | name  | owner  | species | sex  | birth      | death |
    +-------+--------+---------+------+------------+-------+
    | Claws | Gwen   | cat     | m    | 1994-03-17 | NULL  |
    | Buffy | Harold | dog     | f    | 1989-05-13 | NULL  |
    +-------+--------+---------+------+------------+-------+
    

    排序

    mysql> SELECT name, species, birth FROM pet
        -> ORDER BY species, birth DESC;
    +----------+---------+------------+
    | name     | species | birth      |
    +----------+---------+------------+
    | Chirpy   | bird    | 1998-09-11 |
    | Whistler | bird    | 1997-12-09 |
    | Claws    | cat     | 1994-03-17 |
    | Fluffy   | cat     | 1993-02-04 |
    | Fang     | dog     | 1990-08-27 |
    | Bowser   | dog     | 1989-08-31 |
    | Buffy    | dog     | 1989-05-13 |
    | Puffball | hamster | 1999-03-30 |
    | Slim     | snake   | 1996-04-29 |
    +----------+---------+------------+
    

    Date Calculations
    TIMESTAMPDIFF 计算相差的数值

    mysql> SELECT name, birth, CURDATE(),
        -> TIMESTAMPDIFF(YEAR,birth,CURDATE()) AS age
        -> FROM pet;
    +----------+------------+------------+------+
    | name     | birth      | CURDATE()  | age  |
    +----------+------------+------------+------+
    | Fluffy   | 1993-02-04 | 2003-08-19 |   10 |
    | Claws    | 1994-03-17 | 2003-08-19 |    9 |
    | Buffy    | 1989-05-13 | 2003-08-19 |   14 |
    | Fang     | 1990-08-27 | 2003-08-19 |   12 |
    | Bowser   | 1989-08-31 | 2003-08-19 |   13 |
    | Chirpy   | 1998-09-11 | 2003-08-19 |    4 |
    | Whistler | 1997-12-09 | 2003-08-19 |    5 |
    | Slim     | 1996-04-29 | 2003-08-19 |    7 |
    | Puffball | 1999-03-30 | 2003-08-19 |    4 |
    +----------+------------+------------+------+
    

    还有 YEAR()
    , MONTH()
    , andDAYOFMONTH()
    . MONTH()
    使用

    mysql> SELECT name, birth, MONTH(birth) FROM pet;
    +----------+------------+--------------+
    | name     | birth      | MONTH(birth) |
    +----------+------------+--------------+
    | Fluffy   | 1993-02-04 |            2 |
    | Claws    | 1994-03-17 |            3 |
    | Buffy    | 1989-05-13 |            5 |
    | Fang     | 1990-08-27 |            8 |
    | Bowser   | 1989-08-31 |            8 |
    | Chirpy   | 1998-09-11 |            9 |
    | Whistler | 1997-12-09 |           12 |
    | Slim     | 1996-04-29 |            4 |
    | Puffball | 1999-03-30 |            3 |
    +----------+------------+--------------+
    
    DATE_ADD()增加日期

    [MONTH()] returns a number between 1 and 12. And [MOD(something,12)]returns a number between 0
    and 11

    mysql> SELECT name, birth FROM pet
        -> WHERE MONTH(birth) = MONTH(DATE_ADD(CURDATE(),INTERVAL 1 MONTH));
    
    mysql> **SELECT name, birth FROM pet
    ** -> WHERE MONTH(birth) = MOD(MONTH(CURDATE()), 12) + 1;
    

    检查NULL

    mysql> SELECT 1 IS NULL, 1 IS NOT NULL;
    +-----------+---------------+
    | 1 IS NULL | 1 IS NOT NULL |
    +-----------+---------------+
    |         0 |             1 |
    +-----------+---------------+
    #Because the result of any arithmetic comparison with NULL is also NULL, 
    #you cannot obtain any meaningful results from such comparisons.
    mysql> SELECT 1 = NULL, 1 <> NULL, 1 < NULL, 1 > NULL;
    +----------+-----------+----------+----------+
    | 1 = NULL | 1 <> NULL | 1 < NULL | 1 > NULL |
    +----------+-----------+----------+----------+
    |     NULL |      NULL |     NULL |     NULL |
    +----------+-----------+----------+----------+
    mysql> SELECT 0 IS NULL, 0 IS NOT NULL, '' IS NULL, '' IS NOT NULL;
    +-----------+---------------+------------+----------------+
    | 0 IS NULL | 0 IS NOT NULL | '' IS NULL | '' IS NOT NULL |
    +-----------+---------------+------------+----------------+
    |         0 |             1 |          0 |              1 |
    +-----------+---------------+------------+----------------+
    

    count 使用

    mysql> SELECT species, sex, COUNT(*) FROM pet
        -> WHERE sex IS NOT NULL
        -> GROUP BY species, sex;
    +---------+------+----------+
    | species | sex  | COUNT(*) |
    +---------+------+----------+
    | bird    | f    |        1 |
    | cat     | f    |        1 |
    | cat     | m    |        1 |
    | dog     | f    |        1 |
    | dog     | m    |        2 |
    | hamster | f    |        1 |
    | snake   | m    |        1 |
    +---------+------+----------+
    

    ql_mode = 'ONLY_FULL_GROUP_BY'; 限制组名必须唯一

    mysql> SET sql_mode = 'ONLY_FULL_GROUP_BY';
    mysql> SELECT owner, COUNT(*) FROM pet;
    ERROR 1140 (42000): In aggregated query without GROUP BY, expression
    #1 of SELECT list contains nonaggregated column 'menagerie.pet.owner';
    this is incompatible with sql_mode=only_full_group_by
    mysql> SET sql_mode = '';
    Query OK, 0 rows affected (0.00 sec)
    
    mysql> SELECT owner, COUNT(*) FROM pet;
    +--------+----------+
    | owner  | COUNT(*) |
    +--------+----------+
    | Harold |        8 |
    +--------+----------+
    1 row in set (0.00 sec)
    

    从文件中获取

    master@master:/usr/local/mysql$ mysql -h localhost -u root -p < test
    Enter password: 
    name    owner   species sex birth   death
    Puffball    Diane   hamster f   1999-03-30  NULL
    
    shell> mysql < batch-file > mysql.out
    

    直接在mysql里面用

    mysql> source  filename;
    mysql> \.  filename
    
    

    相关文章

      网友评论

          本文标题:mysql文档

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