当前位置:首页 » 编程语言 » sql大小写敏感

sql大小写敏感

发布时间: 2023-05-06 06:33:28

sql SERVER 2008 大小写 敏感么

取决姿码于字符集,
字符集是Chinese_PRC_CS_AI,大小写贺册虚敏禅燃感; 其他之外的字符集都不敏感的

⑵ 如何设置:SQL语句中对字段名的大小写敏感

在SQL Server中默认悔友对大小写是不敏感的,例如fname='peter'和fname='御前毕PETER'结果是一样的。但有时候用户会要求区分大镇芹小写,如验证密码等。这种情况下的处理办法就是在字段后加上 collate Chinese_PRC_CS_AS_WS如:

⑶ sql语句查询字母字段时不区分大小写

select*fromgzjdczb_db_linkswhereusernamelikebinary'%g%'orusernamelikebinary'%G%';

upper()应该是把username转化为大写的吧,lower()才是转化为小写

⑷ sql server中对大小写不是不敏感吗为什么错了

N'string'固定的标示,另外sqlserver并不是不能区分大小写,而是默认不区分,可以设置的。

加上 N 代表存入数据库时以 Unicode 格式存储
N'string' 表示string是和昌羡个Unicode字符串

Unicode 字符串的格式与普通字符串相似,但它前面有一个 N 标识符(N 代表 SQL-92 标准中的国际语言 (National Language))。N 前缀必须是大写字母。例如,'Michél' 是字符串常量而 N'Michél' 则是 Unicode 常量。Unicode 常量被解释为 Unicode 数据,并且不使用代码页进行计算。Unicode 常量确实有排迅改序规则,主要用于控制比较和区分大小写。为 Unicode 常量指派当前数据库的默认排序规则,除非使用 COLLATE 子句为其指定了排序规则。Unicode 数据中的每个字符都唤拍使用两个字节进行存储,而字符数据中的每个字符则都使用一个字节进行存储。有关更多信息,请参见使用 Unicode 数据。

Unicode 字符串常量支持增强的排序规则。

⑸ 如何让sql server 2000里的查询对大小写敏感

要想大小写敏感,在创建表的过程中要指定某个列的排序规则中要纤卜区分大小写。
比如
create table test
(
c varchar(10) collate Chinese_PRC_CS_AS
)

Chinese_PRC_CS_AS中CS就表示是区分大小写。
这时
select * from test where c like 'Abc' 和
select * from test where c like 'abc'的结果就不一样了。
如果原表不想改动,弊竖侍可以创建一个临时表,设置大小写敏感,之后将数据导入,再租吵临时表中查询。

⑹ sql语句如何忽略大小写

我们需要准备的材料分别是:电脑、sql查询器。

1、首先,打开sql查询器,连接上相应的数据库表,例如test表。

linux中如何让mysql的表不区分sql语句的大小写

Windows 环境下大小写不敏感

CREATE TABLE tab (
id INT AUTO_INCREMENT,
val VARCHAR(10),
PRIMARY KEY (id)
);

mysql> select * from tab;
Empty set (0.00 sec)

mysql> select * from Tab;
Empty set (0.00 sec)

mysql> select * from `Tab`;
Empty set (0.00 sec)

