首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

SQL笔记(2)——MySQL的表操作与索引

修改列 这里以修改备注列的不允许空,默认空备注场景; mysql> alter table score modify column remarks varchar(1000) not null...Column_name:索引中包含的列名。 Collation:对该列使用的字符集排序规则,如果该列不在任何索引中,则为NULL。 Cardinality:索引中唯一的数量估计,不一定准确。...Sub_part:如果是前缀索引,则表示被索引字符串的长度,否则为NULL。 Packed:如果是PACK_KEYS索引类型,则表示使用的压缩率,否则为NULL。...Null:该列是否允许NULL如果允许,则为YES,否则为NO。 Index_type:索引类型,例如Btree、Hash等。 Comment:索引的注释。...Expression:如果该索引是函数表达式的结果,则为表达式函数名,否则为NULL

1.6K20

mysql 查看索引、添加索引、删除索引命令添加索引删除索引

· Non_unique 如果索引不能包括重复词,则为0。如果可以,则为1。 · Key_name 索引的名称。 · Seq_in_index 索引中的列序列号,从1开始。...· Column_name 列名称。 · Collation 列以什么方式存储在索引中。在MySQL中,有‘A’(升序)NULL(无分类)。...· Cardinality 索引中唯一的数目的估计。通过运行ANALYZE TABLEmyisamchk -a可以更新。...基数根据被存储整数的统计数据来计数,所以即使对于小型表,该也没有必要是精确的。基数越大,当进行联合时,MySQL使用该索引的机 会就越大。...· Sub_part 如果列只是被部分地编入索引,则为被编入索引的字符的数目。如果整列被编入索引,则为NULL。 · Packed 指示关键字如何被压缩。如果没有被压缩,则为NULL

3.4K10

Mysql索引

好处 打个比方,如果合理的设计且使用索引的MySQL是一辆兰博基尼的话,那么没有设计和使用索引的MySQL就是一个人力三轮车。 索引分单列索引和组合索引。...Non_unique 如果索引不能包括重复词,则为0。如果可以,则为1。 Key_name 索引的名称。 Seq_in_index 索引中的列序列号,从1开始。 Column_name 列名称。...在MySQL中,有‘A’(升序)NULL(无分类)。 Cardinality 索引中唯一的数目的估计。通过运行ANALYZE TABLEmyisamchk -a可以更新。...基数根据被存储整数的统计数据来计数,所以即使对于小型表,该也没有必要是精确的。基数越大,当进行联合时,MySQL使用该索引的机会就越大。...Sub_part 如果列只是被部分地编入索引,则为被编入索引的字符的数目。如果整列被编入索引,则为NULL。 Packed 指示关键字如何被压缩。如果没有被压缩,则为NULL

1.8K10

MySQL查看索引

· Non_unique 如果索引不能包括重复词,则为0。如果可以,则为1。 · Key_name 索引的名称。 · Seq_in_index 索引中的列序列号,从1开始。...· Column_name 列名称。 · Collation 列以什么方式存储在索引中。在MySQL中,有‘A’(升序)NULL(无分类)。...· Cardinality 索引中唯一的数目的估计。通过运行ANALYZE TABLEmyisamchk -a可以更新。...基数根据被存储整数的统计数据来计数,所以即使对于小型表,该也没有必要是精确的。基数越大,当进行联合时,MySQL使用该索引的机 会就越大。...· Sub_part 如果列只是被部分地编入索引,则为被编入索引的字符的数目。如果整列被编入索引,则为NULL。 · Packed 指示关键字如何被压缩。如果没有被压缩,则为NULL

5K30

关于mysql 删除数据后物理空间未释

Column_name :列名称。 Collation :列以什么方式存储在索引中。在MySQLSHOW INDEX语法中,有'A'(升序)NULL(无分类)。 ...Cardinality :索引中唯一的数目的估计。通过运行ANALYZE TABLEmyisamchk -a可以更新。...基数根据被存储整数的统计数据来计数,所以即使对于小型表,该也没有必要是精确的。基数越大,当进行联合时,MySQL使用该索引的机会就越大。 ...Sub_part :如果列只是被部分地编入索引,则为被编入索引的字符的数目。如果整列被编入索引,则为NULL。 Packed :指示关键字如何被压缩。如果没有被压缩,则为NULL。 ...Null :如果列含有NULL,则含有YES。如果没有,则为空。

1K50

mysql查询表的索引_MySQL查看表索引

· Non_unique 如果索引不能包括重复词,则为0。如果可以,则为1。 · Key_name 索引的名称。 · Seq_in_index 索引中的列序列号,从1开始。...· Column_name 列名称。 · Collation 列以什么方式存储在索引中。在MySQL中,有‘A’(升序)NULL(无分类)。...· Cardinality 索引中唯一的数目的估计。通过运行ANALYZE TABLEmyisamchk -a可以更新。...基数根据被存储整数的统计数据来计数,所以即使对于小型表,该也没有必要是精确的。基数越大,当进行联合时,MySQL使用该索引的机 会就越大。...· Sub_part 如果列只是被部分地编入索引,则为被编入索引的字符的数目。如果整列被编入索引,则为NULL。 · Packed 指示关键字如何被压缩。如果没有被压缩,则为NULL

