--设置mysql root密码
set password for 'root'@localhost=password('123');
排序检索数据
----------------------------------------------
--按价格升序(1 2 3)
select name , price from Products order by price;
--按价格降序(3 2 1)
select name , price from Products order by price desc;
--使用 order by和limit的组合,找出[一个]列中最高值
select price from Products order by price desc limit 1;
使用where子句
位置: 表名的后面,order by子句前面,limit在order by的后面
----------------------------------------------
--where子句操作符
<> 不等于, between 在指定的两个值之间。
--使用between 操作符
--它检索价格在5块钱到100块钱之间的所有产品(包括指定的开始值和结束值)
select name, price from Products where price between 5 and 100;
--空值检查
select id from customers where email is null;
--and操作符(&&)
--查询供应商id等于2并且价格小于1000的CPU,按升序输出3行
--limit要在order by后面
select id, vendors, name, price from Products where vendors= 2 and price <1000 order by price limit 3;
--or操作符(||)
--注意:混合使用or 和 and 操作符的时候要加括号(and 操作符优先级高)
select id, vendors, name, price from Products where (vendors = 2 or vendors=1) and price <200000 order by price;
--in操作符
--下面的SQl语句完成与上面同样的功能
--in最大的优点是可以包含其它的select语句
select id, vendors, name, price from Products where vendors in(1,2) and price <200000 order by price;
--not操作符
--列出除供应商id 1以外的产品
select id, vendors, name, price from Products where vendors not in(1) and price <200000 order by price;
--like操作符
--百分号(%)通配符
--%告诉MySQL接受AMD之后的任意字符,不管它有多少字符
select *from Products where name like 'AMD%';
--'%MD%'表示匹配任何位置包含文本MD的值,不管它之前或之后出现什么字符
select *from Products where name like '%MD%';
--匹配任何东西,不过不会匹配 null
select *from Products where name like '%';
创建拼接字段
----------------------------------------------
--多数数据库用'+'号来实现拼接,MySQL用concat()
select concat(trim(name), ' (', trim(price), ')') as 报价 from Products order by price;
--下面的SQL语句检索订单号2的汇总信息
select product, quantity, price, (quantity*price) as TotalPrice from orderItems where ordernum=2;
--返回当前日期和时间
select now();
使用数据处理函数
----------------------------------------------
文本处理函数
--将串转换为小写
select lower(name) from Vendors;
日期处理函数
--Date()返回日期时间的日期部分
select num, customer, orderdate from orders where Date(orderdate) = '2008-09-01';
--Year()返回日期时间的年份部分
--检索顾客id为1, 2009年的订单
select num, customer, orderdate from orders where customer = 1 and Year(orderdate) = 2009;
--Month()返回日期时间的月份部分
--检索顾客id为1, 2009年2月份的订单
select num, customer, orderdate
from orders
where customer = 1 and Year(orderdate) = 2009 and Month(orderdate) = 2;
使用avg()、count()、max()、min()、sum()函数
----------------------------------------------
--avg()返回某列的平均值
--下面的例子返回特定供应商所提供产品的平均价格
select avg (price) AS IntelAveragePrice from products where vendors=1;
--count()返回某列的行数
--下面的例子返回Customers表的客户总数(COUNT(*)包含null值哦!)
select COUNT(*) AS num_cus from Customers;
--统计有电子邮件的客户总数(COUNT(email)忽略null值哦!)
select COUNT(email) AS num_cus from Customers;
--max()返回某列的最大值
select Max(price) AS MaxPrice from Products;
--min()返回某列的最小值
select Min(price) AS MinPrice from Products;
--sum()返回某列值之和
--返回 2号订单物品数量之和
select sum(quantity) AS Items from orderItems where ordernum=2
--返回 2号订单总价
select sum(quantity*price) AS TotalPrice from orderItems where ordernum=2
分组数据
----------------------------------------------
--group by
位置:where后, order by 前
select vendors, Max(price) AS max_price from Products group by vendors;
--统计所有顾客的订单数目
select customer, count(*) as OrderNum from orders group by customer;
--下面的例子检索订单号和总计订单价格,按“订单号”分组排序输出
select ordernum, sum(quantity*price) AS TotalPrice from OrderItems group by ordernum order by TotalPrice;
--过滤分组
--找到顾客订单数目大于 2的分组
select customer, count(*) as OrderNum from orders group by customer having count(*) >=2;
使用子查询
----------------------------------------------
--检索订购物品id=4的所有顾客
select ordernum from orderitems where product=4; --结果:2, 7
select customer from orders where num in(2, 7); --结果:1
select name, email from customers where id in(1); --结果:apq | apq@163.com
--合起来写就是这个样子
select name, email
from customers where id in (select customer
from orders where num in (select ordernum
from orderitems where product=4));
--作为计算字段使用子查询
select count(*) as totalorders from orders where cust_id=1; --结果:5
--显示customers表每个客户的订单总数
select cust_name,
(select count(*)
from orders
where orders.cust_id = customers.cust_id) AS totalorders from customers;
联结表
----------------------------------------------
select vend_name, prod_name, prod_price
from vendors, products
where vendors.vend_id = products.vend_id
order by vend_name, prod_name;
--上面的语句也可以这么写
select vend_name, prod_name, prod_price
from vendors inner join products
on vendors.vend_id = products.vend_id;
分享到:
相关推荐
mysql基础语句mysql基础语句mysql基础语句mysql基础语句mysql基础语句mysql基础语句mysql基础语句mysql基础语句mysql基础语句mysql基础语句mysql基础语句
mysql语句大全及用法10个mysql基础语句解析及基础用法介绍.docx
mysql语句大全及用法 10个mysql基础语句解析及基础用法介绍.zip
mysql语句大全及用法mysql基础语句大全及用法讲解.docx
mysql语句大全及用法mysql基础语句大全及用法讲解.zip
MySQL基础复习资料超级详细.xmind
MySQL基本语句学习。
自己在学mysql的时候做的一些简单的语句归纳,希望对初学的人有一点帮助,愿大家在学习的道路上越来越努力
MySQL SQL基础语句最佳实践,很好的,可以学习学习,牛逼的
mysql基础语句 mysql入门 希望能帮到你们.
mysql基础语句wfeagrtynhtujykiulgujyhtgrfedwfzrgeythuykgiulo
Mysql基础,最基本的mysql操作语句
mysql修改语句 在 MySQL中,可以使用 UPDATE 语句来修改、更新一个或多个表的数据。 基础语法 UPDATE 语句的基本语法 使用 UPDATE 语句修改单个表,语法格式为: UPDATE <表名> SET 字段 1=值 1 [,字段 2=值 2… ...
MySQL控制台各种基础语句总结,从连接,启动,到事务,索引等各种高级操作,主语编写程序。
MySQL基础操作语句,收集一些常用的SQL语句,练习巩固SQL基础
有很多朋友虽然安装好了 MySQL 但却不知如何使用它。在这篇文章中我们就从连接 MySQL、修改密码、增加用户等方面来学习一些 MySQL 的常用命令。
mysql面试题,涉及MySQL基础、MySQL索引、MySQL语句 MySQL进阶等方面,适用于初、中级开发人员
本资源提供了 MySQL 语句的大全,涵盖了基础语句、数据定义语言(DDL)、数据操纵语言(DML)和数据控制语言(DCL)等方面的知识点。 基础语句 1. 创建数据库:CREATE DATABASE database-name 创建一个新的...
下面,我们将进一步探讨MySQL查询语句的不同方面,从基础查询到高级查询,以展示其丰富的功能和广泛的应用场景。 一、基础查询与条件筛选 基础查询是MySQL中最常见的操作,它允许用户根据指定的条件从表中检索数据。...
mysql sql编程入门级资料 包括数据库的增、删、改、查。