文档章节

SQL

Vincent-Duan
 Vincent-Duan
发布于 2016/10/21 21:47
字数 588
阅读 3
收藏 0

修改某一字段时,如果没有指定where主键,会有报错,解决方式如下: 

SET SQL_SAFE_UPDATES=0; 

删除重复数据 :

DELETE FROM country_code 

WHERE

    country_code NOT IN (SELECT 

        *

    FROM

        (select max(country_code) from country_code group by country_name )as tmp

    );

根据一个表的数据,更新另一个表的数据 :

UPDATE event_insert as a,country_code as b

SET 

    a.country_code = b.country_code

WHERE

    a.event_country_zh = b.country_name;

修改自增初始值:

 ALTER TABLE tableName auto_increment=number ; 

根据一个表的数据,插入到另一个表中: 

insert into event_attack_target_style (event_attack_target_style.event_attack_target_style_name) select DISTINCT event.event_attack_target_style from event;

如果两表字段相同,则可以直接这样用:

insert into table_a select * from table_b

如果两表字段不同,a表需要b中的某几个字段即可,则可以如下使用:

insert into table_a(field_a1,field_a2,field_a3) select field_b1,field_b2,field_b3) from table_b

以上语句前提条件是每个字段对应的字段类型相同或可以自动转换。 

或者使用union、union all

insert into test (cf1, c18) 
( select 001, 0011 from dual where not exists( select cf1, c18 from test where cf1 = 001 and c18 = 0011 ) )
UNION
( select 001, 0011 from dual where not exists( select cf1, c18 from test where cf1 = 001 and c18 = 0011 ) )

区别是union可以排序和去重,union不可以

查找出一个表中的所有重复的记录 :

select user_name,count(*) as count from user_table group by user_name having count>1; 

Mysql update 语句令某字段值等于原值加上一个字符串:

MySQL连贯字符串不能利用加号(+),而利用concat。比方在aa表的name字段前加字符'x',利用:update aa set name=concat('x',name)

Mysql DELETE语句删除group表中,属于group表但不属于perpetrator表的数据:NOT IN:

DELETE FROM `mini_anti`.group WHERE INGROUP!="" and INGROUP NOT IN(select groupid from perpetrator) ;

修改表字段:将test库中的test表,字段name的字段类型由varchar(255)修改为 

ALTER TABLE `test`.`test` 
CHANGE COLUMN `name` `name` LONGTEXT NULL DEFAULT NULL ;

mysql从csv格式导入:

load data local infile "/home/test.csv" into table user fields terminated by ',';

mysql导出csv格式:

select * from student as t1 inner join course as t2 on t1.userid=t2.userid into outfile '/var/lib/mysql-files/usercourse.csv' fields terminated by ',' lines terminated by '\n';

mysql 形容 like in :把所有姓刘、张、王的人取出来

select * from user where name REGEXP '刘|张|王';

只复制表结构到新表:

CREATE TABLE 新表 SELECT * FROM 旧表 where 1=0

复制表结构及数据到新表:

CREATE TABLE 新表 SELECT * FROM 旧表

把指定数据行排在前面:把user_id为7的放在第一个

SELECT * FROM user ORDER BY user_id!=7

© 著作权归作者所有

Vincent-Duan

Vincent-Duan

粉丝 10
博文 311
码字总数 121729
作品 0
海淀
私信 提问

暂无文章

如何远程调试部署在CloudFoundry平台上的nodejs应用

网络上关于如何本地调试nodejs应用的教程已经很多了,工具有Chrome开发者工具,Visual Studio Code,和nodejs周边的一些小工具等等。 在实际情况中,我们可能遇到本地运行良好,但是部署到C...

JerryWang_SAP
24分钟前
0
0
微信扫码访问网站调用默认浏览器打开如何实现?

我们在微信内分享链接或二维码的时候,我们会发现我们的网站是可以在浏览器里正常打开的,但就是不能在微信里打开,提示 “ 已停止访问该网页 ”,无论是聊天框也一样。说是系统检测到您的网...

明尼苏达哈士奇
32分钟前
1
0
一份Java程序员进阶架构师的秘籍,你离架构师还差多远

一、如何定义架构师 Java架构师,首先要是一个Java程序员,熟练使用各种框架,并知道它们实现的原理。jvm虚拟机原理、调优,懂得jvm能让你写出性能更好的代码;池技术,什么对象池,怎么解决并...

我最喜欢三大框架
40分钟前
0
0
想说再见不容易,win7最新市占率依然超36%

微软正在通过努力让Windows 7用户升级至Windows 10,不过从目前的市占率来看,他们还是要加把劲了。 据最新的市场份额看,Windows 10在本月的市场份额有所提升,从43.62%增长到44.10%。另一...

linuxCool
51分钟前
4
0
SQL的优化

对查询进行优化,要尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。 对查询进行优化,要尽量避免全表扫描,首先应考虑在进行条件判断的字段上创建了索引。 应尽量避...

咸鱼-李y
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部