6.7K40

MySQL基础(快速复习版)

11、【补充】ifnull函数 功能:判断某字段表达式是否null如果null 返回指定的,否则返回原本的 select ifnull(commission_pct,0) from employees...; 12、【补充】isnull函数 功能:判断某字段表达式是否null如果是,则返回1,否则返回0 2.2、条件查询 一、语法 select 查询列表 from 表名 where 筛选条件 二..., 外面的语句可以是insert、update、delete、select等,一般select作为外面语句较多 外面如果select语句,则此语句称为外查询主查询 二、分类 1、按出现位置 select...可以自动提供序列,默认从1开始,步长1 auto_increment_increment 如果要更改起始:手动插入 如果要更改步长:更改系统变量 set auto_increment_increment....变量名=;set @@变量名=; 1、全局变量 服务层面上的,必须拥有super权限才能为系统变量赋值,作用域整个服务,也就是针对于所有连接(会话)有效 2、会话变量 服务每一个连接的客户端都提供了系统变量

4.5K20

面试官出的 MySQL 索引的问题,这篇文章全给你解决!

table_name:表的名称,表示哪个表添加索引。 column_name(length):column_name是表的列名,length表示这一列的前length行记录添加索引。...字段 解释 Table 索引所在的表 Non_unique 非唯一索引,如果是0,代表唯一的,也就是说如果该列索引中不包括重复的则为0 否则为1 Key_name 索引的名字,如果是主键的话 则为PRIMARY...可以是A或者NULL,B+树索引总是A,排序的, Sub_part 是否列的部分被索引,如果只是前100行索引,就显示100,如果是整列,就显示NULL Packed 关键字是否被压缩,如果没有,NULL...有1000W条数据的表,有如下sql:select from table where col1=1 and col2=2 and col3=3,假设假设每个条件可以筛选出10%的数据,如果只有单索引,...,如果用户经常值查询其中你的几个字段,可以考虑在这几个字段上建立索引,从而将表的扫描变为索引的扫描 索引失效情况 以%开头的 like 查询不能利用 B-Tree 索引,执行计划中 key 的 null

43020

​show index 中部分字段的含义

Non_unique 如果是主键索引唯一索引, 则为0; 如果是普通索引,则为1 着重注意多列组成的联合索引,可以设置唯一索引 3. Key_name 索引名称 4....列以什么方式存储在索引中, 在MySQL 8.0之前, 只有‘A’(升序,asc)NULL(无分类); 8.0之后,增加了对desc的支持 可参考: InnoDB一棵B+树,可以存放多少行数据 ,搜索降序索引...通过运行ANALYZE TABLEmyisamchk -a可以更新。cardinality根据被存储整数的统计数据来计数,所以即使对于小型表,该也没有必要是精确的。...Sub_part 如果列只是一部分被编入索引(即前缀索引),则该字段将不为NULL,而为被编入索引的字符数目. 如果整列被编入索引, 则为NULL....如果没有被压缩,则为NULL. 10. Null 如果该列含有NULL, 则为YES. 11.

13020

面试官出的 MySQL 索引的问题,这篇文章全给你解决!

table_name:表的名称,表示哪个表添加索引。 column_name(length):column_name是表的列名,length表示这一列的前length行记录添加索引。...字段 解释 Table 索引所在的表 Non_unique 非唯一索引,如果是0,代表唯一的,也就是说如果该列索引中不包括重复的则为0 否则为1 Key_name 索引的名字,如果是主键的话 则为PRIMARY...可以是A或者NULL,B+树索引总是A,排序的, Sub_part 是否列的部分被索引,如果只是前100行索引,就显示100,如果是整列,就显示NULL Packed 关键字是否被压缩,如果没有,NULL...有1000W条数据的表,有如下sql:select from table where col1=1 and col2=2 and col3=3,假设假设每个条件可以筛选出10%的数据,如果只有单索引,...,如果用户经常值查询其中你的几个字段,可以考虑在这几个字段上建立索引,从而将表的扫描变为索引的扫描 索引失效情况 以%开头的 like 查询不能利用 B-Tree 索引,执行计划中 key 的 null

30520

MYSQL-索引

