首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Java开发手册之SQL语句

【强制】不要使用count(列名)或count(常量)来替代count(),count()是SQL92定义的标准统计行数的语法,跟数据库无关,跟NULL和非NULL无关。...说明:count(*)会统计值为NULL,而count(列名)不会统计此列为NULL值的。...【强制】count(distinct col) 计算列除NULL之外的不重复行数,注意 count(distinct col1, col2) 如果其中一列全为NULL,那么即使另一列有不同的值,也返回为...【推荐】in操作能避免避免,若实在避免不了,需要仔细评估in后边的集合元素数量,控制在1000个之内。...说明: SELECT LENGTH("轻松工作"); 返回为12 SELECT CHARACTER_LENGTH("轻松工作"); 返回为4 如果需要存储表情,那么选择utfmb4来进行存储,注意它与

68220

值得用来替代Vector的Java集合:ArrayBlockingQueue详解

take():获取并移除此队列的头元素,如果队列为空阻塞直到队列有元素可用。 offer(E e):将指定元素插入此队列的尾部,如果队列已满返回 false。...poll():获取并移除此队列的头元素,如果队列为空返回 null。 remainingCapacity():返回此队列中剩余的可用空间。 size():返回此队列中的元素数量。...如果队列已满,阻塞等待直到队列有空间可用。在执行方法时,线程会获取可中断锁并进入临界区。若队列已满,线程调用 notFull.await() 方法进入条件等待状态。...take() 获取并移除此队列的头元素,如果队列为空阻塞直到队列有元素可用。...poll() 获取并移除此队列的头元素,如果队列为空返回 null

24661
您找到你想要的搜索结果了吗?
是的
没有找到

SQL命令 ALTER TABLE

如果语句对列指定了NOT NULL约束,并且列没有默认值,如果表中已存在数据语句将失败。这是因为,在完成DDL语句之后,不满足所有预先存在的的NOT NULL约束。...如果语句对列指定了NOT NULL约束,并且列有默认值,语句将更新表中的所有现有,并将该列的默认值分配给字段。这包括CURRENT_TIMESTAMP等默认值。...如果语句没有对列指定NOT NULL约束,并且列有默认值,则在任何现有中都不会更新列。这些的列值为NULL。...如果表包含数据如果列包含空值,则不能指定NOT NULL; 这将导致SQLCODE -305错误。 如果更改包含数据的列的排序规则类型,必须重新构建列的所有索引。...如果表包含数据如果列包含空值,则不能为列指定NOT NULL;这会导致SQLCODE-305错误。

2K20

mysql(基本的SELECT语句)

着重号 我们需要保证表中的字段、表名等没有和保留字、数据库系统或常用方法冲突。如果真的相同,请在SQL语句中使用一对``(着重号)引起来。...SQL 中的 SELECT 语法的确提供了这个功能,一般来说我们只从一个表中查询数据,通常不需要增加一个固定的常数列,但如果我们想整合不同的数据源,用常数列作为这个表的标记,就需要查询常数。...DESCRIBE employees #表名 Type:表示字段类型, Null:表示列是否可以存储NULL值。 Key:表示列是否已编制索引。...PRI表示列是表主键的一部分; UNI表示列是UNIQUE索引的一部分; MUL表示在列中某个给定值允许出现多次。 Default:表示列是否有默认值,如果有,那么值是多少。...Extra:表示可以获取的与给定列有关的附加信息,例如AUTO_INCREMENT等。 barcode、goodsname 是文本型的 price 是整数类型的。

1.6K30

SQL命令 INSERT(二)

表可以选择将一个字段定义为数据类型ROWVERSION。如果定义了字段,插入操作会自动将命名空间范围的RowVersion计数器中的整数插入到字段中。...如果希望序列字段值是唯一的,必须对字段应用唯一约束。 插入计算值 使用COMPUTECODE定义的字段可以在INSERT操作中插入值,除非对字段进行了计算。...如果计算代码包含编程错误(例如,除以零),插入操作将失败,并显示SQLCODE-415错误。 默认值子句 可以将插入到其所有字段值都设置为默认值的表中。定义了默认值的字段将设置为值。...如果字段定义了唯一约束且没有默认值,重复调用会插入多行,并将此唯一字段设置为NULL如果使用唯一约束和默认值定义字段,此语句只能使用一次。第二次调用失败,返回SQLCODE-119。...指定的所有行都插入到表中,或者没有插入任何。例如,如果插入指定中的一会违反外键引用完整性,插入将失败,并且不会插入任何。此默认值是可修改的,如下所述。

