热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

sql的小知识点

1,sql语句中加中括号和不加有什么区别吗?有些可能是SQL里面的保留字,但是你又用了它做字段名比如SUM那么用[SUM]可以避免这个问题,如果直接SUMSQL就报错了

1,sql语句中加中括号和不加有什么区别吗?

有些可能是SQL里面的保留字,但是你又用了它做字段名 比如 SUM

那么用[SUM] 可以避免这个问题,如果直接SUM SQL 就报错了

2,

delete 的用法

delete from product  where  id=1

delete product  where  id=1 这两种用法一样,也就是可以不用from也可以用from的


3,

数据库中有这种用法

select 'CAS NO.:'+casfrom new_cas

4,

数据类型text varchar equal to运算符中不兼容

为什么两个都是varchar的在比较的时候会出现这样的问题呢,那是因为在对数据库的值进行比较的时候不能超过约3000个长度的大小,否则的话就会出错,所以你可以在比较的时候用like,然后把字符串截断然后进行比较

如果你用这个语句ps.setString(2,pro_ident.substring(0, 400)+"%");来进行查询,那么你在like时字符串匹配不能太长,比如有2000个字符

5,

死锁的原因是一个sql在运行还没结束,另一个sql在等待中

Synchronized是用于多线程的,比如打开多个窗口的情况的话就不行

6,

select isnull(comid,0) fromproduct

这条sql语句判断如果comid为null的话,给它一个默认值0

7,

SET  STATISTICS   TIME on

写上这个的时候可以显示数据库执行的时间

8,

在查询是得到数据库的字段最大的长度

select  count (*) melting , max ( len (melting ))  fromchemDictionary  where melting <> ''

9,

更改数据库表中字段的长度:

alter table chemDictionaryaltercolumn comesvarchar(1000)

10,

一、查询A表中plz字段与B表 plz字段内容相同的数据并列出数据:

select A.name,A.plz from A left join B on a.plz=B.plzwhere B.plz is not null;

二、查询A表中plz字段与B表 plz字段内容不同的数据并列出数据:

select A.name,A.plz from A left join B on a.plz=B.plzwhere B.plz is null;

也可以使用not in来进行查询

left join是以A表的记录为基础的,A可以看成左表,B可以看成右表,left join是以左表为准的。换句话说,左表(A)的记录将会全部表示出来,而右表(B)只会显示符合搜索条件的记录(例子中为: A.aID = B.bID)。B表记录不足的地方均为NULL。

11,

select distinct name, id from table这是作用与nameid这两个字段,只有这两个都相同时才会被排除(distinct必须放在开头)

count中用distinct多个字段是否可以??? 不可以,可以用下面的方法

select count (*) from ( select distinct namecn ,company from productbak2_10 )productbak2_10

select count(*) from(selectmin(id)from productbak2_12groupbycompany,namecn)productbak2_12

12,

sqlserver中把int型的数据转化为varchar型的数据

update company1_26 set domain='guide'+convert(varchar,id)where domain is null

13,

sqlserver中取得随机数

如果是update company1_26 set password=id+rand()*10wherepasswordisnull

直接以这种方式的话取得的是double型的数值,如37761.5

所以应该使用convert来进行转化为int型

updatecompany1_26 set password =id + convert ( int , rand ()*10 ) where password is null

14,

要让数据添加的时候就记录添加的时间                 加这个(getdate())


15,

通过sql语句给数据库增加字段

alter table category2_22add testvarchar(50)

16,

sql="insert into 目标数据表 select * from 源数据表"(把源数据表的记录添加到目标数据表) /

/目标数据表必须先创建好,并且字段必须和源数据表字段数相同

17,

建立索引createindex index_idon product(id)

18,

数据库中的like语句可以用正则表达式

19,

数据库中的sql语句还支持+号的操作

select * from tglm where catidlike(select catidfromcategorywhere category='有机原料')+'%'

20,

得到电话号码的区号:0575-85515636

update buyinfo10_14 set code=substring(tel,0,charindex('-',tel))

