insert into select mysql联合主键_SQL必知必会

SQL 必知必会

第1章 了解SQL

定义

结构化查询语言(Structured Query Language)

主键

定义

一行或一组列,其值能够唯一标识表中每一行

要求

任意两行不能有相同的主键值

每一行都必须有一个主键值

主键列中的值不能更改或更新

主键值不能重用(一旦删除,不能够再赋予给以后的新行)

第2章 检索数据:SELECT

基本语法

SELECT Col1,Col2, FROM table

选择全部列

星号 *

选择不同行

DISTINCT

作用于所有行,不仅仅是跟在其后的一行:即只要两行不是所有列完全相同,则会被检索出来。

限制查询结果行数

SQL SERVER: TOP 5

SELECT TOP 5 student_name FROM Students

MYSQL :LIMIT 5 OFFESET 3

SELECT prod_name FROM Products LIMIT 5 OFFSET 5

可以简写为LIMIT 3,5

索引序号从0开始

第3章 排序检索数据:ORDER BY

语句位置

SELECT 语句的最后一条

指定排序列的方式

按列位置(序号)排序

'位置'指的是SELECT语句后的列排序顺序,而不是原表中的顺序

序号从1开始

缺点

对SELECT 清单修改时,如果没有同时修改ORDER BY的序号,容易出错。

指定准确列名

SELECT .....

ORDER BY col1,col2

指定顺序

DESC/ASC

位置

对应列名后

默认为ASC,可省略

第4章 过滤数据:WHERE

基本操作符

不等于:<>/!=

MSSQL和MYSQL两者都可使用

可以用于字符串匹配检查

不大于,不小于:!>, !<

BETWEEN

支持字符串,日期/时间,数值的比较

NULL值的比较检测

IS NULL/IS NOT NULL

专门用于NULL值得匹配

<=>

当且仅当两个值都为NULL时才返回NULL

不能使用=/<>来对NULL值进行比较或检验

MYSQL的NULL值处理(RUNOOB)

第5章 高级数据过滤

AND

OR

注意:AND优先级高于OR。多使用括号确立优先级,即使知晓优先级。

IN

语法

col in (a,b,c) 等价于col1 =a or col1 = b or col =c

优点

比对应的OR语句更快

更直观

配合其他select查询进行嵌套

NOT

作用

否认其后的条件

位置

位于其他判断关键词前:NOT IN

第6章 通配符:LIKE

%

作用

任意字符出现任意次数

任意字数:可以匹配0个字符

一个使用场景:字段后填补的空格的解决

在匹配字符串后再加一个%,来匹配空格

语法

SELECT *

FROM Customers

WHERE cust_name LIKE 'F%'

不匹配NULL

'%'不会匹配为NULL的行

ACCESS 使用的是*

下划线_

作用

仅匹配单个字符,且不可匹配0个字符

字符集匹配

[ ]

作用

匹配字符集

使用

SQL SERVER

SELECT *

FROM Customers

WHERE cust_name LIKE '[FV]%';

语法

SELECT *

FROM Customers

WHERE cust_name RLIKE '^[FV]';

正则表达式RLIKE(FOR MYSQL)

MYSQL不支持使用[]匹配字符集

MySQL 中使用 REGEXP 或 NOT REGEXP (或 RLIKE 和 NOT RLIKE) 和正则表达式来实现字符串匹配。

语法

SELECT *

FROM course

WHERE Tno REGEXP '^[张王].*'

RUNOOB链接

^

作用

对[ ]进行否定:即不在方扩内的字母才能够匹配

使用

[^JMK]

注意点

使用技巧

① 不要过度使用通配符

② 尽量不要在搜索模式的开始使用通配符

③ 特别注意通配符位置的正确使用

④默认不区分大小写

第7章 创建计算字段

位置

紧贴在SELECT后

别名(ALIAS)

作用

一个字段或值的替换名

为拼接等字符操作创建的字段提供名称

使用

AS

MYSQL,MSSQL都可以省略 AS

拼接字段(concatenate)

SQL SERVER

+(使用与Python相似)

Oracle,SQLite等

||

MySQL,MariaDB

Concat()语句

SELECT CONCAT(id, name, work_date)

FROM employee_tbl;

算术计算

+-*/

()改变计算顺序

第8章 使用函数处理数据

DBMS差异:函数在各DBMS的通用度较低,只有少数函数通用。

可移植

代码可在不同系统上运行

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值