查看“数据库与SQL基础”的源代码
←
数据库与SQL基础
跳到导航
跳到搜索
因为以下原因,您没有权限编辑本页:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
SQL 是用于访问和处理数据库的标准的计算机语言。 虽然 SQL 是一门 ANSI(American National Standards Institute 美国国家标准化组织)标准的计算机语言,但是仍然存在着多种不同版本的 SQL 语言。 然而,为了与 ANSI 标准相兼容,它们必须以相似的方式共同地来支持一些主要的命令(比如 SELECT、UPDATE、DELETE、INSERT、WHERE 等等)。 完全基于标准 SQL 的 RDBMS 很少,通常需要根据不同的 RDBMS 来编写特定的 SQL 语句,原则上,本课程介绍的是标准 SQL 的书写方式。 根据对 RDBMS 赋予的指令种类的不同,SQL 语句可以分为以下三类. == '''DDL''' == DDL(Data Definition Language,数据定义语言) 用来创建或者删除存储数据用的数据库以及数据库中的表等对象。DDL 包含以下几种指令。 * CREATE : 创建数据库和表等对象 * DROP : 删除数据库和表等对象 * ALTER : 修改数据库和表等对象的结构 == '''DML''' == DML(Data Manipulation Language,数据操纵语言) 用来查询或者变更表中的记录。DML 包含以下几种指令。 * SELECT :查询表中的数据 * INSERT :向表中插入新数据 * UPDATE :更新表中的数据 * DELETE :删除表中的数据 == '''DCL''' == DCL(Data Control Language,数据控制语言) 用来确认或者取消对数据库中的数据进行的变更。除此之外,还可以对 RDBMS 的用户是否有权限操作数据库中的对象(数据库表等)进行设定。DCL 包含以下几种指令。 * COMMIT : 确认对数据库中的数据进行的变更 * ROLLBACK : 取消对数据库中的数据进行的变更 * GRANT : 赋予用户操作权限 * REVOKE : 取消用户的操作权限 = 基础内容 = === SELECT 使用 === SELECT 语句用于从数据库中选取数据。 结果被存储在一个结果表中,称为结果集。<syntaxhighlight lang="sql" line="1"> SELECT column_name,column_name FROM table_name; SELECT * FROM table_name; </syntaxhighlight> === SELECT DISTINCT 使用 === SELECT DISTINCT 语句用于返回唯一不同的值。<syntaxhighlight lang="sql" line="1"> SELECT DISTINCT column_name FROM table_name; SELECT DISTINCT column_name1,column_name2 FROM table_name; -- 多个字段效果等同于下面的语句 SELECT column_name1,column_name2 FROM TABLE_NAME GROUP BY column_name1,column_name2 </syntaxhighlight> === WHERE 使用 === WHERE 子句用于提取那些满足指定条件的记录。<syntaxhighlight lang="sql" line="1"> SELECT column_name,column_name FROM table_name WHERE column_name operator value; </syntaxhighlight>WHERE 子句中的运算符: in 中间包含的数值数量不应超过1000 {| class="wikitable" |+ |= |等于 |- |<> |不等于。'''注释:'''在 SQL 的一些版本中,该操作符可被写成 != |- |> |大于 |- |< |小于 |- |>= |大于等于 |- |<= |小于等于 |- |BETWEEN |在某个范围内 |- |LIKE |搜索某种模式 |- |IN |指定针对某个列的多个可能值 |} === AND & OR 运算符 === AND & OR 运算符用于基于一个以上的条件对记录进行过滤。 如果第一个条件和第二个条件都成立,则 AND 运算符显示一条记录。 如果第一个条件和第二个条件中只要有一个成立,则 OR 运算符显示一条记录。 === ORDER BY === ORDER BY 关键字用于对结果集进行排序。 ORDER BY 关键字用于对结果集按照一个列或者多个列进行排序。 ORDER BY 关键字默认按照升序对记录进行排序。如果需要按照降序对记录进行排序,您可以使用 DESC 关键字。 ==== ORDER BY 字段 ASC ==== 默认是 升序排列,可以不加asc ==== ORDER BY 字段 DESC ==== 字段降序排列 ==== ORDER BY 多个字段 ==== 多个字段排序使用逗号分割<syntaxhighlight lang="sql" line="1"> SELECT * FROM Websites ORDER BY country,alexa; </syntaxhighlight> === INSERT INTO 使用 === INSERT INTO 语句用于向表中插入新记录。 INSERT INTO 语句可以有2种编写形式。 第一种形式无需指定要插入数据的列名,只需提供被插入的值即可:<syntaxhighlight lang="sql" line="1"> INSERT INTO table_name VALUES (value1,value2,value3,...); </syntaxhighlight>第二种形式需要指定列名及被插入的值:<syntaxhighlight lang="sql"> INSERT INTO table_name (column1,column2,column3,...) VALUES (value1,value2,value3,...); </syntaxhighlight>还有一种情况insert的数值来源于另外一个查询的结果集,这时候需要结果数据集的列数与所插入的表要对应。<syntaxhighlight lang="sql" line="1"> INSERT INTO table_name (column1,column2,column3,...) select value1,value2,value3,... from table2 ; </syntaxhighlight> === DELETE 使用 === DELETE 语句用于删除表中的记录。<syntaxhighlight lang="sql" line="1"> DELETE FROM table_name WHERE some_column=some_value; </syntaxhighlight> 删除该表所有数据<u>'''(风险操作)'''</u>:<syntaxhighlight lang="sql"> DELETE FROM table_name; DELETE * FROM table_name; TRUNCATE TABLE tablename;-- 清除后的数据无法恢复 </syntaxhighlight><blockquote> delete删除大量数据时可能会导致数据库undo表空间撑满,而引发回滚。 truncate不占用undo表空间,但是无法恢复删除数据。 可采用分批delete数据,或者在表设计时合理划分表空间,采用truncate表空间方式清理数据。</blockquote> === UPDATE 使用 === Update 语句用于修改表中的数据。<syntaxhighlight lang="sql"> UPDATE table_name SET column1=value1,column2=value2,... WHERE some_column=some_value; </syntaxhighlight><blockquote> '''请注意 SQL UPDATE 语句中的 WHERE 子句!''' WHERE 子句规定哪条记录或者哪些记录需要更新。如果您省略了 WHERE 子句,所有的记录都将被更新!</blockquote> = 进阶内容 = == 函数 == === 常用函数 === 更多数据库函数参考[[数据库函数|数据库SQL函数]]。 == 存储过程 == === 存储过程使用 === 更多数据库函数参考[[数据库存储过程]] === MERGE 使用 === === full join/left join/right join /inner join 使用 === = 其他学习资源 = 阿里的sql训练营:https://tianchi.aliyun.com/course/309/3584 菜鸟教程的sql:https://www.runoob.com/sql/sql-tutorial.html w3c school 的sql教程:https://www.w3school.com.cn/sql/index.asp
返回至“
数据库与SQL基础
”。
导航菜单
个人工具
登录
名字空间
页面
讨论
变体
视图
阅读
查看源代码
查看历史
更多
搜索
导航
-==扬==-
-==帆==-
-==起==-
-==航==-
最近更改
随机页面
MediaWiki帮助
工具
链入页面
相关更改
特殊页面
页面信息