美文网首页我爱编程技术文编程学习
mysql必知必会-part4.检索数据-select

mysql必知必会-part4.检索数据-select

作者: sleeppping | 来源:发表于2016-08-07 23:28 被阅读0次
    下面让我们真正开始学习数据库吧。

    Part4.检索数据-select

    • 4.1-简单创建一个数据表与插入数据--了解mysql
    • 4.2-检索单个列
    • 4.3-检索多个列
    • 4.4-检索所有列
    • 4.5-检索不同的行-关键字-distinct
    • 4.6 -限制返回结果数量-关键字-limit
    • 4.7 -使用完全限定的表名

    Part4.1 简单创建一个表

    查看所有数据库: show databases;
    +--------------------+
    | Database |
    +--------------------+
    | information_schema |
    | first |
    | mysql |
    | performance_schema |
    | sys |
    +--------------------+
    我们看到了上次建的数据库first,现在我们使用它
    use first;

    • 创建一个数据表:
      mysql> create table my_class(
      -> id int(11) unsigned not null primary key auto_increment,
      -> age tinyint,
      -> name varchar(100));
      Query OK, 0 rows affected (0.06 sec)
      一定要自己动手打,不然没什么用

    id,age,name 都是字段(列),
    int(11) : tinyint,vachar(100)都是 数据类型
    现在是要简单了解这个就行了,后面有专门的章节.
    想看的话-->mysql数据类型

    • 插入数据
      使用insert into 表名(字段1,字段2...) values(值1,值2....);

    mysql> insert into my_class(age,name) values(10,'hello');
    Query OK, 1 row affected (0.00 sec)

    mysql> insert into my_class(age,name) values(20,'world');
    Query OK, 1 row affected (0.00 sec)

    mysql> insert into my_class(age,name) values(30,'mysql');
    Query OK, 1 row affected (0.00 sec)

    mysql> insert into my_class(age,name) values(30,'php');
    Query OK, 1 row affected (0.00 sec)

    mysql> insert into my_class(age,name) values(40,'mysql');
    Query OK, 1 row affected (0.00 sec)

    select, insert ,into ,values,use ,show ,int....这些都是关键字


    4.2-检索单个列

    假设这样一个场景:
    班级里所有人的姓名
    语句:

    mysql> select name from my_class;
    +-------+
    | name |
    +-------+
    | hello |
    | world |
    | mysql |
    | php |
    | mysql |
    +-------+

    • 结束语句,在mysql 中SQL语句以 分号(;)结束
    • SQL语句不区分大小写,但是一般在mysql都会将关键字大写,数据库名,表名,字段小写,比如,上面的检索数据 SELECT name FROM my_class;

    4.3 -检索多个列

    班级里所有人的年龄和姓名

    mysql> select age,name from my_class;
    +------+-------+
    | age | name |
    +------+-------+
    | 10 | hello |
    | 20 | world |
    | 30 | mysql |
    | 30 | php |
    | 40 | mysql |
    +------+-------+


    4.4 -检索所有列

    班级里所有人的 学号 ,年龄,姓名

    使用通配符(*)来完成任务

    mysql> select * from my_CLASS;
    +----+------+-------+
    | id | age | name |
    +----+------+-------+
    | 1 | 10 | hello |
    | 2 | 20 | world |
    | 3 | 30 | mysql |

    | 4 | 30 | php |
    | 5 | 40 | mysql |
    +----+------+-------+

    发现了吗 我用my_CLASS 也是可以获取数据的,mysql是不区分大小写的。


    4.5-检索不同的行-关键字-distinct

    distinct:不同的
    假设这样一个场景
    班级发奖,每个年龄的人发一次
    mysql> select * from my_class;
    +----+------+-------+
    | id | age | name |
    +----+------+-------+
    | 1 | 10 | hello |
    | 2 | 20 | world |
    | 3 | 30 | mysql |
    | 4 | 30 | php |
    | 5 | 40 | mysql |
    +----+------+-------+
    mysql> select distinct age from my_class;
    +------+
    | age |
    +------+
    | 10 |
    | 20 |
    | 30 |
    | 40 |
    +------+
    去掉不同年龄成功
    mysql> select distinct age,name from my_class;
    +------+-------+

    | age | name |
    +------+-------+
    | 10 | hello |
    | 20 | world |
    | 30 | mysql |
    | 30 | php |
    | 40 | mysql |
    +------+-------+

    发现这次并没有把30-mysql,40-mysql 排除,那是因为distinct关键字作用于所有列,必须age,name都相同才被排除掉

    - 4.6 -限制返回结果数量-关键字-limit

    返回3行数据

    mysql> select age, name from my_class limit 3;
    +------+-------+

    | age | name |
    +------+-------+
    | 10 | hello |
    | 20 | world |
    | 30 | mysql |
    +------+-------+
    limit 1000,就返回1000行数据么?
    肯定不是。。limit 1000是返回不超过1000行的数据,数量<=1000
    mysql> select age,name from my_class limit 1000;
    +------+-------+
    | age | name |
    +------+-------+
    | 10 | hello |
    | 20 | world |
    | 30 | mysql |
    | 30 | php |
    | 40 | mysql |
    +------+-------+
    返回第一条数据
    mysql> select age,name from my_class limit 0,1;
    +------+-------+
    | age | name |
    +------+-------+
    | 10 | hello |
    +------+-------+
    检索出来的数据是从0开始的而不是1,因此limit 2,1 就是从第三条数据开始,获取最多1条数据
    mysql> select age,name from my_class limit 2,1;
    +------+-------+
    | age | name |
    +------+-------+
    | 30 | mysql |
    +------+-------+

    - 4.7 -使用完全限定的表名

    就是数据库名.表名.字段名 或者数据库名.表名
    mysql> select first.my_class.name from first.my_class;
    +-------+
    | name |
    +-------+
    | hello |
    | world |
    | mysql |
    | php |
    | mysql |
    +-------+

    to be continue

    相关文章

      网友评论

        本文标题:mysql必知必会-part4.检索数据-select

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