SQL基础知识 适合初学者
增删改查
SELECT
SELECT 语句用于从表中选取数据。
SELECT 列名 FROM 表名
SELECT * FROM 表名
DISTINCT
仅列出表中不同(distinct)的值,用于返回唯一不同的值(剔重)。
SELECT DISTINCT 列名 FROM 表名
AS
为列名称和表名称指定别名(Alias)。
SELECT * FROM 表名 AS 别名
ORDER BY
用于根据指定的列对结果集进行默认升序排序,降序DESC。
SELECT * FROM 表名 ORDER BY 列名 DESC
INSERT INTO
向表格中插入新的行。
INSERT INTO 表名 VALUES ('值1','值2')
INSERT INTO 表名 (列1, 列2) VALUES ('值1', '值2')
UPDATE
修改表中的数据。
UPDATE 表名 SET 列名 = '新值' WHERE 某列名 = '某值'
UPDATE 表名 SET 列名1 = '新值1' , 列名2 = '新值2' WHERE 某列名 = '某值'
DELETE
删除表中的行。
DELETE FROM 表名 WHERE 列名 = '值'
INTO
从一个表中选取数据,然后把数据插入另一个表中。
常用于创建表的备份复件或者用于对记录进行存档。
SELECT 列名
INTO 新表(需要插入的表名)
FROM 旧表1 A
INNER JOIN 旧表2 B ON A.列1 = B.列2
WHERE A.列11='值1' AND B.列22='值2'
CREATE
创建数据库。
CREATE DATABASE 库名
1
CREATE TABLE
创建数据库中的表。
CREATE TABLE 表名(
列名1 数据类型,
列名2 数据类型
)
数据类型 描述
INTRGER(SIZE) 整数,SIZE规定数字的最大位数。
INT(SIZE) 整数,SIZE规定数字的最大位数。
SMALLINT(SIZE) 整数,SIZE规定数字的最大位数。
TINYINT(SIZE) 整数,SIZE规定数字的最大位数。
DECIMAL(SIZE,NUM) 带小数的数字,SIZE规定数字的最大位数,NUM规定小数点后几位。
NUMERIC(SIZE,NUM) 带小数的数字,SIZE规定数字的最大位数,NUM规定小数点后几位。
CHAR(SIZE) 固定长度字符串,SIZE规定长度
VARCHAR(SIZE,NUM) 可变长度字符串,SIZE规定最大长度
DATE(YYYYMMDD) 日期,YYYYMMDD规定格式
条件/连接
WHERE
有条件地从表中选取数据,可将 WHERE 子句添加到 SELECT 语句。
SELECT 列名 FROM 表名 WHERE 列 运算符 值
运算符
运算符 描述
= 等于
<> 不等于
> 大于
< 小于
>= 大于等于
<= 小于等于
BETWEEN 在某个范围
LIKE 模糊搜索
AND 前后条件都成立
OR 前后条件其中一个
LIKE
在 WHERE 子句中搜索列中的指定模式。
SELECT * FROM 表名 WHERE 列名 LIKE '%值%' #包含
SELECT * FROM 表名 WHERE 列名 NOT LIKE '%值%' #不包含
通配符
替代一个或多个字符。
通配符 描述
% 替代一个或多个字符
_ 仅替代一个字符
[ABC] ABC中的任何单一字符
[!ABC] 不在ABC中的任何单一字符
IN
在 WHERE 子句中规定多个值。
SELECT * FROM 表名 WHERE 列名 IN (值1,值2)
BETWEEN
选取介于两个值之间的数据范围,包含BETWEEN,不包含AND。
SELECT * FROM 表名 WHERE 列名 BETWEEN '值1' AND '值2'
JOIN
根据两个或多个表中的列之间的关系,从这些表中查询数据。
INNER JOIN: 如果表中有至少一个匹配,则返回行
LEFT JOIN: 即使右表中没有匹配,也从左表返回所有的行
RIGHT JOIN: 即使左表中没有匹配,也从右表返回所有的行
FULL JOIN: 只要其中一个表中存在匹配,就返回行
SELECT a1.列,a2.列
FROM 表1 AS a1,表2 AS a2
WHERE a1.id = a2.Id
INNER JOIN
在表中存在至少一个匹配时,返回行。
SELECT a1.列,a2.列
FROM 表1 AS a1
INNER JOIN 表2 AS a2
ON a1.id = a2.Id
LEFT JOIN
从左表返回所有的行,即使在右表中没有匹配的行。
SELECT a1.列,a2.列
FROM 表1 AS a1
LEFT (OUTER) JOIN 表2 AS a2
ON a1.id = a2.Id
RIGHT JOIN
从右表返回所有的行,即使在左表中没有匹配的行。
SELECT a1.列,a2.列
FROM 表1 AS a1
RIGHT (OUTER) JOIN 表2 AS a2
ON a1.id = a2.Id
FULL JOIN
只要其中某个表存在匹配,就会返回行。
SELECT a1.列,a2.列
FROM 表1 AS a1
FULL (OUTER) JOIN 表2 AS a2
ON a1.Id = a2.Id
取整函数
CEIL
向上取整,只返回值的整数部分,有小数都进1
CEIL(0.1) = 1
FLOOR
向下取整,只返回值的整数部分
FLOOR(0.9) = 0
ROUND
四舍五入,后面为保留小数位数
ROUND(0.49,0) = 0
ROUND(0.5,0) = 1
ROUND(1,2) = 1.00
TOP
规定要返回的记录的数目,并非所有的数据库系统都支持 TOP 子句。
#MYSQL
SELECT TOP 条目数 FROM 表名
SELECT TOP 百分数 PERCENT FROM 表名
#ORACLE
SELECT * FROM 表名 WHERE ROWNUM <= TOP值
格式/规则
CAST
转换数据格式
CAST(expression AS data_type)
数据格式 函数
二进制 BINARY
字符 CHAR
日期 DATE
时间 TIME
日期时间 DATETIME
浮点数 DECIMAL
整数 SIGNED
无符号整数 UNSIGNED
UNION 和 UNION ALL
UNION
UNION 操作符选取不同的值,重复的值只显示一次。
SELECT 列名 FROM 表1
UNION
SELECT 列名 FROM 表2
UNION ALL
UNION ALL操作符选取不同的值,允许显示重复的值。
SELECT 列名 FROM 表1
UNION ALL
SELECT 列名 FROM 表2
Constraints (约束)
NOT NULL
约束列不可为NULL值。
CREATE TABLE 表名(
列名1 数据类型 NOT NULL,
列名2 数据类型 NOT NULL
)
UNIQUE/PRIMARY KEY
约束唯一标识数据库表中的每条记录。
每个表都有一个主键,并且每个表只能有一个主键,主键必须包含唯一的值。
UNIQUE 和 PRIMARY KEY 约束均为列或列集合提供了唯一性的保证。
PRIMARY KEY 拥有自动定义的 UNIQUE 约束
PRIMARY KEY不能为NULL,UNIQUE可为NULL
创建UNIQUE/PRIMARY KEY约束
#MYSQL
CREATE TABLE 表名(
列名1 数据类型 NOT NULL,
列名2 数据类型,
PRIMARY KEY (列名1),
UNIQUE (列名2)
)
#ORACLE/SERVER/MS ACCESS
CREATE TABLE 表名(
列名1 数据类型 NOT NULL PRIMARY KEY,
列名2 数据类型 UNIQUE
)
#定义多列约束
CREATE TABLE 表名(
列名1 数据类型 NOT NULL,
列名2 数据类型 NOT NULL,
列名3 数据类型,
列名4 数据类型 NOT NULL,
CONSTRAINT 约束名 PRIMARY KEY (列名1,列名2),
CONSTRAINT 约束名 UNIQUE (列名3,列名4)
)
新增UNIQUE/PRIMARY KEY约束
ALTER TABLE 表名
ADD UNIQUE (列名1),
ADD PRIMARY KEY (列名2)
#定义多列约束
ALTER TABLE 表名
ADD CONSTRAINT 约束名 UNIQUE (列名1,列名2),
ADD CONSTRAINT 约束名 PRIMARY KEY (列名3,列名4)
取消UNIQUE/PRIMARY KEY约束
#MYSQL
ALTER TABLE 表名
DROP INDEX 约束名,
DROP PRIMARY KEY
#ORACLE/SERVER/MS ACCESS
ALTER TABLE 表名 DROP CONSTRAINT 约束名
本文作者:张三Blog
本文链接:https://www.cnblogs.com/zhangsan-plus/p/16503338.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步