mysql数据库的创建表格、查询(多表查询)

我们要下载Mysql数据库(可以去官网中下),然后在下载一个navicat,我们在这里面使用Mysql。等这些准备工作做完之后,我们就正式来写sql语句了。
首先:我们需要创建一个用户,然后有一个test的数据库,这里面是空的,我们可以使用这个:
如下
然后是点击新建查询按钮:
如下


我们可以在里面写sql语句了,我们首先要使用sql语句创建几个表:

CREATE TABLE `customers` (
   `customers_id` INT(11) PRIMARY KEY AUTO_INCREMENT,    //PRIMARY KEY AUTO_INCREMENT 表示设为主键,并自增长
   `last_name`  VARCHAR(10) NOT NULL,
   `first_name` VARCHAR(10) NOT NULL,
   `dob` DATE,
   `phone` VARCHAR(12)
) 

(后面几个表跟上面一样的,所以我们就不在这里演示了)。
然后就是使用insert ...into...插入数据:

insert into customers (
  last_name,first_name,dob,phone
) values (
  '', '','1965-01-01', '800-555-1211');
insert into customers (
  last_name,first_name,dob,phone
) values (
   '', '', '1968-02-05', '800-555-1212');
insert into customers (
  last_name,first_name,dob,phone
) values (
  '', '', '1971-03-16', '800-555-1213');

 

(后面几个跟上面一样的,所以我们就不在这里演示了)。 
后面几个表如下: 

如下

现在,我们可以写查询语句了, 
使用比较操作符 

 1 语法为:select * from 表名 where _id !=2;  

例如:查询customers表中customer_id不等于2的行:

 1 SELECT * FROM customers where customers_id !=2 

使用in操作符:

 1 语法为:select * from 表名 where _id in(..,..,);  

例如:使用in操作符从customers表中检索customer_id列的值为2、3、或5的记录。

1 select * from customers where  customers_id in(2,3,5)
2 "not in"恰好相反;

使用逻辑操作符:

 1 语法为:select * from 表名 where 字段名>x and 字段名<y 

例如:从customers表中检索dob列大于1970年1月1日并且小于2000年1月1日的客户:

1 select * from customers where  dob>'1970-01-01' and dob<'2000-01-01`

使用ORDER BY子句对行进行排序
order by子句用于对从数据库检索出的行进行排序,order by子句可以指定一列或多列(查询结果会根据这些列进行排序)
,而且必须位于FORM和WHERE子句(如果提供WHERE子句)之后。
desc为倒序排列;

语法为:select * from 表名 ORDER BY 字段名 

例如:查询出products表中的数据,以价格进行排序。

 1 select * from products ORDER BY price  

使用between操作符:

语法为:select *from 表名 where _id between x and y

当然not between会返回相反的行,between也可以检索在二个sql语句之间的记录,当然要求sql语句查询出的结果要与类型匹配,为整型。

例如:从customers表中检索customers_id列的值在1和3之间的记录:

 1 select *from customers where customers_id between 1 and 3 

现在我们可以用多表查询
多表查询中有一个笛卡儿积,说的是如果在多表查询中不指定条件,就会导致将一个表中的所有行都连接到另外一个表中的所有行上,这种情况称为笛卡尔积。出现这种情况结果就会显示很多行。
里面又分内连接 join...on外连接 left jion...on.. ,...right...on
为了方便,通常我们会定义表的一些别名:

例如:同时查看产品名称和产品类别二个表中的信息。

1 select p.product_id, p.name,
2 2.       t.name as type, 
3 3.             p.description,
4 4.     p.price    
5 5.from   products p   join  product_types t
6 6.         on p.product_type_id = t.product_type_id;

 

posted @ 2017-12-25 17:35  Aleno  阅读(3268)  评论(0编辑  收藏  举报