mysql容易被忽略的用法
1.在创建表的同时创建索引
CREATE TABLE material(id INT NOT NULL, name char(40) NOT NULL, resistance INT, INDEX index1(id,name), UNIQUE INDEX index2(name))
第一个索引,名为index1,由id和name两个字段组成。第二个索引只包含name,并指明name字段的值必须是唯一的。
2.插入数据,可以通过其他某个表中的数据填充新表以插入新数据
INSERT INTO foods(name,fat) SELECT food_name, fat_grams from recipes
3 。SELECT * from people ORDER BY name LIMIT 19,30 表示从第20条记录开始取出30条记录
4.mysql提供了基于扩展正则表达式的模糊匹配
SELECT TITLE from BOOK WHERE TITLES REGEXP 'Java'; 匹配titles中包含Java。 REGEXP '^java' 匹配以'java'开头的titles, REGEXP ’java$’匹配以java结尾的titles, 与REGEXP相对的是NOT REGEXP。
5.mysql事务处理
要在事务表上执行事务处理,首先要用set AUTOCOMMIT=0关闭自动提交功能,然后执行要在这个事务中执行的sql语句,最后用commit命令完成事务处理,要回滚使用rollback命令。如果在事务中遇到下面几个命令也会自动结束当前事务:
ALTER TABLE
BEGIN
CREATE INDEX
DROP DATABASE
DROP TABLE
LOCK TABLES
RENAME TABLE
TRUNCATE
UNLOCK TABLES
相关文档:
ALTER [IGNORE] TABLE tbl_name alter_spec [, alter_spec ...]
alter_specification:
ADD [COLUMN] create_definition [FIRST | AFTER column_name ]
or ADD INDEX [index_name] (index_col_name,...)
or ADD PRIMARY KEY (index_col_name,...)
or ADD UNIQUE [index_name] (index_col_name,...)
or ALTER [ ......
1.复制表结构及数据到新表
CREATE TABLE 新表 SELECT * from 旧表
2.只复制表结构到新表
CREATE TABLE 新表 SELECT * from 旧表 WHERE 1=2
或CREATE TABLE 新表 LIKE 旧表
3.复制旧表的数据到新表(假设两个表结构一样)
INSERT INTO 新表 SELECT * from 旧表
4.复制旧表的数据到新表(假设两个表结构不一样)
IN ......
<!--
/* Font Definitions */
@font-face
{font-family:宋体;
panose-1:2 1 6 0 3 1 1 1 1 1;
mso-font-alt:SimSun;
mso-font-charset:134;
mso-generic-font-family:auto;
mso-font-pitch:variable;
mso-font-signature:3 135135232 16 0 262145 0;}
@font-face
{font-family:"\@宋体" ......
今天从MYSQL数据库抓取时,发生了Cannot convert value '0000-00-00 00:00:00' from column 10 to TIMESTAMP异常
google了一下,大概意思是MySQL中的Datetime值无法再JAVA中可靠的被表示,按照JDBC和SQL的标准默认情况下产生异常。
JDBC允许用下列的值对zeroDateTimeBehavior 属性来设置这些处理方式,
exception (the d ......