SQL笔记

外连接

OUTER JOIN 有三种:LEFTRIGHTFULL

  1. 一个LEFT OUTER JOIN包含“左”表中的所有记录,即使它与在此连接中指定的“右”表并不存在任何匹配。
  2. RIGHT OUTER JOIN包含“右”表中的所有记录,即使它与在此连接中指定的“左”表并不存在任何匹配。
  3. 而一个FULL OUTER JOIN则包含左右两表中的所有记录。
    注意:left join 是left outer join的简写,left join默认是outer属性的。

字符串拼接

CONCAT:最常用的字符串拼接函数
语法:CONCAT(str1,str2…)

说明:将str1、str2…直接连接起来,如:执行SELECT CONCAT(‘a’,‘b’,‘c’)将会输出abc

注意:

  1. 若参数存在NULL则结果为NULL,如:执行SELECT CONCAT(‘a’,‘b’,NULL)将会输出NULL

CONCAT_WS:使用指定分隔符连接字符串
语法:CONCAT_WS(separator,str1,str2…)
说明:CONCAT_WS可以简单的记为concat with separator,使用separator连接str1、str2…,如:执行SELECT CONCAT_WS(’,’,‘a’,‘b’,‘c’)将会输出a,b,c

注意:

  1. 若分隔符为NULL,则结果为NULL,如:执行SELECT CONCAT_WS(NULL,‘a’,‘b’,‘c’)将会输出NULL
  2. 若字符串中存在NULL,则会忽略该字符,如:执行执行SELECT CONCAT_WS(’,’,‘a’,NULL,‘c’)将会输出a,c

GROUP_CONCAT:连接指定列字符串
语法:GROUP_CONCAT([DISTINCT] 要连接的字段 [Order BY 排序字段 ASC/DESC] [Separator ‘分隔符’])
说明:将指定列连接起来,如:执行SELECT GROUP_CONCAT(name) FROM user

sql语句中不等于的使用

(各大数据库中使用<>)
  1. sql 里 符号<> 于 != 的区别

<> 与!=都是不等于的意思,但是一般都是用<>来代码不等于因为<>在任何SQL中都起作用但是!=在sql2000中用到,则是语法错误,不兼容的, 尽量使用<>表示不等于

2、sql中的等于和不等于, ‘=’ ,’!=’,’<>’,‘is null’…

不等于:<> ,!=,~= ,^= 这四个符号据说都可以在oracle中表示不等于,但是试了之后发现<> ,!= ,^=是可以的,~=不行,需要注意的是,只有<>是标准的sql语法,可以移植,其他的都是oracle平台的特性,移植性较差,所以开发中,使用<>;

mysql给已经存在的表列设置为主键

NOT NULL(不为空) PRIMARY KEY(主键) AUTO_INCREMENT(自增),

  • 前提是添加主键的字段不存在重复内容

alter table 表名 add primary key (字段名);

mysql给已经存在的主键设置为自增并设置初始值

代码如下
第一步:给字段( id )增加 auto_increment(自增量) 属性

alter table 表名 modify id int(11) auto_increment;

第二步:给自增值设置初始值

alter table 表名 auto_increment=10000

mysql不考虑初始值设置主键并设置自增

alter table table_name MODIFY COLUMN 字段 int(20) NOT NULL AUTO_INCREMENT FIRST ,ADD PRIMARY KEY (字段);

mysql创建临时表

TEMPORARY (临时)

CREATE TEMPORARY TABLE table_name(
id bigint(20) NOT NULL PRIMARY KEY AUTO_INCREMENT,
) AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

mysql将一个表的数据同步到另一个表

为了防止数据库中数据的丢失损坏,或更变数据库后程序异常等现象,一定要在部署前备份好所有数据和原程序版本,以便系统异常时能及时恢复到上一版本。

下面是学到的一个小功能,简单的几个SQL语句,将数据库的A表快速备份到B表中:

CREATE TABLE B LIKE A;
INSERT INTO B SELECT * FROM A;

注意:数据同步多种情况
1.如果2张表的字段一致,并且希望插入全部数据,可以用这种方法:

INSERT INTO 目标表 SELECT * FROM 来源表;
insert into B select * from A;

2.如果只希望导入指定字段,可以用这种方法:

INSERT INTO 目标表 (字段1, 字段2, …) SELECT 字段1, 字段2, … FROM 来源表;
(这里的话字段必须保持一致)
insert into B(id) select id from A;

内容繁多,原创与转载均有,如有侵权请联系处理

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值