) Default:默认值,系统给出最多的值是default null 尽量不要让字段允许为空,因为数据往往需要有值才有意义。...使用default关键字来显示使用系统的默认值 Primary key 主键,主要的键,用主键修饰的字段,该字段具有唯一性(不能重复) 1. 一张表最多只能一个主键 2....字段必须是整型 2. 必须保证使用自动增长的字段首先满足的一个条件:是一个索引字段 3. 一个表只能有一个自动增长 4....而唯一键可能有多个,所谓唯一键的删除,需要额外的指定要删除的唯一键的名字 语法:alter table 表名 drop index 唯一键名字/字段名 Comment 注释,是一种字段说明,会永远的保存在表的创建语句中...注释:表示当前代码是注释,不用执行,在语句执行之后,会被忽略掉 1.
在Oracle 中只能用双引号"包围关键字。...但由于Oracle中双引号内的字符串是区分大小写的,而不管创建表还是查询时,Oracle都会把字段名转成全部大写,所以,除非创建表时双引号内的字段名就是全大写的,否则以后查询时SQL语句都必须加双引号,...同理,查询普通字段也可以通过加双引号查询得出,但双引号内的字段名必须是全大写,例如SELECT "ANY_FIELD_NAME" FROM TableName 在SQL Server 中可以用方括号[]...或双引号"包围关键字。...字段名任何情况下都不区分大小写。 在MySQL 中用`(backticks)把表和列名名字围起来。字段名也不区分大小写。
大家好,又见面了,我是你们的朋友全栈君。...1 修改字段类型、字段名、字段注释、类型长度、字段默认值 mysql修改字段类型: --能修改字段类型、类型长度、默认值、注释 --对某字段进行修改 ALTER TABLE 表名 MODIFY [...COLUMN] 字段名 新数据类型 新类型长度 新默认值 新注释; -- COLUMN关键字可以省略不写 alter table table1 modify column column1...字段类型 是否可为空 COMMENT '注释' AFTER 指定某字段 ; --COLUMN关键字可以省略不写 mysql> alter table white_user_new add column...5 删除字段 ALTER TABLE 表名 DROP [COLUMN] 字段名 ; --COLUMN关键字可以省略不写 mysql> alter table white_user_new drop
修改字段 类型、名、注释、类型长度、默认值 ALTER TABLE 表名 MODIFY [COLUMN] 字段名 新类型 新类型长度 新默认值 新注释; -- COLUMN关键字可以省略不写...-- 字段名称未改变,修改字段类型、类型长度、默认值、注释 ALTER TABLE 表名 CHANGE [column] 旧字段名 新字段名 新数据类型; alter table table1...column1 decimal(10,1) DEFAULT NULL COMMENT '注释' alter table table1 change column1 column2; -- 报错 mysql...Duplicates: 0 Warnings: 0 更改表名 Table 从 db_a 要搬到 db_b RENAME TABLE db_a.old_table TO db_b.new_table; MySQL...Table 改名字(重命名) RENAME TABLE old_table TO new_table; MySQL 两个 Table 互换名 RENAME TABLE old_table TO tmp_table
什么是Explain Explain被称为执行计划,在语句之前增加 explain 关键字,MySQL 会在查询上设置一个标记,模拟MySQL优化器来执行SQL语句,执行查询时,会返回执行计划的信息,并不执行这条...Explain命令(关键字) explain简单示例 mysql>explain select * from t_user; ?...*注意,MySQL不同版本Explain表现差异很大,有些场景,从语句层面看,是要使用到索引,但经过优化器分析,结合表中现有数据,如果MySQL认为全表扫描性能更优,则会使用全表扫描。...【ref列】 这一列表明了在key列记录的索引中,表查找值所用到的列或常量,常见的有:const(常量),字段名,如user.user_id 【rows列】 这一列表明优化器大概要读取并检测的行数。...此时mysql会根据联接类型浏览所有符合条件的记录,并保存排序关键字和行指针,然后排序关键字并按顺序检索行信息。这种情况下要考虑使用索引来优化的。
Mysql 一、.mysql修改 1.修改字段类型、字段名、字段注释、字段默认值 #修改字段类型、字段注释、字段默认值 ALTER TABLE 表名 MODIFY [COLUMN] 字段名 新数据类型...新类型长度 新默认值 新注释; -- COLUMN关键字可以省略不写 alter table box modify column boxnum varchar(40) not null comment...'编号' 2.修改字段名 mysql修改字段名: ALTER TABLE 表名 CHANGE [column] 旧字段名 新字段名 新数据类型; alter table table1 change...字段类型 是否可为空 COMMENT '注释' AFTER 指定某字段 ; --COLUMN关键字可以省略不写 alter table box add column boxroom varchar(...; --COLUMN关键字可以省略不写 alter table box drop boxroom
RIGHT JOIN 关键字会右表 (table_name2) 那里返回所有的行,即使在左表 (table_name1) 中没有匹配的行。 DISTINCT 用于返回唯一不同的值。...charlist] 不在字符列中的任何单一字符 LIMIT MySQL的方言 SELECT * FROM operation WHERE type = 'SQLStats' AND name = 'SlowLog...在前端数据浏览翻页,或者大数据分批导出等场景下,是可以将上一页的最大值当成参数作为查询条件的。...A where id in (select id from B); select * from A where exists (select 1 from B where A.id=B.id); in是在内存里遍历比较
大家好,又见面了,我是你们的朋友全栈君。 1 Python 关键字概述 Python 关键字(或称 保留字)指的是 Python 语言中一些已经被赋予特定意义的单词。...以下标识符被作为 Python 语言的保留字或称关键字,共 35 个。关键字的拼写必须与这里列出的完全一致。...Python 关键字(或称 保留字)是一些已经被赋予特定意义的单词,所以要求开发者在开发程序时,不能再用这些关键字作为标识符给变量、函数、类、模块以及其他对象命名。...3.2 关键字区分大小写 由于 Python 是严格区分大小写的,所以 Python 关键字也必然是区分大小写的。 这就要求程序员在用关键字的时候,一定要与以上所列出的关键字完全一致。...3.3 关键字作为普通标识符使用会报错 假设,如果使用 Python 中的关键字作为普通标识符,会出现什么情况呢?
一、Explain是什么 使用 EXPLAIN 关键字可以模拟优化器执行 SQL 查询语句,从而知道 MySQL 是如何处理你的 SQL 语句的。分析你的查询语句或是表结构的性能瓶颈。...是较为重要的一个指标,常见的结果值从最好到最坏依次是:system > const > eq_ref > ref > range > index > ALL 。...使用了索引但是没用通过索引进行过滤,一般是使用了覆盖索引或者是利用索引进行了排序分组。...7、ref 显示索引的哪一列被使用了,如果可能的话,是一个常数。哪些列或常量被用于查找索引列上的值。 8、rows rows 列显示 MySQL 认为它执行查询时必须检查的行数。越少越好!...9、extra Using filesort 说明 mysql 会对数据使用一个外部的索引排序,而不是按照表内的索引顺序进行读取。MySQL 中无法利用索引 完成的排序操作称为“文件排序”。
mysql保留字列表: Reserved Words in MySQL 5.6.23 ACCESSIBLE ADD ALL ALTER ANALYZE AND AS ASC ASENSITIVE...VARCHAR VARCHARACTER VARYING WHEN WHERE WHILE WITH WRITE XOR YEAR_MONTH ZEROFILL NewReserved Words in MySQL
可是依然还是报错 最后发现desc这个字段是mysql的关键字 MySQL是由关键字组成的语言,关键字是一些用于执行MySQL操作 的特殊词汇。...在命名数据库、表、列和其他数据库对象时,一定不要使用这些关键字 阿里手册中也说明了 4....【强制】禁用保留字,如 desc、range、match、delayed 等,请参考 MySQL 官方保留字 mysql关键字汇总
大家好,又见面了,我是你们的朋友全栈君。 记录一下,根据工作中项目交付要求,要将MySQL数据库中的表名和字段名中做一个规范,其中就有将表名和字段名统一做小写处理。...废话不多说,直接上MySQL脚本: 批量修改数据库下的表名(大写改小写): SELECT concat( 'rename table ' , TABLE_NAME , ' to ' , LOWER...'\'' )), ';' ) AS '修改脚本sql' FROM information_schema.COLUMNS t WHERE TABLE_SCHEMA = '数据库名'; 如果是小写改大写
大家好,又见面了,我是你们的朋友全栈君。...一、Java的内存模型(JMM) 在仔细讲解Java的volatile关键字之前有必要先了解一下【Java的内存模型】 Java的内存模型简称JMM(Java Memory Model...二、Volatile关键字具有的特性 ①. volatile关键字具有许多特性,其中最重要的特性就是保证了用volatile修饰的变量对所有线程的可见性。...为什么volatile关键字可以有这样的特性?...happens-before是JSR-133规范之一,内存屏障是CPU指令。 可以简单认为前者是最终目的,后者是实现手段。 九、总结 1.
一、背景 源数据库:pg 目标数据库:hive 问题: 自定义json时因pg表字段中包含desc的字段所以报错 二、定位问题 很明显,desc是关键字,所以报错 三、解决方案 将自定义json中的双引号调整成单引号...,关键字加"" --原sql: "querySql": ["SELECT col1,col2,desc FROM public.pg_tablename"] --修改后sql: "querySql":
https://mp.weixin.qq.com/s/Qq-d3s07BmDa478qcJtQbQ explain select * from tb_item where id = 1; type 显示的是访问类型...,是较为重要的一个指标,结果值从好到坏依次是: system > const > eq_ref > ref > fulltext > ref_or_null > index_merge > unique_subquery...字段 含义 id 是一组数字,代表多个表之间的查询顺序,或者包含子句查询语句中的顺序,id 总共分为三种情况,依次详解1、id 相同,执行顺序由上至下2、id 不同,如果是子查询,id 号会递增,id...const 的特例,几乎不会出现这种情况,可以忽略不计2、const:将主键索引或者唯一索引放到 where 条件中查询,MySQL 可以将查询条件转变成一个常量, 只匹配一行数据...,索引一次就找到数据了3、eq_ref:类似ref,区别在于使用的是唯一索引,使用主键的关联查询,关联查询出的记录只有一条。
利用mysql explain来对sql语句进行优化,你需要懂这些关键字各表示的含义,这样优化才有的放矢。...语法格式如下: EXPLAIN SELECT SQL 语法格式说明: EXPLAIN:分析查询语句的关键字。 SELECT:执行查询语句的关键字。 SQL:查询语句。...UNION:当前SQL语句是连接查询时,表示连接查询的第二个SELECT语句或者第二个后面的SELECT语句。...(4)partitions:如果当前数据表是分区表,则表示查询结果匹配的分区。...(7)key:执行查询语句时MySQL实际会使用到的索引。如果MySQL实际没有使用索引,则此列为NULL。
在Mysql 众多表中查找一个表名或者字段名的 SQL 语句: SELECT table_name, column_name from information_schema.columns WHERE
s值是3,理所当然输出 s=3,这种情况不难理解。...volatile关键字具有许多特性,其中最重要的特性就是保证了用volatile修饰的变量对所有线程的可见性。 这里的可见性是什么意思呢?当一个线程修改了变量的值,新的值会立刻同步到主内存当中。...为什么volatile关键字可以有这样的特性?这得益于java语言的先行发生原则(happens-before)。...翻译结果如下: 在计算机科学中,先行发生原则是两个事件的结果之间的关系,如果一个事件发生在另一个事件之前,结果必须反映,即使这些事件实际上是乱序执行的(通常是优化程序流程)。...这样一来本线程所计算更新的是一个陈旧的count值,自然无法做到线程安全: 因此,什么时候适合用volatile呢?
大家好,又见面了,我是全栈君。...今天写代码的时候,老是提示在You have an error in your SQL syntax; check the manual that corresponds to your MySQL server...语句的时候删掉这个字段就不会报错,加上这个字段添加和查询又会报错,纠结了很久,最后终于试着把describe改为describes,可以正常插入数据,也可以正常查询了,后面在网上一查,describe竟然是mysql...在SQL语句中出现的关键字和保留字 如果要使用人他们的字符意思而不是作为关键字、保留字使用,关键字可以正常使用,但是保留字必须使用`(键盘tab键上面,数字1左边的那个按键)来分割。...这个在SQLServer里面是使用[]中括号实现的。所以我们要尽量避免使用关键字和保留字来作为表名和字段名。
关键字介绍 SQL 是由关键字组成的语言,关键字是一些用于执行 SQL 操作的特殊词汇。在命名数据库、表、列和其他数据库对象时,一定不要使用这些关键字。因此,这些关键字是一定要保留的。...所以应该 desc 是一个关键字。...在数据库里是严格区分的,任何数跟 NULL 进行运算都是 NULL, 判断值是否等于 NULL,不能简单用 =,而要用 IS NULL关键字。...另外需要注意的一点是,从mysql 8.0开始,mysql默认的CHARSET已经不再是Latin1了,改为了utf8mb4(参考链接),并且默认的COLLATE也改为了utf8mb4_0900_ai_ci...在mysql8.0以下版本中,你如果什么都不修改,默认的CHARSET是Latin1,默认的COLLATE是latin1_swedish_ci。
领取专属 10元无门槛券
手把手带您无忧上云