别名有表别名和列别名
就是个表取名字和列取名字
列别名
表别名
(字句限定返回值)
—— 非(不是) 和 或
< >= <= =<>(!=)基本比较运算符 判断字符串 数字 日期的大小。
赋值运算符 :=
语句:**where 列名 between val1 and val2**是一个闭区间
语句: where 列名 in (值1, 值2, ...) 判断列的值是否在指定的集合中
判断列的值是否为空
语句:**where 列名 is null**
语句:**where 列名 is not null**
% 表示零或多个任意的字符
_ 表示一个任意的字符
语法:**where 列名 like '_%'**
语法: order by 列名
order by(升序)asc 可省略
order by desc 降序
注意:当 order by 子句中有使用了带引号的别名时,无法排序
如果数据量小则在内存中进行,如果数据量大则需要使用磁盘
Limit 显示数据个数
Limit 起始位置,显示数据个数
select 列表中的字段,
要么使用聚合函数或 group_concat() 包起来 ,
**要么必须出现在 group by子句中 **
having 与group by结合使用,用于将分组后的结果进一步过滤
-count(*)可以获取查询的结果记录条数
-- max():获取最大值
-- min():获取最小值
-- avg():获取平均值
-- sum():指定字段求和
首先,不推荐使用MySQL的关键词来作为字段名,但是有时候的确没有注意,或者因为之前就这么写了,没办法,那怎么办呢?
下面就详细的说明一下怎样使用 方法2 来处理。
上面的测试表是MySQL自动生成的DDL,其实从上面就可以看出,MySQL的引号内是说明绝对的保证大小写和当做普通字符串处理。
这里使用了maxvalue这个不常用的关键词作为字段名,一样违反了通常常规的命名规则,MySQL无法很好的识别。
查询SQL:
在navicat中可以正常执行,没有任何问题。
然后再运行insert语句:
提示下面的错误:
提示错误,但是没有明显的说明是关键词不能识别。
增加引号,使用MySQL的引号“`”,记住不是普通的英文单引号“'”,是倾斜的上撇,不是竖直的上撇。
键盘输入方式为键盘英文字母键上面的数字键1最前面的那个波浪线和顿号组成的键。也就是ESC下面,TAB键上面的按键。
这样就可以正常运行了。
用逗引将关键字的字段引起来,insert into tb_test `use` values ('test')逗引就是数字键旁边的那个,在英文输入法下按下建议:数据库表的设计避过关键字。
如果sql语句中存在关键字,可以用反勾号(Esc下面的那个键)做转义;
` 是 MySQL 的转义符,避免和 mysql 的本身的关键字冲突,只要你不在列名、表名中使用 mysql 的保留字或中文,就不需要转义。
所有的数据库都有类似的设置,不过mysql用的是`而已。通常用来说明其中的内容是数据库名、表名、字段名,不是关键字。例如:select from from table
第一个from是字段名,最后的table表名,但是同时也是mysql关键字,这样执行的时候就会报错,所以应该使用。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)