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

下面让我们真正开始学习数据库吧。

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)