mysql语句-关键字

mysql查询

模糊查询 like 与 not like

show tables like '%模糊查询%';

mysql模糊查询like的用法

查询user表中姓名中有“王”字的:

select * from user where name like '%王%'

mysql模糊查询not like的用法

查询user表中姓名中没有“王”字的:

select * from user where name not like '%王%'

查询user表中地址在上海姓名中没有“王”字和所有姓名为空的:

select * from user where adress =‘上海’ and name not like '%王%' or name is null

查询user表中地址在上海姓名中没有“王”字和地址在上海姓名为空的:

select * from user where adress =‘上海’ and (name not like '%王%' or name is null)

排序 order by:

order by 字段名 DESC; 按照字段名降序排序
order by 字段名 ASC;  按照字段名升序排序

截取数据limit:

select * from tablename limit 2,4
取出第3条至第6条,4条记录

and 且

select * from student where date>'1988-1-2' and date<'1988-12-1';

or 或

select * from student where date<'1988-11-2' or date>'1988-12-1';

between

select * from student where date between '1988-1-2' and '1988-12-1';

in 查询制定集合内的数据

select * from student where id in (1,3,5);

聚合函数

- - -也就是组函数
在一个行的集合(一组行)上进行操作,对每个组给一个结果

AVG([distinct] expr)求平均值
COUNT({*[distinct] } expr)统计行的数量
MAX([distinct] expr)求最大值
MIN([distinct] expr)求最小值
SUM([distinct] expr)求累加和
select max(id),name,sex from student group by sex;

select min(date) from student;

select avg(id) as '求平均' from student;

select count(*) from student;   #统计表中总数

select count(sex) from student;   #统计表中性别总数  若有一条数据中sex为空的话,就不予以统计~

select sum(id) from student;
<think>我们正在讨论MySQL中的AS关键字,用于给列或表起别名。根据引用[1]和引用[2],我们可以知道:1.AS关键字可以为列或表指定别名,提高可读性。2.当别名是MySQL关键字时,需要用反引号(`)括起来,以避免冲突。3.在子查询中,为临时表指定别名也是必要的(引用[3])。此外,引用[4]中展示了在UNION操作中使用别名的例子。因此,我们将按照以下结构回答:1.介绍AS关键字的作用。2.说明基本语法(列别名和表别名)。3.给出使用示例(包括普通别名和关键字别名)。4.注意事项(特别是当别名是关键字时需要用反引号)。同时,生成相关问题。注意:用户的问题是关于AS关键字的,所以重点应放在AS上。</think>### MySQL中AS关键字的用法详解 **作用**:`AS`关键字用于为查询结果的列或表指定临时别名,主要用途包括: 1. 提高结果集的可读性 2. 解决列名/表名与MySQL关键字的冲突 3. 为子查询结果集命名 4. 简化复杂字段的引用 #### 一、基本语法格式 ```sql -- 列别名 SELECT 列名 AS 别名 FROM 表名; -- 表别名 SELECT * FROM 表名 AS 别名; -- 子查询别名 SELECT * FROM (SELECT ...) AS 临时表名; ``` #### 二、使用示例 1. **基础列别名**(提高可读性): ```sql SELECT user_id AS 用户ID, user_name AS 用户名 FROM users; ``` 2. **关键字冲突处理**(必须用反引号包裹)[^2]: ```sql -- 使用MySQL关键字PRIMARY KEY作为别名 SELECT user_id AS `PRIMARY KEY` FROM user_table; ``` 3. **表别名简化关联查询**: ```sql SELECT o.order_id, u.user_name FROM orders AS o JOIN users AS u ON o.user_id = u.id; ``` 4. **子查询别名**(派生表必须命名)[^3]: ```sql SELECT * FROM ( SELECT department, AVG(salary) AS avg_sal FROM employees GROUP BY department ) AS dept_stats WHERE avg_sal > 5000; ``` 5. **计算字段别名**: ```sql SELECT product, (price * quantity) AS total_amount FROM sales; ``` #### 三、注意事项 1. **关键字冲突**:当别名使用MySQL保留字(如`ORDER`, `GROUP`等)时,**必须**用反引号`` ` ``包裹[^2] 2. **别名作用域**:别名仅在当前查询中有效 3. **省略AS**:在MySQL中`AS`可省略(但不推荐) ```sql SELECT user_id 用户ID FROM users; -- 等效写法 ``` 4. **聚合函数**:聚合计算字段必须用别名才能在`HAVING`/`ORDER BY`中引用 ```sql SELECT department, AVG(salary) AS avg_sal FROM employees GROUP BY department ORDER BY avg_sal DESC; ``` #### 四、典型错误案例 ```sql -- 错误:未用反引号包裹关键字别名 SELECT user_id AS primary FROM users; -- 错误:子查询缺少别名 SELECT * FROM (SELECT ...); -- 正确解决方案[^2][^3] SELECT user_id AS `primary` FROM users; SELECT * FROM (SELECT ...) AS temp_table; ``` > 关键点总结:AS通过建立临时映射关系提升查询灵活性和可读性,处理关键字冲突时需配合反引号实现安全访问[^1][^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值