21,数据库中字段类型为varchar时,它的长度如何理解

http://zhidao.baidu.com/question/208010985.html

MySQL数据库中字段类型为varchar,我将其长度设置为2,则最多可以存储2个汉字或者是2个字母。它的长度如何理解?单位是字还是字节?

是2个字节,汉字和字母在MYSQL里长度是不一样的,varchar(2)保存的是两个字节。特别提醒一下,如果知道字段的长度,建议用CHAR类型优化速度,如性别字段,直接使用CHAR,不要用varchar。

nvarchar(2)可以放2个全角字符

varchar(n) 在1<=N<=8000,varchar(2)相当于可以放一个汉字

varchar2(50) 表示该字段类型为varchar2类型,长度为50,可以存单字节字符50个,如字母、数字等,可以存储双字节字符25个,如汉字。

22,学习sql的一些语句和例子的地址

http://www.w3school.com.cn/sql/sql_union.asp

23,自增列不能直接修改,必须将原有ID列删除,然后重新添加一列具有identity属性的ID字段。比如你要修改的字段名为ID

alter table 表名 drop column ID

alter table 表名 add ID int identity(1,1)

24、统计数据库中表的个数

select count(*) from sysobjects where xtype='U'

25、

MySQL 中int(1)和tinyint(1)中的1只是指定显示长度,并不表示存储长度,只有字段指定zerofill是有用

如int(3),如果实际值是2,如果列指定了zerofill,查询结果就是002,左边用0来填充。
26、
SHOW CREATE TABLE table 在mysql中显示sql的创建语句

27、

Truncate是一个能够快速清空资料表内所有资料的SQL语法。并且能针对具有自动递增值的字段,做计数重置归零重新计算的作用。

TRUNCATE TABLE 在功能上与不带 WHERE 子句的 DELETE 语句相同:二者均删除表中的全部行。但 TRUNCATE TABLE 比 DELETE 速度快,且使用的系统和事务日志资源少。

DELETE 语句每次删除一行,并在事务日志中为所删除的每行记录一项。TRUNCATE TABLE 通过释放存储表数据所用的数据页来删除数据,并且只在事务日志中记录页的释放。

TRUNCATE TABLE 删除表中的所有行,但表结构及其列、约束、索引等保持不变。新行标识所用的计数值重置为该列的种子。如果想保留标识计数值,请改用 DELETE。如果要删除表定义及其数据,请使用 DROP TABLE 语句。

28、当 SET NOCOUNT 为 ON 时,不返回计数(表示受 Transact-SQL 语句影响的行数)。当 SET NOCOUNT 为 OFF 时,返回计数。
如果存储过程中包含的一些语句并不返回许多实际的数据,则该设置由于大量减少了网络流量,因此可显著提高性能。

29、left join的好处:可以使用主表的数据保持不动,把需要字段数据的表进行左连接,这样的话就不会丢失掉主表的数据项

30、mysql的数据类型int、bigint、smallint 和 tinyint取值范围

使用整数数据的精确数字数据类型。
bigint
从 -2^63 (-9223372036854775808) 到 2^63-1 (9223372036854775807) 的整型数据(所有数字)。存储大小为  8 个字节。

int
从 -2^31 (-2,147,483,648) 到 2^31 - 1 (2,147,483,647) 的整型数据(所有数字)。存储大小为  4 个字节。int 的 SQL-92 同义字为 integer。

smallint
从 -2^15 (-32,768) 到 2^15 - 1 (32,767) 的整型数据。存储大小为  2 个字节。

tinyint
从 0 到 255 的整型数据。存储大小为  1 字节。

注释
在支持整数值的地方支持 bigint 数据类型。但是,bigint 用于某些特殊的情况,当整数值超过 int 数据类型支持的范围时,就可以采用 bigint。在 SQL Server 中,int 数据类型是主要的整数数据类型。

在数据类型优先次序表中,bigint 位于 smallmoney 和 int 之间。
只有当参数表达式是 bigint 数据类型时,函数才返回 bigint。SQL Server 不会自动将其它整数数据类型(tinyint、smallint 和 int)提升为 bigint。


