① 怎么在sql 里对一个表的某一个字段名 做一个“第一个字符为字母”进行约束 该怎么写
(ascii(upper([aaa])) > 64 and ascii(upper([aaa])) < 91)
企业管理器→所要操作的数据库→所要操作的表→右键点该表→点设计表→右键点 设计表的窗口→点 check约束→新建→然后在里面输入上面的话
上边的aaa是要约束的字段名
上边的那句的整体意思是:
upper 的意思是:小写转大写
ascii 的意思是:求字符串的最左边的字母的ascii码
然后判断这个码是不是在 64和91 之间
也就是 A 和Z 之间
写成语句就是:
alter table 表名
with nocheck
add constraint ck_aaa
check( (ascii(upper([aaa])) > 64 and ascii(upper([aaa])) < 91))
其中ck_aaa 是约束的名字,随便起的,你想起什么就起什么
with nocheck 就是对现有的数据不进行检查,只有新加入的数据才检查
回答完毕。
帮助别人,自己得分,巩固知识,何乐而不为!!
② SQL里面的特殊字符怎么表示
' -- 单引号
" --双引号
& -- 并且
|| -- 连接符
@ --定义变量
% -- 模糊查询符号
* -- 通配符
() -- 括号
-- --注释
③ 查找某字段中含有小写字母的sql怎么写
SELECT *
from 表名
where 字段 COLLATE Chinese_PRC_CS_AS LIKE '%[abcdefghijklmnopqrstuvwxyz]%'
筛选表中指定字段包含26某个小写字母
④ T-SQL编写程序输出26个小写英文字母
可以直接通过char类型的进行读取和输出:
for (char M = 'Z'; M >= 'A'; M--) {//倒叙输出大写的26个字母
System.out.print(M);
}
for (char M = 'z'; M >= 'a'; M--) {//倒叙的输出小写的26个字母
System.out.print(M);
}
输出结果:
备注:char类型的”A“的值是65,“Z”的值是89,“a”的值是90,“z”的值是116。可以把上面的char值替换成数字也可以
⑤ 用sql语句怎么编写让名字的首位字母显示,其他的都用*代替
sqlserver:
select left(name,1)+'**' from table
或者select substring(name,1,1)+'**' from table
这个*不会自动按剩余数量拼接的,如果你想达到那个效果估计要写个函数了
⑥ 想要用sql server 2005写一段可以自动生成含有字母的序号要怎么写如SQ001,SQ002
您好,SQL Server2005中利用SQL语句自动生成序号:
第一种方式:
查询的SQL语句:
select row_number() over (order by name) as rowid, sysobjects.[name] from sysobjects
运行结果如下:
rowid name
1 all_columns
2 all_objects
3 all_parameters
4 all_sql_moles
5 all_views
第二种方式:
利用这种方式生成自动序号时Test_Table必须在数据库中不能存在,因为在执行些SQL语句时自己创建表
select id=IDENTITY(int,1,1), sysobjects.[name] as name into dbo.Test_Table from sysobjects
⑦ SQL在字段里插入一个字母
我参考飞彩流虹的语句写个oracle版的:
upadte
TB1
set
CPYM=substring(CPYM,0,charindex('腱',CMC)-1)||'J'||substring(CPYM,charindex('腱',CMC),len(CMC))
之所以在取'腱'之后的字符的时候没有加上2是因为在CPYM字段里面全部是字符只缺少'腱'的拼音,因此charindex('腱',CMC)取的的位置号正好是插入'J'的位置,因此从该位置之后的字符应该全部属于取'腱'之后的字符。
⑧ sql语句的写法有什么规范吗大写小写的 谢谢
这个纯是个人书写习惯问题,没有什么规范,主要看自己用哪个舒服了
只有一种情况大小写敏感
select * from table where name ='A' ;
select * from table where name ='a' ;
也就这两种情况下区分大小写
⑨ sql怎么写
正则表达式检索REGEXP_LIKE
Oracle
3个参数
第一个是输入的字符串
第二个是正则表达式
第三个是取值范围:
i:大小写不敏感;
c:大小写敏感;
n:点号 . 不匹配换行符号;
m:多行模式;
x:扩展模式,忽略正则表达式中的空白字符。
我想查找所有含有字母的数据
WHERE REGEXP_LIKE( 字段, '[A-Z]', i);