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;