31、mysql中Timestamp,time,datetime 区别??

TIMESTAMP[(M)]
时间戳。范围是’1970-01-01 00:00:00’到2037年。
TIMESTAMP列用于INSERT或UPDATE操作时记录日期和时间。
如果你不分配一个值,表中的第一个TIMESTAMP列自动设置为最近操作的日期和时间。
也可以通过分配一个NULL值,将TIMESTAMP列设置为当前的日期和时间。
TIMESTAMP值返回后显示为’YYYY-MM-DD HH:MM:SS’格式的字符串,
显示宽度固定为19个字符。如果想要获得数字值,应在TIMESTAMP 列添加+0。

TIME
时间。范围是’-838:59:59’到’838:59:59’。
MySQL以’HH:MM:SS’格式显示TIME值,但允许使用字符串或数字为TIME列分配值。

DATETIME
日期和时间的组合。
支持的范围是’1000-01-01 00:00:00’到’9999-12-31 23:59:59’。
MySQL以’YYYY-MM-DD HH:MM:SS’格式显示DATETIME值,但允许使用字符串或数字为DATETIME列分配值。

32、使用ibatis插入mysql数据库的时候乱码

a、在java连接数据库的url地址后面加上?useUnicode=true&characterEncoding=UTF-8

b、设置mysql的默认编码为utf-8,在安装文件下面的my.ini文件里面的default-character-set=utf和character-set-server=utf-8进行设置

c、确定在建立表的时候字段的编码为utf-8

33、在mysql创建表中出现了这样的错误:


原因如下:


34、mysql的语法

1、获得当前日期(date)函数:curdate()
mysql> select curdate();

+------------+
| curdate() |
+------------+
| 2008-08-08 |
+------------+

其中,下面的两个日期函数等同于 curdate():
current_date()
,current_date

2. 获得当前时间(time)函数:curtime()
mysql> select curtime();

+-----------+
| curtime() |
+-----------+
| 22:41:30 |
+-----------+

其中,下面的两个时间函数等同于 curtime():
current_time()
,current_time

35、

This version of MySQL doesn't yet support 'LIMIT & IN/ALL/ANY/SOME subquery

This version of MySQL doesn't yet support 'LIMIT & IN/ALL/ANY/SOME subquery'的意思是,这版本的 MySQL 不支持使用 LIMIT 子句的 IN/ALL/ANY/SOME 子查询,即是支持非 IN/ALL/ANY/SOME 子查询的 LIMIT 子查询。

也就是说,这样的语句是不能正确执行的。 
select * from table where id in (select id from table limit 10)
但是,只要你再来一层就行。。如: 
select * from table where id in (select t.id from (select * from table limit 10)as t) 

36、修改数据库的密码:SET PASSWORD FOR root@localhost = PASSWORD('111111');

37、mysql在查询的时候前后加上字符串:

select concat('update item_cat set pic_url=\'',pic_url,'\' where catid='),catid from item_cat

38、

在mysql中导出数据

mysqldump -h数据地址 -u用户名 -p密码 数据库名 表名  > /tmp/test.sql

在mysql中导出数据结构

mysqldump -h数据地址 -u用户名 -p密码 -d 数据库名 表名  > /tmp/test.sql

表名不写表示导出数据库

39、MySQL删除数据Delete与Truncate语句使用比较

空mysqll表内容常见的有两种方法:一种delete,一种是truncate 。 不带where参数的delete语句可以删除mysql表中所有内容,使用truncate table也可以清空mysql表中所有内容。效率上truncate比delete快,但truncate删除后不记录mysql日志,不可以恢复数据。 

like不能使用索引
一次查询对于一个数据表只能使用一个索引
组合索引遵循最左前缀原则
group by的查询,数据库一般需要先将记录分组后放置在新的临时表中,然后分别对它们进行函数计算,如count(),sum()
mysql启动慢查询日志,会自动将超过1秒的查询记录在日志中,配置在my.conf中配置,

