我们要下载Mysql数据库(可以去官网中下),然后在下载一个navicat,我们在这里面使用Mysql。等这些准备工作做完之后,我们就正式来写sql语句了。
首先:我们需要创建一个用户,然后有一个test的数据库,这里面是空的,我们可以使用这个:
;
然后是点击新建查询按钮:
;
我们可以在里面写sql语句了,我们首先要使用sql语句创建几个表:
CREATE TABLE`customers` (
`customers_id`INT(11) PRIMARY KEYAUTO_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 intocustomers (
last_name,first_name,dob,phone
)values('李', '锐','1965-01-01', '800-555-1211');insert intocustomers (
last_name,first_name,dob,phone
)values('王', '胜', '1968-02-05', '800-555-1212');insert intocustomers (
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 字段名
例如:从customers表中检索dob列大于1970年1月1日并且小于2000年1月1日的客户:
1 select * from customers where dob>'1970-01-01' and dob
使用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 selectp.product_id, p.name,2 2. t.name astype,3 3. p.description,4 4. p.price5 5.from products p joinproduct_types t6 6. on p.product_type_id = t.product_type_id;