《SQL必知必会》全书语句整理汇总
目录
1.数据检索
1.1 检索
1.2 排序
1.3 过滤
1.4 高级过滤
1.5 通配符过滤
1.6 计算字段
1.7 函数
1.8 汇总
1.9 分组
1.10 子查询
1.11 联结表
1.12 高级联结
1.13 组合查询
2 插入数据
3 更新和删除数据
4 创建和操纵表
5 使用视图
6 使用存储过程
7 管理事务处理
8 使用游标
9 高级SQL特性
1.数据检索
1.1 检索
检索单个列:SELECT 字段 FROM 表名;
检索多个列:SELECT 字段1,字段2,......,字段n FROM 表名;
检索所有列:SELECT * FROM 表名;
检索不同的值:SELECT DISTINCT 字段 FROM 表名;DISTINCT 关键字作用于查询中所有的列
限制结果(返回一定数量的行)
SQL SERVER/ACCESS:SELECT TOP 行数 字段 FROM 表名;
DB2:SELECT 字段 FROM 表名 FETCH FIRST 行数 ROWS ONLY;
ORACLE:SELECT 字段 FROM 表名 WHERE ROWNUM <= 行数;
MY SQL/MARIA DB/POSTGRE SQL/SQLite:
① SELECT 字段 FROM 表名 LIMIT 行数;
LIMIT 行数 指示返回不超过该行数的数据
② SELECT 字段 FROM 表名 LIMIT 行数1 OFFSET 行数2;
行数 2 指从哪开始(不包括),行数 1 指检索的行数
③ SELECT 字段 FROM 表名 LIMIT 行数2,行数1;
同上,注意行数2和行数1调换位置
1.2 排序
按单个列排序:SELECT 字段 FROM 表 ORDER BY 字段;
按多个列排序:SELECT 字段1,字段2,......,字段n FROM 表 ORDER BY 字段1,字段2,......,字段n;
仅在多行具有相同的字段1值时才对字段2进行排序,如果字段1的值都是唯一的则不会按字段2排序。对于后面的字段3、4......n 同理。
按列位置排序:SELECT 字段1,字段2,......,字段n FROM 表 ORDER BY 2,3;
ORDER BY 2 ,3 表示按SELECT清单中第2列(字段2)进行排序,再按字段3进行排序。注意:如果排序的列不在SELECT清单中不能使用按位置排序。
指定排序方向
①升序(A到Z):SELECT 字段 FROM 表 ORDER BY 字段 ASC;
②降序(Z到A):SELECT 字段 FROM 表 ORDER BY 字段 DESC;
③多个列排序:SELECT 字段1,字段2,......,字段n FROM 表 ORDER BY 字段1 DESC,字段2;
DESC关键字只应用到直接位于其前面的列名,即字段1 列降序排序,字段2按默认升序排序。如果想在多个列上降序排序,必须对每一列指定DESC关键字。
1.3 过滤
检查单个值:SELECT 字段 FROM 表 WHERE 字段 = 值;
不匹配检查:SELECT 字段 FROM 表 WHERE 字段 <> 值;
‘不等于’操作符不同的DBMS可能不同:<>或!=
范围值检查:SELECT 字段 FROM 表 WHERE 字段 BETWEEN 值1 AND 值2;
空值检查:SELECT 字段 FROM 表 WHERE 字段 IS NULL;
WHERE 子句操作符
操作符 说明
= 等于
<> 或 != 不等于
< 小于
<= 小于等于
!< 不小于
> 大于
>= 大于等于
!> 不大于
BETWEEN 指定两个值之间
IS NULL 为NULL值
1.4 高级过滤
AND 操作符:SELECT 字段 FROM 表 WHERE 过滤子句1 AND 过滤子句2 AND ........;
检索所有满足给定条件的行
OR 操作符:SELECT 字段 FROM 表 WHERE 过滤子句1 OR 过滤子句2 OR ........;
检索任一给定条件的行
注意:使用AND和OR操作符的WHERE子句,应使用圆括号明确分组。(AND的优先级大于OR)
IN 操作符:①SELECT 字段 FROM 表 WHERE 字段 IN (值1,值2,......,值n);
② SELECT 字段 FROM 表 WHERE 字段 IN (SELECT语句);
检索满足任一给定值的行
NOT 操作符:SELECT 字段 FROM 表 WHERE NOT 过滤子句 ;
否定其后条件的关键字,多用在复杂子句中
1.5 通配符过滤
LIKE 操作符
① 百分号(%)通配符:SELECT 字段 FROM 表 WHERE 字段 LIKE 'xxxx%' ;
检索任意以xxxx起头的值的行
Access 系统此通配符为星号✳
注意 :①% 可以放在任意位置,并且可以使用多个,如xx%xx、%xx%等
②许多DBMS用空格填补字段内容,如某字段字符设定为50个,而储存的文本仅有10个字符,此时后面用空格填补字段,查询时应注意此字段结束字符为空格
③% 不可以匹配NULL
② 下划线(_)通配符:SELECT 字段 FROM 表 WHERE 字段 LIKE 'xxxx_' ;
匹配单个字符
DB2 不支持此通配符,Access系统此通配符为?
③ 方括号([ ])通配符:SELECT 字段 FROM 表 WHERE 字段 LIKE '[xy]%' ;
找出所有以x或y起头的字段
只有Access和SQL Server 支持集合
否定集合:[^xy] 或 [!xy]
1.6 计算字段
拼接字段
SELECT 字段1 + 字段2 +‘字符’ FROM 表名;
Access\ SQL Server
SELECT 字段1 || 字段2 || ‘字符’ FROM 表名;
DB2\Oracle\PostgreSQL\SQLite\Open Office Base
SELECT CONCAT(字段1 , 字段2 , ‘字符’ ) FROM 表名;
MySQL\MariaDB
删除空格:SELECT RTRIM(字段1) + RTRIM(字段2) +‘字符’ FROM 表名;
删除字段中用来占位的空格
RTRIM( )函数:去掉值右边所有空格
LTRIM( )函数:去掉值左边所有空格
TRIM( )函数:去掉值左右两边的空格
使用别名:SELECT RTRIM(字段1) + RTRIM(字段2) +‘字符’ AS 别名 FROM 表名;
AS 可选,最好使用
算数计算
SELECT 字段1 *字段2 FROM 表名;
输出两字段值相乘的值
SQL 算数操作符
操作符 说明
+ 加
- 减
* 乘
/ 除
使用算数计算注意计算的优先级
1.7 函数
函数
每个DBMS都有特定的函数,只有少数几个函数被主要的DBMS同等支持,使用函数时要保证做好代码注释
几个常用函数
① 提取字符串的组成部分
Access:MID ( )
DB2\Oracle\PostgreSQL\SQLite:SUSSTR( )
MySQL\SQL Server:SUBSTRING( )
②数据类型转换
Access和Oracle 使用多个函数,每种类型转换都有一个函数
DB2\PostgreSQL:CAST( )
MariaDB\MySQL\SQL Server使用CONVERT( )
③取当前日期
Access:NOW( )
DB2\PostgreSQL:CURRENT_DATE
MariaDB\My SQL :CURDATE( )
Oracle:SYSDATE
SQLServer:GETDATE( )
SQLite:DATE( )
使用函数
常用的文本处理函数
函数 说明
LEFT( )(或使用子字符串函数) 返回字符串左边的字符
RIGHT( )(或使用子字符串函数) 返回字符串右边的字符
LENGTH( )(或使DATALENGTH( )\LEN( )) 返回字符串的长度
LOWER( )(Access使用LCASE( )) 将字符串转换为小写
UPPER( )(Access使用UCASE( )) 将字符串转换为大写
LTRIM( ) 去掉字符串左边的空格
RTRIM( ) 去掉字符串右边的空格
SOUNDEX( ) 返回字符串的SOUNDEX值(返回读音相似的字符)
日期和时间处理函数(ORACLE)
①TO_CHAR(X,[FORMAT]):用于将时间值转换为字符串,其中FORMATA是规定X的时间格式(年月日时分秒:yyyy-mm-dd hh24:mi:ss)
获取当前日期:SELECT TO_CHAR(SYSDATE,‘yyyy-mm-dd hh:mi:ss’) FROM DUAL ;
②TO_DATE(X,[FORMAT]):用于将时间值转换为字符串,其中FORMATA是规定X的时间格式(年月日时分秒:yyyy-mm-dd hh24:mi:ss)
数值处理函数
常用数值处理函数
函数 说明
ABS( ) 返回一个数的绝对值
EXP( ) 返回一个数的指数值
SQRT( ) 返回一个数的平方根
PI( ) 返回圆周率
COS( ) 返回一个角度的余弦
SIN( ) 返回一个角度的正弦
TAN( ) 返回一个角度的正切
1.8 汇总
聚集函数
SQL聚集函数
函数 说明
AVG( ) 返回某列的平均值
COUNT( ) 返回某列的行数
MAX( ) 返回某列的最大值
MIN( ) 返回某列的最小值
SUM( ) 返回某列值之和
AVG() 函数只能用来计算单个列的平均值,为计算多个列必须使用多个AVG()函数
COUNT(*) 对表中行的数目进行计数,不管表列中是NALL还是非空,COUNT(column)对特定列进行计数,忽略NULL值
MAX() 用于文本时返回该列排序的最后一行
MIN() 用于文本时返回该列排序的第一行
聚集不同值
①ALL:对所有行执行计算(ALL为默认可以不指定)
②DISTINCT:只包含不同的值,不能用于COUNT(*)
SELECT AVG(DISTINCT 字段) AS 别名 FROM 表 ;
组合聚集函数
SELECT语句包含多个聚集函数
SELECT AVG(字段) AS 别名1,MIN(字段) AS 别名2,COUNT(*) AS 别名3 FROM 表 ;
1.9 分组
数据分组:使用分组可以将数据分为多个逻辑组,对每个组进行聚集计算
创建分组:SELECT 字段,COUNT(*) AS num FROM 表 GROUP BY 字段;
num为计算字段,用COUNT(*)建立。GROUP BY 子句指示DBMS按‘字段’排序并分组。最后对每个分组而不是整个结果进行聚集。
注意:
①在建立分组时,指定的所有列都一起计算,不能从个别列取回数据
②GROUP BY 子句中列出的每一列都必须是检索列或有效的表达式(不能是聚集函数),如果在SELECT中使用表达式,则必须在GROUP BY 子句中指定相同的表达式,不能使用别名
③除聚集计算语句外,SELECT语句中的每一列都必须在GROUP BY 子句中给出
④如果分组列中包含具有NULL值的行,则NULL将作为一个分组返回
⑤GROUP BY 子句必须出现在WHERE子句之后,ORDER BY 子句之前
过滤分组:SELECT 字段1,COUNT(*) AS num FROM 表 WHERE 字段2 > 值1 GROUP BY 字段1 HAVING COUNT(*)>值2;
HAVING用法于WHERE相同,WHERE过滤行,HAVING过滤分组
使用HAVING时结合GROUP BY 子句
分组和排序
ORDER BY 和 GROUP BY
ORDER BY GROUP BY
对产生的输出排序 对行分组,但输出可能不是分组的顺序
任意列都可以使用(包括未选择的列) 只能使用选择的列或表达式列,而且必须全部使用
不一定需要 如果与聚集函数(或表达式)一起使用列,必须使用
一般使用GROUP BY 时,也应该给出ORDER BY 子句
SELECT子句顺序
子句 说明 是否必须使用
SELECT 要返回的列或表达式 是
FROM 从中检索数据的表 仅在表中选择数据时使用
WHERE 行级过滤 否
HAVING 组级过滤 否
GROUP BY 分组说明 仅在按组计算聚集时使用
ORDER BY 输出排序顺序 否
1.10 子查询
利用子查询进行过滤
SELECT 字段1 FROM 表1 WHERE 字段2 IN (SELECT 字段3 FROM 表2 WHERE 字段4=‘字符串’);
作为子查询的SELECT语句只能查询单个列
作为计算字段使用子查询
SELECT 字段1,(SELECT 字段3 FROM 表2 WHERE 表1.字段4=表2.字段4) AS 字段2 FROM 表;
完全限定列名:表明.字段
1.11 联结表
创建联结(内联结\等值联结):
①SELECT 字段1,字段2,字段3 FROM 表1,表2 WHERE 表1.字段4=表2.字段4;
WHERE子句为联结条件,字段1,2,3 属于不同的表
没有联结条件返回的结果为笛卡尔积
②SELECT 字段1,字段2,字段3 FROM 表1 INNER JOIN 表2 ON 表1.字段4=表2.字段4;
1.12 高级联结
使用别名:
SELECT 字段1,字段2,字段3 FROM 表1 AS 别名1 ,表2 AS 别名2,表3 AS 别名3 WHERE 别名1.段4= 别名2.字段4 AND 别名2.字段5=别名3.字段5 ;
ORACLE不支持AS关键字,直接省略
不同类型的联结
自联结:SELECT 别名1.字段1,别1,.字段2,别名1.字段3 FROM 表1 AS 别名1,表1 AS 别名2 WHERE 别名1.字段4=别名2.字段4 AND 别名2.字段5=‘值’;
自然联结:见 1.11②
外联结:SELECT 表1.字段1,表2.字段2 FROM 表1 LEFT OUTER JOIN 表2 ON 表1.字段3=表2.字段3;
外联结包括没有关联的行,在使用OUTER JOIN 语法时,必须使用RIGHT 或 LEFT 关键字指定包括其所有行的表(RIGHT 指出的是OUTER JOIN 右边的表)
全外联结:SELECT 表1.字段1,表2.字段2 FROM 表1 FULL OUTER JOIN 表2 ON 表1.字段3=表2.字段3;
带聚集函数的联结:SELECT 表1.字段1, COUNT(表2.字段2) AS 别名 FROM 表1 INNER JOIN 表2 ON 表1.字段1 = 表2.字段2 GROUP BY 表1.字段1;
1.13 组合查询
使用UNION
SELECT ~~~ NUION SELECT~~~
UNION指示DBMS执行这两条SELECT语句,并把输出组合成一个查询结果集
UNION使用规则
①UNION必须由2条或2条以上的SELECT语句组成,语句之间用关键字UNION分隔
②UNION中的每个查询必须包含相同的列、表达式或聚集函数(次序无要求)
包含或取消重复的行:NUION 去除重复的行,UNION ALL返回所有行。
对组合查询结果排序:在最后一条SELECT语句使用ORDER BY子句
2 插入数据
数据插入
插入完整的行
INSERT INTO 表名 VALUES('值',‘值’,......,‘值’,null,null);
插入到表中的数据在VALUE子句中给出
必须给每一列提供一个值
如果没有值则需要插入NULL值
各列必须以他们在表定义中出现的次序填充
INSERT INTO 表名(字段1,字段2,......,字段n) VALUES('值',‘值’,......,‘值’,null,null);
表明后提供列名,VALUES以其指定的次序匹配指定的列名,不需要按各列出现在表中的实际次序
插入部分行
利用插入完整行的第二种方式,不用列出所有字段
插入检索出的数据
INSERT INTO 表1(字段1,字段2,......,字段n) SELECT 字段1,字段2,.....,字段n FROM 表2;
从表2中读出数据并插入到表1中
注:读取表的列名和插入表的列名不需要一致,DBMS只按照对应位置进行匹配
注:①INSERT 通常只插入一行,要插入多行必须执行多个INSERT语句。
②INSERT SELECT 可以用一条INSERT插入多行,不管SELECT 语句返回多少行,都会被INSERT 插入
从一个表复制到另一个表
CREATE TABLE 表1 AS SELECT * FROM 表2;
将表2中的数据复制到新表1(运行中创建的表)中
注:①任何SELECT选项和子句都可以使用,包括WHERE和GROUP BY
②可利用联结从多个表中插入数据
③不管从多少个表中检索数据,数据都只能插入到一个表中
3 更新和删除数据
更新数据:UPDATE 表名 SET 字段1=‘值’,字段2=‘值2’ WHERE ~;
基本的UPDATE语句由3部分组成,要更新的表+列名和他们的新值+确定要更新哪些行的过滤条件
要删除某个字段的值可以设置它为NULL
删除数据:DELETE FROM 表名 WHERE 字段=‘值’;
DELETE 不需要列名或通配符
DELETE 不删除表本身,只删除行
删除所有行使用 TRUNCATE TABLE 语句,速度更快
重要原则:在UPDATE 或 DELETE前,应该先用SELECT 进行测试
4 创建和操纵表
创建表(GREATE TABLE)
CREATE TABLE 表名
(
列名 数据类型 NOT NULL,
.......
列名 数据类型 NULL
);
每个列要么是NULL列,要么是NOT NULL列,创建表时进行规定。NULL 值允许插入行时不给出该列的值,NOT NULL值的列不接受没有列值的行
指定默认值
CREATE TABLE 表名
(
列名 数据类型 NOT NULL DEFAULT 1,
.......
列名 数据类型 NULL
);
第一列描述增加的DEFAULT 1,指示DBMS如果不给出数量则使用数量1
默认值常用语日期或时间戳列
更新表(ALTER TABLE)
增加列:ALTER TABLE 表名 ADD 字段 数据类型 ;
删除列:ALTER TABLE 表名 DROP COLUMN 字段 ;
删除表(DROP TABLE)
DROP TABLE 表名;
注意:删除表没有确认也无法撤销
重命名表
DB2/MariaDB/MySQL/Oracle / PostgreSQL:RENAME
SQL Server:sp_rename
SQLite:ALTER TABLE
5 使用视图
视图:视图是一个查询结果,创建视图后,可以用与表基本相同的方式使用它们,视图可看做虚拟的表
创建视图:GREATE VIEW 视图名 AS SELECT ~~~~
利用视图简化复杂的联结:
CREATE VIEW ProductCustomers AS
SELECT cust_name, cust_contact, prod_id
FROM Customers, Orders, OrderItems
WHERE Customers.cust_id = Orders.cust_id
AND OrderItems.order_num = Orders.order_num;
利用视图重新格式化检索出的数据:
CREATE VIEW VendorLocations AS
SELECT RTRIM(vend_name) + ' (' + RTRIM(vend_country) + ')'
AS vend_title
FROM Vendors;
利用视图过滤不想要的数据:
CREATE VIEW CustomerEMailList AS
SELECT cust_id, cust_name, cust_email
FROM Customers
WHERE cust_email IS NOT NULL;
使用视图与计算字段:
CREATE VIEW OrderItemsExpanded AS
SELECT order_num,
prod_id,
quantity,
item_price,
quantity*item_price AS expanded_price
FROM OrderItems;
6 使用存储过程
存储过程:为以后使用而保存的一条或多条SQL语句(由SQL代码转换)
创建存储过程
CREATE PROCEDURE MailingListCount (
ListCount OUT INTEGER
)
IS
v_rows INTEGER;
BEGIN
SELECT COUNT(*) INTO v_rows
FROM Customers
WHERE NOT cust_email IS NULL;
ListCount := v_rows;
END;
LISTCOUNT:参数
OUT(从存储过程返回值)、IN(传递给存储过程)、INOUT(既传递值给存储过程也从存储过程传回值)
存储过程的代码包括在BEGIN和END语句中
7 管理事务处理
事务处理
事务处理是一种机制,保证数据库不包含不完整的操作结果,一组操作要么完全执行,要么完全不执行。如果没有错误发生,整组语句提交给数据库表;如果发生错误,则进行撤销,将数据库恢复到某个已知且安全的状态
事务处理用来管理INSERT\UPDATE和DELETE语句
控制事务处理
SQL Server
BEGIN TRANSACTION
...
COMMIT TRANSACTION
BEGIN TRANSACTION 和 COMMIT TRANSACTION 之间的SQL必须完全执行或者完全不执行
MariaDB 、 MySQL
START TRANSACTION
...
Oracle
SET TRANSACTION
...
PostgreSQL
BEGIN
...
使用ROLLBACK
DELETE FROM Orders;
ROLLBACK;
ROLLBACK命令用来回退(撤销)SQL语句
使用COMMIT
一般的SQL语句都是针对数据库表直接执行和编写---隐式提交
在事务处理块中,提交不会隐式进行,需使用COMMIT语句
以ORACLE为例:
SET TRANSACTION
DELETE OrderItems WHERE order_num = 12345;
DELETE Orders WHERE order_num = 12345;
COMMIT;
使用保留点
在合适的位置放置占位符,支持回退部分事务,在SQL中,这些占位符被称为保留点
创建占位符
MariaDB、MySQL 、Oracle:SAVEPOINT delete1;
SQL Server:SAVE TRANSACTION delete1;
回退到保留点
MariaDB、MySQL 、Oracle:ROLLBACK TO delete1;
SQL Server:ROLLBACK TRANSACTION delete1;
8 使用游标
游标
游标(cursor)是一个存储在DBMS服务器上的数据库查询,它不是一条SELECT语句,而是被该语句检索出来的结果集
在储存了游标之后,应用程序可以根据需要滚动或浏览其中的数据
游标主要用于交互式应用,其中用户需要滚动屏幕上的数据,并对数据进行浏览或作出修改
使用游标
使用游标的步骤
①在使用游标前,必须声明(定义)它,这个过程没有检索数据,它只是定义要会用的SELECT语句和游标选项
②一旦声明,就必须打开游标以供使用。这个过程用前面定义的SELECT语句把数据实际检索出来
③对于填有数据的游标,根据需要取出(检索)各行
④在结束游标使用时,必须关闭游标,可能的话,释放游标
创建游标
DB2、MariaDB、MySQL 、 SQL Server
DECLARE 游标名 CURSOR FOR SELECT 字段 FROM 表名;
Oracle 、 PostgreSQL
DECLARE CURSOR 游标名 IS SELECT 字段 FROM 表名;
使用游标
OPEN CURSOR 游标名
关闭游标
CLOSE 游标名
9 高级SQL特性
约束:
管理如何插入或处理数据库数据的规则
①主键
主键是一种特殊的约束,用来保证一列(或一组列)中的值是唯一的,而且永不变动
创建主键
CREATE TABLE 表名 (字段名 数据类型 NOT NULL PRIMARY KEY);
ALTER TABLE 表名 ADD CONSTRAINT PRIMARY KEY (字段名);
②外键
外键是表中的一列,其值必须列在另一个表的主键中。外键是保证引用完整性的重要部分。
创建外键
CREATE TABLE 表1 (字段1 数据类型 NOT NULL REFERENCES 表2(字段2));
字段1中的任何值都必须是表2的字段2中的值
ALTER TABLE 表1 ADD CONSTRAINT FOREIGN KEY (字段1) REFERENCES 表2 (字段2);
③唯一约束
④检查约束
CREATE TABLE 表1 (字段1 数据类型 NOT NULL CHECK(字段1>0));
保证字段1>0
索引:
用来排序数据以加快搜索和排序操作的速度
创建索引:CREATE INDEX 索引名 ON 表名 (字段名);
触发器:
是特殊的存储过程,在特定的数据库活动发生时自动执行
数据库安全
《SQL必知必会》全书语句整理汇总相关推荐
- MySQL必知必会 代码+说明 全书整理
前不久收获一本<mysql必知必会>实体书,这周得空将整本书再次回顾了下. 整理了书中全部的代码,加上了必要的语句说明. 我所使用的软件版本:mysql workbench 8.0.15 ...
- 《MySQL必知必会》所有SQL语句图表集合(可作为查询表使用)---已完结
本篇文章是对<MySQL必知必会>所有语句知识点的图表集合,适合快速查询遗忘的SQL语句. 本文的脉络结构,首先先给出<MySQL必知必会>的目录和本书中用到的数据表的UML图 ...
- mysql日期维表sql文件_《MySQL必知必会》笔记(SQL练习+建表语句)
站在巨人的肩上 Standing On Shoulders Of Giants 部分转自:https://www.jianshu.com/p/294502893128 https://blog.csd ...
- 【SQL必知必会笔记(3)】SELECT语句的WHERE子句数据过滤操作
上个笔记主要介绍了利用SELECT语句检索单个/多个/所有列,并利用DISTINCT关键字检索具有唯一性的值.利用LIMIT/OFFSET子句限制结果:以及利用ORDER BY子句排序检索出的数据,主 ...
- asp sql ip地址排序_SQL必知必会读书笔记,30分钟入门SQL!
点击上方SQL数据库开发,关注获取SQL视频教程 SQL专栏 SQL数据库基础知识汇总 SQL数据库高级知识汇总 来源:https://segmentfault.com/p/1210000011760 ...
- 根据SQL必知必会学习SQL(MYSQL)
很久都没有整理SQL语句了,遇到让写SQL语句的题也很迷茫,所以就重拾一下知识,本文章根据SQL必知必会进行梳理 文章目录 一.检索所有列 1.select 1.1检索单个列 1.2 检索多个列 1. ...
- SQL必知必会-笔记(完善版):第1课
文章目录 SQL必知必会 一.了解数据库 1.1 数据库基础 1.1.1 数据库 (补充)数据库管理系统: 注意1: 1.1.2 表 1.1.3 列和数据类型 1.1.4 行row 1.1.5 主键 ...
- 《SQL必知必会》查询部分学习笔记
目录 <SQL必知必会>查询部分学习笔记 1 前言 2 认识SQL 3 检索数据 4 排序检索数据 5 过滤数据 6 高级数据过滤 7 通配符 8 创建计算字段 9 使用函数处理数据 11 ...
- GitHub#SQL#:SQL必知必会
https://github.com/CyC2018/Interview-Notebook 一.基础 二.创建表 三.修改表 四.插入 五.更新 六.删除 七.查询 八.排序 九.过滤 十.通配符 十 ...
最新文章
- 写好python的代码怎么放在spark上跑_Spark精华问答 | spark的组件构成有哪些?
- mysql字符调整_mysql字符集调整
- MFC中GetDlgItemInt()方法的疑惑与使用总结
- C语言中return的各种用法
- Concurrent HTTP connections in Node.js
- commons-pool2-2.3 jar包_[漏洞复现]FastJson 1.2.61远程代码执行漏洞(From第三方jar包)
- SQL SERVER “扩展属性的应用
- Python Imaging Library: ImageSequence Module(图像序列模块)
- vue项目实战中的笔记
- ALtium 16等长布线、差分布线
- Centos7 [Errno 14] curl#37 - Couldn't open file /mnt/Packages/repodata/repomd.xml
- 西北工业大学 编译原理实验 minic文法 编译器前端 flex-bison实现 的 debug手记
- ip归属地是什么?ipv4和ipv6区别?
- php 加减法,php加减法
- 空战神作《浴血长空》折扣充值平台全方位多角度体验
- win10计算机三级密码设置,Win10系统下共享文件夹如何设置密码访问?
- Unity实现在白板上绘画涂鸦
- “海大学舍”Scrum Meeting(第十周会议记录)
- ipad批量删除图片
- speedoffice(PPT)插入的图片如何自动适合幻灯片页面大小呢?
热门文章
- 拍一拍,从入门到尴尬
- Java实现Ftp文件下载及图片预览
- 百度开启“营销之道” 搜索引擎营销最先进
- 神经网络 mse一直不变_MATLAB中的神经网络工具箱(2)函数命令及模型搭建
- 华为云CDN使能千行百业,业务价值不断凸显!
- 如何订阅没有RSS输出的网站
- java计算机毕业设计-民宿管理系统-演示录像2020源码+系统+mysql数据库+lw文档
- yolov5 windows 下训练+ c++ TensorRT 部署在qt (vs+qtcreator) 只要一篇文章即可
- hc05与单片机连接图_单片机开发一个数据采集系统,一看就是高手
- python AttributeError: module 'pygame' has no attribute 'display'