admin管理员组文章数量:1794759
SQL语句快速回忆——SQL基础知识点汇总
文章目录
- DDL
- 建表
- 约束
- 已经建了表要添加约束
- 取消主键PRIMARY约束
- 外键 FOREIGN KEY
- 建表时加外键(表2必须已经创建,并且建表时列名已经定义)
- 已有表添加外键约束
- 删除外键约束
- DML
- SQL 常用数据类型汇总
- 搜索
- 搜索全部
- 搜索指定属性名的信
- 搜索满足条件表达式的所有数据
- 搜索满足条件的唯一的指定属性
- 条件表达式WHERE
- AND 和 OR 运算符
- ORDER BY 语句用于根据指定的列对结果集进行排序
- 搜索满足条件的唯一的指定属性并按升序输出
- 搜索满足条件的唯一的指定属性并按降序输出
- 搜索满足条件的指定属性并按升序输出(如果有同名属性,同名的属性按第二属性升序输出)
- 搜索满足条件的指定属性并按降序输出(如果有同名属性,同名的属性按第二属性升序输出)
- GROUP BY
- HAVING
- INSERT插入
- 对表插入
- 对表的指定列插入
- UPDATE 修改
- 对表修改
- DELETE删除
- 删除行
- 删除所有行
- TOP
- 选取最上方指定条数
- limit有同样效果
- limit还可以选取范围(第m到第n条)
- 选取最上方百分之xx的数据
- LIKE 匹配搜索
- 通配符
- IN 规定多个值
- BETWEEN AND查找介于两个值之间的数据
- Alias/as 指定别名
- 列名指定别名
- 表名指定别名
- 多表联动查询
- 直接比对
- join操作
- JOIN类型
- UNION合并多个 SELECT 语句的结果集
- SELECT INTO 从一个表中选取数据,然后把数据插入另一个表中
- 有选择的备份
SQL 指结构化查询语言,全称是 Structured Query Language。 RDBMS 指的是关系型数据库管理系统。
SQL 对大小写不敏感!
SQL 分为两个部分:数据操作语言 (DML) 和 数据定义语言 (DDL)。
DDLDDL主要是对数据库和表的创建,修改,删除。
CREATE DATABASE - 创建新数据库 ALTER DATABASE - 修改数据库 CREATE TABLE - 创建新表 ALTER TABLE - 变更(改变)数据库表 DROP TABLE - 删除表 CREATE INDEX - 创建索引(搜索键) DROP INDEX - 删除索引 建表 CREATE TABLE 表名称 ( 列名称1 数据类型, 列名称2 数据类型, 列名称3 数据类型, .... )
| 仅容纳整数。在括号内规定数字的最大位数。 |
| 容纳带有小数的数字。 "size" 规定数字的最大位数。"d" 规定小数点右侧的最大位数。 |
char(size) | 容纳固定长度的字符串(可容纳字母、数字以及特殊字符)。 在括号中规定字符串的长度。 |
varchar(size) | 容纳可变长度的字符串(可容纳字母、数字以及特殊的字符)。 在括号中规定字符串的最大长度。 |
date(yyyymmdd) | 容纳日期。 |
FOREIGN KEY 约束用于预防破坏表之间连接的动作。 FOREIGN KEY 约束也能防止非法数据插入外键列,因为它必须是它指向的那个表中的值之一。
建表时加外键(表2必须已经创建,并且建表时列名已经定义) FOREIGN KEY (列名) REFERENCES 表2(主键) 已有表添加外键约束 ALTER TABLE Orders ADD FOREIGN KEY (当前建表的列名) REFERENCES 表2(主键) 删除外键约束 ALTER TABLE 表名 DROP FOREIGN KEY fk_PerOrders DML SELECT - 从数据库表中获取数据 UPDATE - 更新数据库表中的数据 DELETE - 从数据库表中删除数据 INSERT INTO - 向数据库表中插入数据 SQL 常用数据类型汇总 字符串类: CHAR(N),CHARACTER(n) 字符/字符串。固定长度 n。 VARCHAR(n),CHARACTER VARYING(n) 字符/字符串。可变长度。最大长度 n。 数字类: BINARY(n) 二进制串,固定长度 n。 BOOLEAN 存储 TRUE 或 FALSE 值 VARBINARY(n) 或BINARY VARYING(n) 二进制串。可变长度。最大长度 n。 INT,INTEGER 长整数,4字节 SMALLINT 短整数,2字节 BIGINT 大整数,8字节 定点数: NUMERIC(p,d) 定点数,有p为数字(不包含符号和小数点)组成,小数点后d位 DECIMAL(p,d),DEC(p,d) 同上 浮点数: REAL 单精度浮点数,取决于机器精度 DOUBLR PRECISION 双精度浮点数 FLOAT (n) 可选精度的浮点数 日期: DATE 存储年、月、日的值。YYYY-MM-DD TIME 存储小时、分、秒的值。HH:MM:SS TIMESTAMP 存储年、月、日、小时、分、秒的值。 INTERVAL 由一些整数字段组成,代表一段时间,取决于区间的类型。 集合: ARRAY 元素的固定长度的有序集合 MULTISET 元素的可变长度的无序集合 XML 存储 XML 数据以下是引用W3School 的 SQL 快速参考。
AND / OR | SELECT column_name(s) FROM table_name WHERE condition AND|OR condition |
ALTER TABLE (add column) | ALTER TABLE table_name ADD column_name datatype |
ALTER TABLE (drop column) | ALTER TABLE table_name DROP COLUMN column_name |
AS (alias for column) | SELECT column_name AS column_alias FROM table_name |
AS (alias for table) | SELECT column_name FROM table_name AS table_alias |
BETWEEN | SELECT column_name(s) FROM table_name WHERE column_name BETWEEN value1 AND value2 |
CREATE DATABASE | CREATE DATABASE database_name |
CREATE INDEX | CREATE INDEX index_name ON table_name (column_name) |
CREATE TABLE | CREATE TABLE table_name ( column_name1 data_type, column_name2 data_type, ....... ) |
CREATE UNIQUE INDEX | CREATE UNIQUE INDEX index_name ON table_name (column_name) |
CREATE VIEW | CREATE VIEW view_name AS SELECT column_name(s) FROM table_name WHERE condition |
DELETE FROM | DELETE FROM table_name (Note: Deletes the entire table!!) or DELETE FROM table_name WHERE condition |
DROP DATABASE | DROP DATABASE database_name |
DROP INDEX | DROP INDEX table_name.index_name |
DROP TABLE | DROP TABLE table_name |
GROUP BY | SELECT column_name1,SUM(column_name2) FROM table_name GROUP BY column_name1 |
HAVING | SELECT column_name1,SUM(column_name2) FROM table_name GROUP BY column_name1 HAVING SUM(column_name2) condition value |
IN | SELECT column_name(s) FROM table_name WHERE column_name IN (value1,value2,..) |
INSERT INTO | INSERT INTO table_name VALUES (value1, value2,....) or INSERT INTO table_name (column_name1, column_name2,...) VALUES (value1, value2,....) |
LIKE | SELECT column_name(s) FROM table_name WHERE column_name LIKE pattern |
ORDER BY | SELECT column_name(s) FROM table_name ORDER BY column_name [ASC|DESC] |
SELECT | SELECT column_name(s) FROM table_name |
SELECT * | SELECT * FROM table_name |
SELECT DISTINCT | SELECT DISTINCT column_name(s) FROM table_name |
SELECT INTO (used to create backup copies of tables) | SELECT * INTO new_table_name FROM original_table_name or SELECT column_name(s) INTO new_table_name FROM original_table_name |
TRUNCATE TABLE (deletes only the data inside the table) | TRUNCATE TABLE table_name |
UPDATE | UPDATE table_name SET column_name=new_value [, column_name=new_value] WHERE column_name=some_value |
WHERE | SELECT column_name(s) FROM table_name WHERE condition |
如果绑定了指定数据库,可以直接用表名称。 如果有多个数据库情况下,应该用数据库名.表名称,如学生课程管理系统.学生信,学生课程管理系统是数据库名,学生信是表名称。
搜索全部 select * from 表名称 搜索指定属性名的信 select 属性名(列名称) from 表名称 搜索满足条件表达式的所有数据 select * from 表名称 where 条件表达式 搜索满足条件的唯一的指定属性 select DISTINCT 属性名(列名称) from 表名称 where 条件表达式 条件表达式WHERE= | 等于 |
<> | 不等于 |
> | 大于 |
< | 小于 |
>= | 大于等于 |
<= | 小于等于 |
BETWEEN | 在某个范围内 |
LIKE | 搜索某种模式 |
SQL 使用单引号来环绕文本值(大部分数据库系统也接受双引号)。如果是数值不用引号。
AND 和 OR 运算符AND 和 OR 可在 WHERE 子语句中把两个或多个条件结合起来。 用AND连接的条件表达式须全部满足才会输出,OR连接的表达式任意一个满足都会有输出。 用AND连接相当于多个条件合成一个条件,要么满足输出,要么不满足输出空。 用OR连接相当于多条指令执行后把各条语句的结果合并起来。
ORDER BY 语句用于根据指定的列对结果集进行排序ORDER BY 语句默认按照升序ASC对记录进行排序,ASC一般不写,语句中同时出现升序和降序要求升序写ASC,降序写DESC。 如果您希望按照降序对记录进行排序,可以使用 DESC 关键字。
搜索满足条件的唯一的指定属性并按升序输出 select DISTINCT 属性名(列名称) from 表名称 where 条件表达式 ORDER BY 属性名(列名称) 搜索满足条件的唯一的指定属性并按降序输出 select DISTINCT 属性名(列名称) from 表名称 where 条件表达式 ORDER BY 属性名(列名称) DESC 搜索满足条件的指定属性并按升序输出(如果有同名属性,同名的属性按第二属性升序输出) select 属性名(列名称) from 表名称 where 条件表达式 ORDER BY 属性名1(列名称1),属性名2(列名称2) 搜索满足条件的指定属性并按降序输出(如果有同名属性,同名的属性按第二属性升序输出) select 属性名(列名称) from 表名称 where 条件表达式 ORDER BY 属性名1(列名称1)DESC,属性名2(列名称2)ASC GROUP BY有些情况下比如订单表中要统计消费最多的用户和他的总花费金额。 当我们使用SUM()时必须按照名字进行分组,不然就会出现把订单金额全加起来,而且每人都是金额总和的情况。 GROUP BY可以按照给定的列名分组进行聚合操作
GROUP BY 语句用于结合聚合函数,根据一个或多个列对结果集进行分组。 SELECT 列名, 聚合函数(列名) FROM 表名 WHERE 条件表达式 GROUP BY 列名 HAVING聚合函数不能在where中使用,所以增加了having
GROUP BY 语句用于结合聚合函数,根据一个或多个列对结果集进行分组。 SELECT 列名, 聚合函数(列名) FROM 表名 WHERE 条件表达式 GROUP BY 列名 HAVING 聚合函数(列名) 操作符 值 INSERT插入 对表插入 INSERT INTO 表名称 VALUES (值1, 值2,....) 对表的指定列插入 INSERT INTO table_name (列1, 列2,...) VALUES (值1, 值2,....) UPDATE 修改 对表修改 UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值 DELETE删除 删除行 DELETE FROM 表名称 WHERE 列名称 = 值 删除所有行 DELETE FROM 表名称 或 DELETE * FROM 表名称 TOP 选取最上方指定条数 SELECT TOP 条数 * FROM 表名 limit有同样效果 SELECT * FROM 表名 LIMIT 条数 limit还可以选取范围(第m到第n条) SELECT * FROM 表名 LIMIT 条数m,条数n 选取最上方百分之xx的数据 SELECT TOP xx PERCENT * FROM 表名 LIKE 匹配搜索 SELECT 列名 FROM 表明 WHERE 列名 LIKE xxx 'A%' A开头的值 '%A' A结尾的值 '%A%' 包含A的值 NOT LIKE 'A%' 不包含A的值 '_ABC' 第一个字符后是ABC的值 'A_B_C' 第一个字符是A,第三个字符是B,第五个字符是C的值 '[ABC]%' 第一个字符是ABC中任意一个(且只有一个)的值,如A你,B我,C他 通配符% | 代表零个或多个字符 |
_ | 仅替代一个字符 |
[charlist] | 字符列中的任何单一字符(有且只有其中的一个) |
[^charlist] 或者 [!charlist] | 不在字符列中的任何单一字符 |
UNION 内部的 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条 SELECT 语句中的列的顺序必须相同。
SELECT 列1 FROM 表1 UNION SELECT 列2 FROM 表2UNION 操作符选取不同的值,即默认具有DISTINCT的效果。UNION ALL允许重复。
SELECT INTO 从一个表中选取数据,然后把数据插入另一个表中SELECT INTO 语句常用于创建表的备份复件或者用于对记录进行存档。
SELECT * INTO 表的备份 FROM 原始表 有选择的备份 SELECT 列名 INTO 备份表 FROM 表 WHERE 条件表达式版权声明:本文标题:SQL语句快速回忆——SQL基础知识点汇总 内容由林淑君副主任自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.xiehuijuan.com/baike/1686995474a126687.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论