
正文
mysql中怎么转义字符 mysql转换字符集函数
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
2019-05-05
在MySQL中 select 表示查询,select可以单独成句,是MySQL的方言
比如查询系统时间: select now();
now() 表示当前系统时间 MySQL特有的一个方法
在Oracle中系统时间: select sysdate from dual; 是Oracle的方言
dual表时Oracle特有的一张表,主要目的就是为了补充SQL语句中的from**
在Oracle的语法中,select之后必须要有from
MySQL中有DUAL关键字,所以SELECT NOW()也可以写作SELECT NOW() FROM DUAL;
但MySQL中的DUAL不是表 执行SELECT * FROM DUAL;会报错,而Oracle中DUAL是一张实际存在的表,执行SELECT * FROM DUAL;会查询一个叫做DUMMY的结果
标准语法:select...from...
语法格式:
开发中建议以查询特定列的方式进行查询,前者的执行效率更快
示例1:查询员工编号,员工姓名,年薪 (sal表示的是月薪)
注意年薪的表头显示的是“sal*12”
可以使用as或者空格,为查询结果的列起别名
或
当数据运算中出现null值时,结果一定是null
MySQL解决问题是用ifnull()函数
Oracle解决问题是用nvl()函数
ifnull(expr1,expr2)
nvl(expr1,expr2)
当expr1的结果是null时,使用expr2的结果
当expr1的结果不是null时,使用expr1的结果
示例2: 查询员工姓名和员工的月收入(月薪+奖金)
此时原始数据中如果comm中有null值,查询结果不正确
使用distinct去掉查询结果中的重复记录
基础语法
查询列1,列2直至列n的数据,并去掉其中重复的组合
select ... from...where 查询条件
示例3:查询所有在部门编号是1工作的员工记录
的查询结果是一样的,数据中Tom,tom,TOM,tOm...等都会被查询出
如果需要严格控制大小写字母敏感,查询语句需要在列前加 binary
这样只能查询出TOM
X AND Y 必须同时满足条件X和条件Y
示例4: 查询在1号部门工作,且月薪不低于2500的员工信息
示例5: 查询在1号部门工作,且月薪不低于2500的保洁信息
X OR Y 满足条件X或条件Y其一即可
示例6:查询在1号部门或2号部门工作的员工信息
NOT(X) 不是条件X
主要使用在特殊的比较运算符中
AND语句的优先级高于OR
如果使用括号控制优先级
SQL注入问题:利用了AND和OR优先级破坏系统中的SQL语句逻辑
正常访问逻辑,用户输入admin和123 正确账号和密码可以登录
SQL注入通过输入正确的账号,和一个带有or逻辑的SQL片段将原来逻辑破坏掉,进行非法登录
输入的是 账号:admin 密码:' OR 1=1 AND lname='admin
这个SQL语句就变成了
lname = 'admin' AND lpass = '' -- X 假 查不出结果
1=1 AND lname='admin' -- Y 真 查出admin的数据
X OR Y -- 真 验证通过 访问了admin的账号
X between A and B 表示X在[A,B]之间
相当于 X = A and X = B
一般情况下: B应该大于等于A
如果B小于A语法也没错误,逻辑上冲突,不会由查询结果
示例1:查询月薪在[2000,2500]区间的员工信息
示例2:查询在20号部门入职日期在1994年的员工信息
用于查询数据时进行模糊匹配(模糊查询),只适用于文本查询
语法规则
-ename中含有字符% 使用\做为转义字符
将'%'看做一个%字符
MySQL中
Oracle中
相当于or
语法规则
相当于
示例3:查询在10号部门或20部门工作,且职位是CLERK的员工信息
示例4:查询员工SMITH和AMY的员工信息
示例5:查询在'1992-01-15'或'1994-12-22'或'1994-07-05'入职的员工信息
如果in中的数据有null值,null值不会被查询出
专门针对null值进行筛选
示例6: 查询所有奖金是null的员工信息
不能使用comm = null查询,这样查询没有结果
not表示特殊比较运算符逻辑取反
示例7:查询月薪 不 在[2000,2500]区间的员工信息
示例8:查询员工名字中 不 包含字母A的员工信息
示例9:查询 不 在10号或20号部门工作的,职位是CLERK的员工信息
示例10:查询奖金 不 是null的员工信息
排序是对 查询结果 进行排序显示
排序规则
select...from...where... order by...
示例11:查询所有的员工信息,按照月薪升序排序。
asc表示升序,排序默认就是升序,asc可以省略。
示例12:查询所有的员工信息,按照月薪降序排序。
desc表示降序
在列1的排序基础上,进行列2排序,.... 在之前所有排序基础上进行列n的排序
示例13 : 查询所有员工信息,按照部门编号升序排序,按照月薪降序排序
先按照deptno进行升序排序,在deptno排序的基础上,再进行sal的降序排序
示例14:查询20号部门员工姓名,月薪,奖金,月收入,按照月收入的降序排序
可以使用列别名
按照查询结果的第3列进行升序排序,在排序基础上以第2列进行降序排序
实际:deptno升序后,sal降序
编写顺序: select...from...where...order by...
执行顺序: from...where...select...order by...
相关问答
Q1: mysql中可以使用转义字符'\001'吗?
0X01
对我有用[0]丢个板砖[0]引用举报管理TOPtrainee(春泥)等
级:
Q2: jsp mysql 转义字符
终于解决了~呵呵呵(我是aries_sun即c-aries)
想了三天,每天都搞到我早上两三点才睡,废寝忘食没洗澡^-^
public
String
doHtml(String
str)
{
if(str==null)
return
donull(str);
else{
int
len=str.length();
StringBuffer
sb=new
StringBuffer();
char
ch;
for(int
i=0;i
{
ch=str.charAt(i);
switch(ch)
{
case
'':
sb.append("");break;
case
'':
sb.append("");break;
case
'':
sb.append("");break;
case
'\n':
sb.append("
");break;
case
'\t':
sb.append(" ");break;
case
'
':
sb.append(" ");break;
default:
sb.append(ch);
}
}
return
sb.toString();
}
}
//刚处理完中文后,存储入数据库的必要操作
public
String
doSql(String
str){
if(str==null)
return
donull(str);
else{
int
len=str.length();
StringBuffer
sb=new
StringBuffer();
char
ch;
for(int
i=0;i
ch=str.charAt(i);
switch(ch){
case
'\'':
sb.append("''");break;
case
'\\':
sb.append("\\\\");break;
default:sb.append(ch);
}
}
return
sb.toString();
}
}
Q3: Mysql正则表达式如何表达转义字符? 如我想匹配中括号、竖线等字符该怎么做? select '|' rlike '\|'不行
select '|' regexp '\\|'
select '|' rlike '\\|' 也是一样的 O(∩_∩)O~
Q4: php mysql转义特殊字符的函数有哪些
PHP的介绍
PHP,是英文超文本预处理语言Hypertext Preprocessor的缩写。PHP 是一种可以 HTML 内嵌式的语言,是一种在服务器端执行的嵌入HTML文档的脚本语言,语言的风格有类似于C语言,被广泛地运用。自从PHP5开始,引入了面向对象的全部机制,并且保留了向下兼容性。
PHP的发展历史
PHP原始为Personal Home Page的缩写,现已经正式更名为 “PHP: Hypertext Preprocessor”的缩写。注意不是“Hypertext Preprocessor”的缩写,这种将名称放到定义中的写法被称作递归缩写。PHP于1994年由Rasmus Lerdorf创建,刚刚开始是Rasmus Lerdorf 为了要维护个人网页而制作的一个简单的用Perl语言编写的程序。最初这些工具程序用来显示 Rasmus Lerdorf 的个人履历,以及统计网页流量。后来又用C语言重新编写,包括可以访问数据库。他将这些程序和一些表单直译器整合起来,称为 PHP/FI。PHP/FI 可以和数据库连接,产生简单的动态网页程序。
PHP的现状
PHP作为最成熟的开源体系LAMP(Linux,Apache,MySQL,PHP)的重要一员,以其简单性、开放性、低成本、安全性和适用性,受到越来越多的Web程序员的欢迎和喜爱。
PHP中提供了作为编码语言所有的基本功能。此外,它还提供许多实用的功能,使得PHP比其他编程语言更适合动态网页的开发。针对企业级Web应用,PHP也不断地完善和增加新的功能。
PHP是开放源代码的,这意味着其代码的核心部分可以被免费使用。所有源码、文档可以在PHP官方网站上获得。用户可以自由复制、编译、分发其拷贝。任何一个用PHP编写的程序都属于用户自己,并且可以自行处理。
正式由于这种开源精神,才使PHP社区可以聚集众多的爱好者,也使得PHP有如此迅猛的发展。PHP的更新速度,以及发现和修正错误的速度是非常迅速的。可以看到,几乎每周都有一个新版本的PHP程序包发布。
目前,PHP的官方维护者和推动者Zend公司已经加快了PHP企业级应用的步伐。随着PHP5的应用不断扩大,Zend公司还将推出一个标准的PHP开发框架Zend Framework。通过这一框架,PHP开发者可以快速地构建Web应用。
PHP还具有优秀的平台兼容性。PHP源于UNIX系统平台,尤其是PHP、MySQL、 Apache和Linux组合,备受PHP爱好者的欢迎。不仅如此,PHP在Windows系列操作系统上也有出色的表现。其良好的程序界面、语言易用性等特点吸引了微软的开发人员。目前,有消息称未来的Windows . NET开发环境将集成PHP,这也意味着PHP的用户群将日益壮大。
PHP是广泛及通用的脚本语言,它尤其适合于Web开发。PHP是世界上主要的网络开发语言之一,运行在世界三分之一的服务器上。它是从雅虎到Facebook等公司的平台选择,也是共享主机上最广泛的开发平台,为世界上数百万的网站提供动力。
今天,已经有包括雅虎和亚马逊等在内的数百万网站,以及众多的开发人员和编程爱好者正在使用PHP。从最初的PHP/FI到现在的PHP5,PHP的发展是及其迅猛的,其未来的发展前景也必定令人瞩目。
随着PHP5版本性能的提升,以及面向对象功能的完善,PHP也逐渐开始于面向企业级应用。PHP的发展前景将无限广阔。
现在php5的最新版本为php5.4.3,较php5.3增强了安全特性,去掉了一些威胁安全的函数如global_register等,去掉了安全模式。
PHP的特点
PHP 独特的语法混合了 C、Java、Perl 以及 PHP 自创新的语法。
PHP安装它可以比 CGI或者Perl更快速的执行动态网页。用PHP做出的动态页面与其他的编程语言相比,PHP是将程序嵌入到HTML文档中去执行,执行效率比完全生成htmL标记的CGI要高许多;
PHP还可以执行编译后代码,编译可以达到加密和优化代码运行,使代码运行更快。
PHP具有非常强大的功能,所有的CGI的功能PHP都能实现,而且支持几乎所有流行的数据库以及操作系统。
最重要的是PHP可以用C、C++进行程序的扩展!
PHP的优势
开放的源代码:所有的PHP源代码事实上都可以得到。
PHP是免费的:和其它技术相比,PHP本身免费且是开源代码。
php的快捷性:程序开发快,运行快,技术本身学习快。嵌入于HTML:因为PHP可以被嵌入于HTML语言,它相对于其他语言。编辑简单,实用性强,更适合初学者。
跨平台性强:由于PHP是运行在服务器端的脚本,可以运行在UNIX、LINUX、WINDOWS、Mac OS下。
效率高:PHP消耗相当少的系统资源。
图像处理:用PHP动态创建图像,PHP图像处理默认使用GD2。不过也可以配置为使用image magick进行图像处理。
面向对象:在php4,php5 中,面向对象方面都有了很大的改进,php完全可以用来开发大型商业程序。
专业专注:PHP支持脚本语言为主,同为类C语言
关于mysql中怎么转义字符和mysql转换字符集函数的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。