在MySQL中如何在硬盘上保存和使用表名和数据库名由lower_case_tables_name系统变量确定,可以在启动mysqld时设置。lower_case_tables_name可以采用下面的任一值:
值 含义
0 使用CREATE TABLE或CREATE DATABASE语句指定的大写和小写在硬盘上保存表名和数据库名。名称比较对大小写敏感。在Unix系统中的默认设置即如此。请注意如果在大小写不敏感的文件系统上用--lower-case-table-names=0强制设为0,并且使用不同的大小写访问MyISAM表名,会导致索引破坏。
1 表名在硬盘上以小写保存,名称比较对大小写敏感。MySQL将所有表名转换为小写以便存储和查找。该行为也适合数冲肆据库名和表的别名。该值为Windows和Mac OS X系统中的默认值。
2 表名和数据库名在硬盘上使用CREATE TABLE或CREATE DATABASE语句指定的大小写进行保存,但MySQL将它们转换为小写以便查找。名称比较对大小写敏感。注释:只在对大小写不敏感的文件系统上适用! InnoDB表名以小写保存,例如lower_case_tables_name=1。
在Windows和Mac OS X中,lower_case_tables_name的 默认值是1。
如果只在一个平台上使用MySQL,通常不需要更改lower_case_tables_name变量。然而,如果你想要在对大小写敏感不同的文件系统的平台之间转移表,会遇到困难。例如,在Unix中,my_tables和MY_tables是两个不首顷同的表,但在Windows中,这两个表名相同。要想避免由于数据库或表名的大小写造成的数据转移问题,可使用两个选项:
• 在任何系统者判陆中可以使用lower_case_tables_name=1。使用该选项的不利之处是当使用SHOW TABLES或SHOW DATABASES时,看不出名字原来是用大写还是小写。
• 在Unix中使用lower_case_tables_name=0,在Windows中使用lower_case_tables_name=2。这样了可以保留数据库名和表名的大小写。不利之处是必须确保在Windows中查询总是用正确大小写引用数据库名和表名。如果将查询转移到Unix中,由于在Unix中大小写很重要,如果大小写不正确,它们不工作。
例外:如果你正使用InnoDB表,在任何平台上均应将lower_case_tables_name设置为1,以强制将名转换为小写。
请注意在Unix中将lower_case_tables_name设置为1之前,重启mysqld之前,必须先将旧的数据库名和表名转换为小写。

⑻ 如何优化SQL语句

一、问题的提出
在应用系统开发初期,由于开发数据库数据比较少,对于查询SQL语句,复杂视图的的编写等体会不出SQL语句各种写法的性能优劣,但是如果将应用系统提交实际应用后,随着数据库中数据的增加,系统的响应速度就成为目前系统需要解决的最主要的问题之一。系统优化中一个很重要的方面就是SQL语句的优化。对于海量数据,劣质SQL语句和优质SQL语句之间的速度差别可以达到上百倍,可见对于一个系统不是简单地能实现其功能就可,而是要写出高质量的SQL语句,提高系统的可用性。
在多数情况下,Oracle使用索引来更快地遍历表,优化器主要根据定义的索引来提高性能。但是,如果在SQL语句的where子句中写的SQL代码不合理,就会造成优化器删去索引而使用全表扫描,一般就这种SQL语句就是所谓的劣质SQL语句。在编写SQL语句时我们应清楚优化器根据何种原则来删除索引,这有助于写出高性能的SQL语句。
二、SQL语句编写注意问题
下面就某些SQL语句的where子句编写中需要注意的问题作详细介绍。在这些where子句中,即使某些列存在索引,但是由于编写了劣质的SQL,系统在运行该SQL语句时也不能使用该索引,而同样使用全表扫描,这就造成了响应速度的极大降低。
1.
IS
NULL