show processlist;监视所有线程的状态














推荐阅读
  • 前景:当UI一个查询条件为多项选择,或录入多个条件的时候,比如查询所有名称里面包含以下动态条件,需要模糊查询里面每一项时比如是这样一个数组条件:newstring[]{兴业银行, ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • 深入理解CSS中的margin属性及其应用场景
    本文主要介绍了CSS中的margin属性及其应用场景,包括垂直外边距合并、padding的使用时机、行内替换元素与费替换元素的区别、margin的基线、盒子的物理大小、显示大小、逻辑大小等知识点。通过深入理解这些概念,读者可以更好地掌握margin的用法和原理。同时,文中提供了一些相关的文档和规范供读者参考。 ... [详细]
  • 在Android开发中,使用Picasso库可以实现对网络图片的等比例缩放。本文介绍了使用Picasso库进行图片缩放的方法,并提供了具体的代码实现。通过获取图片的宽高,计算目标宽度和高度,并创建新图实现等比例缩放。 ... [详细]
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • Spring特性实现接口多类的动态调用详解
    本文详细介绍了如何使用Spring特性实现接口多类的动态调用。通过对Spring IoC容器的基础类BeanFactory和ApplicationContext的介绍,以及getBeansOfType方法的应用,解决了在实际工作中遇到的接口及多个实现类的问题。同时,文章还提到了SPI使用的不便之处,并介绍了借助ApplicationContext实现需求的方法。阅读本文,你将了解到Spring特性的实现原理和实际应用方式。 ... [详细]
  • 本文介绍了PhysioNet网站提供的生理信号处理工具箱WFDB Toolbox for Matlab的安装和使用方法。通过下载并添加到Matlab路径中或直接在Matlab中输入相关内容,即可完成安装。该工具箱提供了一系列函数,可以方便地处理生理信号数据。详细的安装和使用方法可以参考本文内容。 ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • Python正则表达式学习记录及常用方法
    本文记录了学习Python正则表达式的过程,介绍了re模块的常用方法re.search,并解释了rawstring的作用。正则表达式是一种方便检查字符串匹配模式的工具,通过本文的学习可以掌握Python中使用正则表达式的基本方法。 ... [详细]
  • 本文介绍了一个在线急等问题解决方法,即如何统计数据库中某个字段下的所有数据,并将结果显示在文本框里。作者提到了自己是一个菜鸟,希望能够得到帮助。作者使用的是ACCESS数据库,并且给出了一个例子,希望得到的结果是560。作者还提到自己已经尝试了使用"select sum(字段2) from 表名"的语句,得到的结果是650,但不知道如何得到560。希望能够得到解决方案。 ... [详细]
  • 标题: ... [详细]
  • 本文介绍了南邮ctf-web的writeup,包括签到题和md5 collision。在CTF比赛和渗透测试中,可以通过查看源代码、代码注释、页面隐藏元素、超链接和HTTP响应头部来寻找flag或提示信息。利用PHP弱类型,可以发现md5('QNKCDZO')='0e830400451993494058024219903391'和md5('240610708')='0e462097431906509019562988736854'。 ... [详细]
  • Oracle10g备份导入的方法及注意事项
    本文介绍了使用Oracle10g进行备份导入的方法及相关注意事项,同时还介绍了2019年独角兽企业重金招聘Python工程师的标准。内容包括导出exp命令、删用户、创建数据库、授权等操作,以及导入imp命令的使用。详细介绍了导入时的参数设置,如full、ignore、buffer、commit、feedback等。转载来源于https://my.oschina.net/u/1767754/blog/377593。 ... [详细]
  • 在IDEA中运行CAS服务器的配置方法
    本文介绍了在IDEA中运行CAS服务器的配置方法,包括下载CAS模板Overlay Template、解压并添加项目、配置tomcat、运行CAS服务器等步骤。通过本文的指导,读者可以轻松在IDEA中进行CAS服务器的运行和配置。 ... [详细]
author-avatar
所谓-旧
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有