如果没有创建PRIMARY KEY索引,但表具有一个多个UNIQUE索引,则MySQL将删除第一个UNIQUE索引。 如果从表中删除了某列,则索引会受到影响。...如果可以,则为1 Key_name:索引的名称 Seq_in_index:索引中的列序列号,从1开始 Column_name:列名称 Collation:列以什么方式存储在索引中。...在MySQL中,有‘A’(升序)NULL(无分类)。 Cardinality:索引中唯一的数目的估计。通过运行ANALYZE TABLEmyisamchk -a可以更新。...基数根据被存储整数的统计数据来计数,所以即使对于小型表,该也没有必要是精确的。基数越大,当进行联合时,MySQL使用该索引的机会就越大。...Sub_part:如果列只是被部分地编入索引,则为被编入索引的字符的数目。如果整列被编入索引,则为NULL。 Packed:指示关键字如何被压缩。如果没有被压缩,则为NULL

1K20

MySQL基础学习笔记

null如果null,返回指定的(比如指定0),否则返回原本的 select ifnull(字符, 0) from 表名; #isnull #判断某字段表达式是否null,是则返回1,不是则返回...= , 逻辑运算符 and(&&):两个条件如果同时成立,结果true,否则为false or(||):两个条件只要有一个成立,结果true,否则为false not(!)...:如果条件成立,则not后为false,否则为true 模糊查询 like between and in is null 排序查询 #语法 select 要查询的东西 from 表 where...count(1),计算行数时null的也会包含进去,效率高 count(字段名),得到的结果将是除去null和重复数据后的结果,效率低 5、和分组函数一同查询的字段要求是group by后的字段...case 表达式 when 1 then 结果1语句1(如果是语句,需要加分号) when 2 then 结果2语句2(如果是语句,需要加分号) ...

1K50

mysql删除数据空间没有释放

Column_name : 列名称。 Collation : 列以什么方式存储在索引中。在 MySQLSHOW INDEX 语法中,有’A’(升序) NULL(无分类)。...Cardinality : 索引中唯一的数目的估计。通过运行 ANALYZE TABLE myisamchk -a 可以更新。...基数根据被存储整数的统计数据来计数,所以即使对于小型表,该也没有必要是精确的。基数越大,当进行联合时,MySQL 使用该索引的机会就越大。...Sub_part : 如果列只是被部分地编入索引,则为被编入索引的字符的数目。如果整列被编入索引,则为 NULL。 Packed : 指示关键字如何被压缩。如果没有被压缩,则为 NULL。...Null : 如果列含有 NULL,则含有 YES。如果没有,则为空。

5.2K20

MySQL Tips【Updating】

for column 'name' at row 1 SQL>insert into test values(null,'一二三四五六七八九十1'); ERROR 1406 (22001): Data...too long for column 'name' at row 1 SQL>insert into test values(null,'一二三四五六七八九十一'); ERROR 1406 (22001...据说MySQL5中varchar的长度也字符,而MySQL4中的则为字节,未经证实,感兴趣的有环境可以自己测下。      ...即主表条件在on后面时附表只取满足主表帅选条件的、而主表还是取整表。     (2):对于主表的筛选条件应放在where后面,不应该放在ON后面     (3):对于关联表我们要区分对待。...如果是想再连接完毕后才筛选就应把条件放置于where后面     (4): 对于关联表我们其实可以先做子查询再做join,所以第二个sql等价于: select  A.ID as AID, B1.ID

95070

mysql联合索引的理解

3.索引类型 在创建索引时,可以规定索引能否包含重复如果不包含,则索引应该创建PRIMARY KEYUNIQUE索引。对于单列惟一性索引,这保证单列不包含重复的。...· Column_name   列名称。   · Collation   列以什么方式存储在索引中。在MySQL中,有‘A’(升序)NULL(无分类)。   ...· Sub_part   如果列只是被部分地编入索引,则为被编入索引的字符的数目。如果整列被编入索引,则为NULL。   · Packed   指示关键字如何被压缩。...如果没有被压缩,则为NULL。   · Null   如果列含有NULL,则含有YES。如果没有,则该列含有NO。   ...所以我们在数据库设计时不要让字段的默认NULL。 4,使用短索引 对串列进行索引,如果可能应该指定一个前缀长度。

1.5K20

SQL 简易教程 中

下面的 SQL 语句选取 name "Google" "微博" 的网站: SELECT * FROM Websites WHERE name IN ('Google','微博'); SQL NOT...有必要的话,可以使用转换函数和计算字段; (3) 检验包含所需数据的新表; (4) 重命名旧表(如果确定,可以删除它); (5) 用旧表原来的名字重命名新表; (6) 根据需要,重新创建触发、...SQL NULL NULL 代表遗漏的未知数据。默认地,表的列可以存放 NULL 如果表中的某个列是可选的,那么我们可以在不向该列添加值的情况下插入新记录更新已有的记录。...这意味着该字段将以 NULL 保存。 NULL 的处理方式与其他不同。 NULL 用作未知的不适用的的占位符。请始终使用 IS NULL 来查找 NULL 。...表示如果NULL 则 IFNULL() 返回 0: SQL EXISTS 运算符 EXISTS 运算符用于判断查询子句是否有记录,如果有一条多条记录存在返回 True,否则返回 False。

2.8K10
领券