问题描述:一同事误将“describe”关键字放入建表语句中,虽成功建表,但因未关键词的缘故,无法插入数据.故需将字段drop并换为非关键字的字段. 解决过程: 按常规删除字段语句操作报错,语句如下: ALTER TABLE interestedhobbies DROP COLUMN describe; 经查询得知,mysql删除“关键字”字段时,需给关键字加上“反引号”,看清了,是反引号,而不是单引号.语句如下: ALTER TABLE interestedhobbies DROP COLUM…
比如有如下2个表 a 和baaID b1ID b2ID b3ID1 1 3 52 2 4 6bbID bCon1 苹果2 香蕉3 国内4 国外5 出口6 进口其中a表中的b1ID,b2ID,b3ID都对应b表的bID现在要查询a表的第一条数据,期望查询到的结果如下aID b1ID b1Con b2ID b2Con b3ID b3Con1 1 苹果 3 国内 5 出口, SELECT m.aid,m.b1id,n.bcon,m.b2id as b2id,o.bcon as b2con, m.b3i…
我:本次继上次的Model继续延伸一下数据表之间的一对一映射关系 访客:有什么用? 我:众所周知,一张数据表的字段太多会显得冗余.杂乱,那么就需要将一张表进行拆分成多个表,这样不会太杂乱,也比较好维护 举例:每个人都有一张身份证,有且唯一一张,这里就存在一个   一对一的关系 一.Model建立 #一对一的模型实例: class Person(models.Model): p_name=models.CharField(max_length=16) p_sex=models.BooleanFie…
业务场景 1.表中字段较多 2.查询不需要表中某个字段的数据 语句如下: SELECT CONCAT(' select ',GROUP_CONCAT(COLUMN_NAME),' from ', TABLE_NAME,' ;')FROM information_schema.COLUMNS WHERE table_name = 'test' AND TABLE_SCHEMA = 'ems' and COLUMN_NAME != 'ID';  #忽略条件…
今天测试代码,新建了一张 Order 表,使用的 MySQL 数据库. 插入数据的时候报语法错误,我检查了好几遍,也没看出 SQL 语句哪里有问题,于是从 MyBatis 的日志里拷贝出 SQL 语句拿到 Navicate 里执行,同样报语法错误. 最后经过查找资料了解到,我的表名 Order 属于数据库保留的关键字.所以冲突了,有两种解决办法: (1)使用撇号把表名包起来:`Order`,就不会报错了. (2)修改表名为 OrderInfo.只要不是保留字就行. 在MySQL中,当表名或字段名…
MYSQL里面需要根据某个字段名,查询该字段名所在的表.这种情况主要是出现在比如你忘了表名,只知道有这样一个字段名,想找出那张表.第二种情况可能是,同一个字段名属于外键,你想找出例如  ID 这个字段到底有多少个表拥有. 在MYSQL 5.0之后的版本可以通过information_schema库当中的columns表来完成 如下代码来实现: USE information_schema; SELECT * FROM columns WHERE column_name='字段名';…
1.MySQL 获取表名: 用“show tables”命令.在程序中也可以采用该命令获取,在返回的RowSet中的“Tables_in_db”读出来.其中“db”是指你的数据库的名称,比如说Tables_in_productdb. 获取某个表的字段: 用“desc tablename”命令.取得方式和上面类似. 此外,还可用MySQL数据库系统表取得,在information_schema库中有系统中的一些基础性表,比如说TABLES\COLUMNS.但一般情况下,程序只访问本库中的表,所以不…
1.MySQL默认情况下是否区分大小写,使用show Variables like '%table_names'查看lower_case_table_names的值,0代表区分,1代表不区分. 2.mysql对于类型为varchar数据默认不区分大小写,但如果该字段以“*_bin”编码的话会使mysql对其区分大小写. 3.mysql对于字段名的策略与varchar类型数据相同.即:默认不区分大小写,但如果该字段是以“*_bin”编码的话会使mysql对其区分大小写. 4.mysql对于表名的策…
mysql中不同表的相同字段索引是可以重名的,因为索引文件一表一个: 命名规则: 普通索引:idx_字段名 唯一索引:ux_字段名…
http://www.2cto.com/database/201202/121253.html 1.mysql默认情况下是否区分大小写,使用show Variables like '%table_names'查看lower_case_table_names的值,0代表区分,1代表不区分. 2.mysql对于类型为varchar数据默认不区分大小写,但如果该字段以“*_bin”编码的话会使mysql对其区分大小写. 3.mysql对于字段名的策略与varchar类型数据相同.即:默认不区分大小写,…
1,查询方法 public static List<Map<String, String>> getColumnInfoByTableName(String databaseName, String databaseUserName, String databaseUserPassword, String tableName){ //指定表 // String sql = "SELECT TABLE_NAME, column_name, DATA_TYPE, COLUMN…
查询数据库中所有表名 select table_name from information_schema.tables where table_schema='tools' and table_type='base table'; 查询指定数据库中指定表的所有字段名column_name select column_name from information_schema.columns where table_schema='tools' and table_name='content_not…
现一个表中有很多字段,但我不想要其中某一个字段,手打出来字段太多,不方便. SELECT GROUP_CONCAT( column_name SEPARATOR ',' ) FROM information_schema.COLUMNS WHERE column_name <> '你不想要的字段名' AND table_name = '表名' GROUP BY table_name…
查询表的字段: -- 查询表的字段名 SELECT COLUMN_NAME -- GROUP_CONCAT('a.', COLUMN_NAME SEPARATOR ',') AS COLUMN_NAME -- 加表别名并用逗号连接 FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = 'hera' -- 数据库名 AND TABLE_NAME = 'tbn_car' -- 表名 ; 查询表结构: -- 查询表结构 SELECT TABLE_NA…
修改表名:alter table 旧表名 rename 新表名; 删除字段:alter table 表名 drop 字段名; 增加字段:alter table 表名 add 字段名 字段类型 [default 默认值 comment '字段注释'] 修改字段名:alter table 表名   change 旧字段 新字段 字段类型 comment '字段说明'; 修改字段说明:alter table 表名 modify column 字段名 字段类型 comment '注释';…
一.创建表和插入数据: ), mz ), bz ) ); ,'sww','sww01'); ,'aww','aww02'); ,'qww','qww03'), (,'eww','eww04'), (,'rww','rww05'); ,'yww','yww06'), (,'uww','uww07'); select * from cr01; ========================================================== 二.查看表结构 查看表结构是指:查看数据…
//查询所有表的所有字段: select * from information_schema.columns where table_name='sys_users' 效果: //查询指定表的所有字段: select * from information_schema.columns where table_name='sys_users' and TABLE_SCHEMA='taoke' 效果: //查询指定表的所有字段的指定类型,注释: 查询所有含有此字段名的表: SELECT * FROM…
对于已经创建好的表,尤其是已经有大量数据的表,如果需要对表做一些结构上的改变,我们可以先将表删除(drop),然后再按照新的表定义重建表.这样做没有问题,但是必然要做一些额外的工作,比如数据的重新加载.而且,如果有服务在访问表,也会对服务产生影响.因此,在大多数情况下,表结构的更改一般都使用alter table 语句,以下是一些常用的命令. (1) 修改表类型,语法如下: ALTER TABLE tablename MODIFY [COLUMN] column_definition [FIRS…
select * from (select * from information_schema.COLUMNS where table_schema = '数据库名') temp where column_name = '字段名'…
我在用mysql创建数据表时,其中一个表怎么创建都提示失败,最终我把语句翻来覆去折腾了许多遍之后发现原来我的一个字段值的名称为order的字段出了问题,把它去了就好了,最后结论就是设置字段值名称时不要与mysql自身的保留字冲突,我看网上有解决办法就是加单引号我没有尝试这种方法,直接把字段名给改了.…
文章出处:http://blog.csdn.net/haiross/article/details/38379615 Oracle:表名.字段名.constraint名的长度有限制 oracle 的命名规则: 1.要以字母开头 2.包含字母和数字,以及# $ 3.不能超过30个字符 这是Oracle的限制! 数据库 表名列名长度限制问题 今天修改数据库表名,感觉现有的定义列名都无含义...修改后被同事告知,列名有点长,怕有的数据库不支持.. 我头一次听说数据库表名和列名长度限制,so搜索下. 表…
在设计MySQL字段的时候,无意中使用InOut这个名称作为字段名称,结果前端提交后就是没有写入数据库!但后端没有任何提示,跟踪mySQL日志,也没有留下痕迹,反复查,不得其解. 后来实在没有办法情况下,之后把表删除,重新手动建一次表,就在再次建表的时候,灵光一现,可能就出在InOut这个名字上,于是改为In_Out,果不出其然,一切OK.   原因是InOut是mySQL的保留字,不能作为字段名. MySQL保留字如下: Table 9.2 Keywords and Reserved Word…
oracle初学者一般会遇到这个问题.   用navicat可视化创建了表,可是就是不能查到!   后来发现②语句可以查询到 ①select * from user; 但是,我们如果给user加上双引号就可以查到了! ②select * from "user"; 难道oracle跟mysql等不同,查询时候一定要加双引号?那这样不是很麻烦!于是经过查找资料得出如下结论: 1.oracle表和字段是有大小写的区别.oracle默认是大写,如果我们用双引号括起来的就区分大小写,如果没有,系…
一:引言 用hibernate建表时经常遇到的一个异常:Error executing DDL via JDBC Statement 方法: 查看报错sql语句.问题就在这里. 我是表名(字段名)与保留字冲突. 二:Mysql保留字表 Reserved Words in MySQL 5.6.23 ACCESSIBLE ADD ALL ALTER ANALYZE AND AS ASC ASENSITIVE BEFORE BETWEEN BIGINT BINARY BLOB BOTH BY CALL…
-----------------------siwuxie095 KO ------- 表中字段名和实体类属性名不一致 如果数据库表中的字段名和实体类的属性名不一致,那么在查询时, 相应字段的结果就会为空 (一)问题复现 1.先创建数据库 mybatis_db, 再创建表 t_user,并插入若干数据 注意:user_id 为主键,且为自动增长 2.创建实体类 User.java: package com.siwuxie095.entity; // 实体类 public class User…
import java.sql.Connection; import java.sql.DatabaseMetaData; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.ResultSetMetaData; import java.sql.SQLException; import java.sql.Statement; import java.sql.Types; //jdbc链接数据库,获取表…
在 mysql 中,我们经常用 in 来查询众多数据中是否有数据表字段中的值: 如果我们在数据表的字段中添加了很多值,然后查询某个值是否是这个字段中众多值的一个时可以用 find_in_set('数据',字段名) 语句 注:仅适用sql原生语句: $bj = Db::query("select * from think_class where find_in_set($stuid,stuid)");…
建了个表,有个字段起名为key,结果insert语句报错了,说是sql不对. 原因:字段key和MySQL的保留字冲突了,当mysql的字段名和保留字冲突的时候,sql语句中的字段名需要加上反引号``来加以区别,反引号可以用Esc键下面那个按键在英文模式不按shift键打出来,注意,是反引号不是单引号,回车键左边那个是单引号. 另外附上mysql保留字列表: Reserved Words in MySQL 5.6.23 ACCESSIBLE ADD ALL ALTER ANALYZE AND A…
问题:MySQL字段名与保留字冲突在实际操作是常常出现的.一把会出现下面错误. com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException. 解决方法:在MySQL中,下表中的字显式被保留.当中大多数字进制被标准SQL用作列名和/或表名(比如.GROUP).少数被保留了,由于MySQL须要它们.在MySQL中,当表名或字段名乃至数据库名和保留字冲突时,在sql语句里能够用撇号()括起来,当让我们一般都尽量少使用这些保留的字段. ADD AL…
在mysql中我们对数据表字段的修改命令只要使用alter就可以了,下面我来给大家详细介绍mysql中修改表字段名/字段长度/字段类型等等一些方法介绍,有需要了解的朋友可参考. 先来看看常用的方法 MySql的简单语法,常用,却不容易记住.当然,这些Sql语法在各数据库中基本通用.下面列出: 1.增加一个字段 alter table user add COLUMN new1 VARCHAR(20) DEFAULT NULL; //增加一个字段,默认为空alter table user add C…