3.3K20

MySQL性能优化(七):MySQL执行计划,真的很重要,来一起学习吧

前期回顾: MySQL性能优化(一):MySQL架构与核心问题 MySQL性能优化(二):选择优化的数据类型 MySQL性能优化(三):深入理解索引的这点事 MySQL性能优化(四):如何高效正确的使用索引...3. table列 table列表示对应正在执行的哪张表,指代对应表名,或者表的别名(如果SQL中定义了别名)。 4. partitions列 查询涉及到的分区。...3)range 只检索给定范围的,使用一个索引来选择。key列显示使用了那个索引。一般就是在where语句中出现了bettween、、in等的查询。...因为只需匹配一数据,所有很快。如果将主键置于where列表中,mysql就能将该查询转换为一个const。...7. key列 实际使用的索引,如果NULL,则没有使用索引。查询中如果使用了覆盖索引,索引仅出现在key列中。

5.3K71

MySQL 索引失效问题

或者在范围运算(>,)等运算的后面 where中索引列有运算 除了上面的几个明显的问题外,还有索引的选择问题。... a 本身走索引,但 a 后面的字段都不走索引 a=1 and b=1 and c>1 and d=1 这个例子 只有 d 不走索引,如果 索引顺序更改为 abdc 都会走索引。...birthday` < "1990/2/2"; -- 结果: id: 1 select_type: SIMPLE -- 查询类型(简单查询、联合查询、子查询) table: user -- 显示这一数据是关于哪张表的...possible_keys: birthday -- 指出MySQL能使用哪个索引在表中找到如果是空的,没有相关的索引。...如果NULL,则没有使用索引。如果为primary的话,表示使用了主键。 key_len: 5 -- 最长的索引宽度。如果键是NULL,长度就是NULL

1.4K10

MySQL 索引总结

索引用于快速找出在某个列中有一特定值的。不使用索引,MySQL必须从第1条记录开始然后读完整个表直到找出相关的。表越大,花费的时间越多。...如果表中查询的列有一个索引,MySQL能快速到达一个位置去搜寻到数据文件的中间,没有必要看所有数据。...2、索引好复杂,我怎么理解索引,有没一个更形象点的例子? 有,想象一下,你面前有本词典,数据就是书的正文内容,你就是那个cpu,而索引,则是书的目录 3、索引越多越好?...一半说来,同值的数据超过表的百分之15,那就没必要建索引了)太长的列,可以选择只建立部分索引,(如:只取前十位做索引)更新非常频繁的数据不适宜建索引(怎样叫非常?意会) 7、一次查询能用多个索引吗?...当然,联合索引也是个不错的方案,ab,还是ba,同上,区分度高者,在前 9、联合索引的问题?

52030

【干货】MySQL索引与优化实践

4、如果 MySQL 估计使用索引比全表扫描更慢,则不使用索引。 5、用 or 分割开的条件,如果 or 前的条件中的列有索引,而后面的列中没有索引,那么涉及的索引都不会被用到。...Handlerreadrndnext 的值高意味着查询运行低效,并且应该建立索引补救。这个值的含义是在数据文件中读下一的请求数。...如果正在进行大量的表扫描,Handlerreadrndnext 的值较高,通常说明表索引不正确或写入的查询没有利用索引,具体如下。...,那么查询只需要在索引文件上进行,不需要回到磁盘,这种查询,速度极快,江湖人称——索引覆盖 4、延迟关联 在根据条件查询数据时,如果查询条件不能用的索引,可以先查出数据的id,再根据id去取数据。...,要选择最常作为访问条件的列作为主键,另外,Innodb 表的普通索引都会保存主键的键值,所以主键要尽可能选择较短的数据类型,可以有效的减少索引的磁盘占用,提高索引的缓存效果。

75320

基本的SELECT语句与显示表结构

FROM 列的别名 去除重复 空值参与运算 着重号 查询常数(查询同时添加常数字段) 显示表结构 过滤数据 练习题 基本的SELECT语句 SELECT… SELECT 1+1, 2+2;# 直接这样写相当于下面这句...SELECT 1+1, 2+2 FROM DUAL; # 这里DUAL:伪表 SELECT … FROM 语法: SELECT 标识选择哪些字段(列) FROM 标识从哪个表中选择 例如选择全部列...着重号 我们需要保证表中的字段、表名等没有和保留字、数据库系统或常用方法冲突。如果真的相同,请在SQL语句中使用一对``(着重号)引起来。...Null:表示列是否可以存储NULL值。 Key:表示列是否已编制索引。PRI表示列是表主键的一部分;UNI表示列是UNIQUE索引的一部分;MUL表示在列中某个给定值允许出现多次。...Default:表示列是否有默认值,如果有,那么值是多少。 Extra:表示可以获取的与给定列有关的附加信息,例如AUTO_INCREMENT等。

1.5K50

(四)基本的SELECT语句

FROM,SELECT 标识的意思是,选择哪些列, FROM 标识的意思是,从哪个表中选择。         SELECT * FROM .........;表示选择所有的列;         SELECT A, B FROM ......;表示选择A,B两列;         具体实现如下所示。...:如果distinct后面接了多列数据,那就会对后面所有列名的组合进行去重 ,而且,如果两列表长度不一致,会报错。...Null:表示列是否可以存储NULL值。 Key:表示列是否已编制索引。PRI表示列是表主键的一部分;UNI表示列是UNIQUE索引的一 部分;MUL表示在列中某个给定值允许出现多次。...Default:表示列是否有默认值,如果有,那么值是多少。 Extra:表示可以获取的与给定列有关的附加信息,例如AUTO_INCREMENT等。

54920

MySQL深入浅出(二):索引的设计原则、SQL优化、MySQL日志、备份与恢复

如果表被其他线程锁定,当前线程会等待,直到可以获取所有锁定为止 ?...,被标记为UNION;若UNION包含在 FROM子句的子查中,外层SELECT将被标记为:DERIVED 从UNION表获取结果的SELECT被标记为:UNION RESULT table: 输出的所引用的表...如果没有索引被选择,是NULL key_len: 使用到索引字段的长度 注:key_len显示的值为索引字段的最大可能长度,并非实际使用长度,即key_len是根据表定义计算而得,不是通过表内检索出的...如果type列是ALL或index,而没有出现信息,你有可能在执行错误的查询:返回所有数据。 Using filesort:不是“使用文件索引”的含义!...如select * from test where last_name='1'; 用or分割的条件,如果or前的条件中的列有索引,而后面的列没有索引,那么涉及的索引都不会被用到。

1K21

数据结构与算法】7.详解队列的基本操作

if (head == null) { throw new RuntimeException("队列为空"); } 如果队列只有一个元素,移除元素并返回元素,同时将head和last置为空,返回移除元素的值...; } 如果列有多个元素,移除头元素并返回元素的值,将头节点指向头节点的下一个节点,将头节点的prev置为空,返回移除元素的值 head = head.next; head.prev = null...= null; return val; } 获取队头元素(peek) 判断队列是否为空,如果为空,抛出异常 if (head == null) { throw new RuntimeException...("队列为空"); } 如果不为空,返回队头元素的值 return head.val; 代码: /** * 获取队头元素 * @return */ public...判断队列的头节点是否为空,如果为空,队列为空 /** * 判断队列是否为空 * @return */ public boolean isEmpty()

5510

executescalar mysql_DbCommand.ExecuteScalar 方法的返回值

如果找不到结果集中第一的第一列;返回 null 引用(在 Visual Basic 中为 Nothing)。 如果数据库中的值为 null,此查询将返回 DBNull.Value。...set (0.01 sec) mysql> 第一个 select 语句返回一个确实存在的 keyword_id 值,第二个 select 语句返回空结果集,第三个 select 语句返回的结果集中有一数据...注意由于 Keywords 表的 keyword 列有 unique 索引,上面三个 select 语句返回的结果集中最多只能有一,不可能有多行。...DbCommand.ExecuteScalar 方法的调用者来说,select keyword_id 和 select MAX(keyword_id) 都是一样方便的,只不过要注意根据所使用的 SQL 语句来选择使用...当然,如果使用 result == null || result is DBNull 来判断查询结果是否为空就更保险了,能够适应这两种 SQL 语句的写法,但是运行效率就稍微低了一点。

1.3K20

6个提升效率的pandas小技巧

通过数据类型选择columns 数据分析过程可能会需要筛选数据列,比如只需要数值列,以经典的泰坦尼克数据集为例: import seaborn as sns # 导出泰坦尼克数据集 df = sns.load_dataset...查看数据集各列的数据类型: df.dtypes ? 可以看到各列的数据类型不太一样,有int、object、float、bool等。...标红色地方是有缺失值的列,并且给出了非缺失值的数量,你可以计算出列有多少缺失值。...删除包含缺失值的: df.dropna(axis = 0) 删除包含缺失值的列: df.dropna(axis = 1) 如果一列里缺失值超过10%,删除列: df.dropna(thresh...「合并」 假设数据集按分布在2个文件中,分别是data_row_1.csv和data_row_2.csv ?

2.3K20

对索引的使用

)),避免select *5、用or分割开的条件, 如果or前的条件中的列有索引,而后面的列中没有索引,那么涉及的索引都不会被用到。...如果非要用请使用全文索引或('aaa%')10、is NULL , is NOT NULL 有时索引失效。11、in 走索引, not in 索引失效。...3、联合索引的顺序不同,影响索引的选择,尽量将值少的放在前面。4、千万不要给大字段加索引。...所以我们在数据库设计时不要让字段的默认值为null。2、使用短索引 对串列进行索引,如果可能应该指定一个前缀长度。...因此数据库默认排序可以符合要求的情况下不要使用排序操作;尽量不要包含多个列的排序,如果需要最好给这些列创建复合索引。

10910

6个提升效率的pandas小技巧

通过数据类型选择columns 数据分析过程可能会需要筛选数据列,比如只需要数值列,以经典的泰坦尼克数据集为例: import seaborn as sns # 导出泰坦尼克数据集 df = sns.load_dataset...查看数据集各列的数据类型: df.dtypes ? 可以看到各列的数据类型不太一样,有int、object、float、bool等。...标红色地方是有缺失值的列,并且给出了非缺失值的数量,你可以计算出列有多少缺失值。...删除包含缺失值的: df.dropna(axis = 0) 删除包含缺失值的列: df.dropna(axis = 1) 如果一列里缺失值超过10%,删除列: df.dropna(thresh...「合并」 假设数据集按分布在2个文件中,分别是data_row_1.csv和data_row_2.csv ?

2.8K20

快速提升效率的6个pandas使用小技巧

通过数据类型选择columns 数据分析过程可能会需要筛选数据列,比如只需要数值列,以经典的泰坦尼克数据集为例: import seaborn as sns # 导出泰坦尼克数据集 df = sns.load_dataset...如果说我只要需要数值列,也就是数据类型为int、float的列,可以通过select_dtypes方法实现: df.select_dtypes(include='number').head() 选择数据类型为...,并且给出了非缺失值的数量,你可以计算出列有多少缺失值。...这样看可能不够直观,那可以用df.isnull().sum()方法很清楚地得到每列有多少缺失值: df.isnull().sum() df.isnull().sum().sum()则能够返回数据集总共有多少缺失值...删除包含缺失值的: df.dropna(axis = 0) 删除包含缺失值的列: df.dropna(axis = 1) 如果一列里缺失值超过10%,删除列: df.dropna(thresh

3.2K10
领券