IS
NOT
NULL
不能用null作索引,任何包含null值的列都将不会被包含在索引中。即使索引有多列这样的情况下,只要这些列中有一列含有null,该列就会从索引中排除。也就是说如果某列存在空值,即使对该列建索引也不会提高性能。
任何在where子句中使用is
null或is
not
null的语句优化器是不允许使用索引的。
2.
联接列
对于有联接的列,即使最后的联接值为一个静态值,优化器是不会使用索引的。我们一起来看一个例子,假定有一个职工表(employee),对于一个职工的姓和名分成两列存放(FIRST_NAME和LAST_NAME),现在要查询一个叫比尔.克林顿(Bill
Cliton)的职工。
下面是一个采用联接查询的SQL语句,
select
*
from
employss
where
first_name||''||last_name
='Beill
Cliton';
上面这条语句完全可以查询出是否有Bill
Cliton这个员工,但是这里需要注意,系统优化器对基于last_name创建的索引没有使用。
当采用下面这种SQL语句的编写,Oracle系统就可以采用基于last_name创建的索引。
***
where
first_name
='Beill'
and
last_name
='Cliton';
.
带通配符(%)的like语句
同样以上面的例子来看这种情况。目前的需求是这样的,要求在职工表中查询名字中包含cliton的人。可以采用如下的查询SQL语句:
select
*
from
employee
where
last_name
like
'%cliton%';
这里由于通配符(%)在搜寻词首出现,所以Oracle系统不使用last_name的索引。在很多情况下可能无法避免这种情况,但是一定要心中有底,通配符如此使用会降低查询速度。然而当通配符出现在字符串其他位置时,优化器就能利用索引。在下面的查询中索引得到了使用:
select
*
from
employee
where
last_name
like
'c%';
4.
Order
by语句
ORDER
BY语句决定了Oracle如何将返回的查询结果排序。Order
by语句对要排序的列没有什么特别的限制,也可以将函数加入列中(象联接或者附加等)。任何在Order
by语句的非索引项或者有计算表达式都将降低查询速度。
仔细检查order
by语句以找出非索引项或者表达式,它们会降低性能。解决这个问题的办法就是重写order
by语句以使用索引,也可以为所使用的列建立另外一个索引,同时应绝对避免在order
by子句中使用表达式。
5.
NOT
我们在查询时经常在where子句使用一些逻辑表达式,如大于、小于、等于以及不等于等等,也可以使用and(与)、or(或)以及not(非)。NOT可用来对任何逻辑运算符号取反。下面是一个NOT子句的例子:
...
where
not
(status
='VALID')
如果要使用NOT,则应在取反的短语前面加上括号,并在短语前面加上NOT运算符。NOT运算符包含在另外一个逻辑运算符中,这就是不等于(<>)运算符。换句话说,即使不在查询where子句中显式地加入NOT词,NOT仍在运算符中,见下例:
...
where
status
<>'INVALID';
对这个查询,可以改写为不使用NOT:
select
*
from
employee
where
salary<3000
or
salary>3000;
虽然这两种查询的结果一样,但是第二种查询方案会比第一种查询方案更快些。第二种查询允许Oracle对salary列使用索引,而第一种查询则不能使用索引。
虽然这两种查询的结果一样,但是第二种查询方案会比第一种查询方案更快些。第二种查询允许Oracle对salary列使用索引,而第一种查询则不能使用索引。

⑼ oracle 区别大小写吗

不区分大小写,关键字、用户、密码 、字段名 、表名、序列名 、触发器名等是不区分的,我们平时进入都是大小写随便输入的表名,字段名,关键字大小写忽略表名,字段名不能使用关键字,表名,字段名不可以使用数字开头,中间不能出现特殊符号表名,字段名长度不能超过30个字符表名,字段名定义需要有含义。具体字段值区分大小写。而scott是给初学者学习的用户,学习者可以用Scott登录系统,注意scott用户登录后,就可以使用Oracle提供的数据库和数据表,这些都是oracle提供。颤纤辩

(9)sql大小写敏感扩展阅读

Oracle数据库中使用的都是sql语句,语法差异并不大。而sql语句对于大小写并不敏感,也就是说sql语句的语法可以任意使用。除了sql语句以外,我们还有自己的元素,比如表名、字段名,还有我们需要存入的数据,它们的大小写是需要DBM来管理的。

system、sys、scott,当中system和sys的差别在与是否能创建数据库,sys用户登录才干够竖袭创建数据库,而scott是给刚开始学习的人茄缺学习的用户。学习者能够用Scott登录系统,注意scott用户登录后,就能够使用Oracle提供的数据库和数据表,这些都是oracle提供的。

⑽ SQL语句为什么是大写

在oracle里,如果同样的一条语句,但大小写不同的话,oracle会认为这是2个不同的SQL。所以oracle会对这2个SQL语句解析两次。这样就导致了buffer hit的命中率和soft parse的百分比。如果有很多这样的情况发生,会导致oracle整体性能的下降。
所以强烈建议制定SQL的书写规范

热点内容
php的点餐系统源码 发布:2024-11-01 20:13:53 浏览:714
拜占庭算法 发布:2024-11-01 20:10:31 浏览:357
xcode编译参数 发布:2024-11-01 20:00:04 浏览:665
苹果5怎么设置密码锁屏 发布:2024-11-01 19:54:55 浏览:124
宝塔上传文件夹 发布:2024-11-01 19:39:50 浏览:257
java云编译器 发布:2024-11-01 19:34:24 浏览:385
免费源码分享网 发布:2024-11-01 19:29:19 浏览:855
硬盘8mb缓存 发布:2024-11-01 19:20:02 浏览:192
抖音默认的青少年密码是多少 发布:2024-11-01 19:18:36 浏览:906
电脑服务器名字在哪里找 发布:2024-11-01 19:13:27 浏览:2