数据库常用SQL

简介: 版权声明:欢迎评论和转载,转载请注明来源。 https://blog.csdn.net/zy332719794/article/details/8951552 以前零零散散地学习和使用了不少的SQL语句,感觉都了解一些,但实际用的时候也要常常上网再查询和确认。
版权声明:欢迎评论和转载,转载请注明来源。 https://blog.csdn.net/zy332719794/article/details/8951552

以前零零散散地学习和使用了不少的SQL语句,感觉都了解一些,但实际用的时候也要常常上网再查询和确认。所以想到抽空把这些知识系统地梳理一下。


下面列出常用的SQL语句


说明:在文字描述中,”字段“、”列“指的是同一个意思。大写表示sql内部的关键字,小些表示用户输入和定义的。红色字体表示比较关键的地方。

一、简单增、删、查、改操作

(1)基本操作

单表查询(多表查询在下面单独讲)

1. 查询表的全部记录:SELECT * FROM tableName

2. 查询表的记录(加条件):SELECT * FROM tableName WHERE field1= value1 or field2 = value2

3. 查询表的部分字段的记录:SELECT field1field2,..., FROM tableName 

4. 查询出结果,并赋别名:SELECT filed1 as 别名1, field2 as 别名2 FROM tableName ,

                            或不要as:SELECT filed1 别名1, filed2 别名2 FROM tableName 

5. 查询不重复的列值:SELECT DISTINCT field1 FROM tableName

6. 查询表的前N个记录:SELECT TOP 100 field1, field2 FROM tableName

新增记录

1. 插入一条新纪录:INSERT INTO tableName (field1, field2, field3) VALUES(value1, value2, value3),需要注意的是字符串类型的值,需要用单引号括起来。

修改记录

1. 修改所有符合条件的记录:UPDATE tableName SET field1 = value1, field2 = value2 WHERE field3 = value3

删除记录

1. 删除表中的所有记录:DELETE FROM tableName 或者 DELETE * FROM tableName

2. 删除符合条件的记录:DELETE FROM tableName WHERE field1 = value1 AND field2 = value2

(2)查询结果排序

说明:关键字ORDER BY 写在SQL语句的最后

1. 按某字段进行排序:SELECT * FROM tableName ORDER BYfield1

2. 按多个字段进行排序:SELECT * FROM tableName ORDER BY field1,field2, ...

3. 正逆序排序:SELECT * FROM tableName ORDER BY field1DESC, field2 ASC,其中“DESC”表示逆序,“ASC”表示正序

(3)WHERE条件设置

说明:WHERE条件语句跟在SQL语句表的后面

1. 添加字段值条件,判断符号有大于“>”,小于“<”,等于“=”,不等于“<>”、“!=”,介于“BETWEEN...AND”,不介于“NOT BETWEEN...AND"

2. 多条件连接,多条件可以用AND或者OR进行连接,AND表示“并且”,OR表示“或者”,如上面所示。条件可以用括号进行合并判断。

例:SELECT * FROM tableName WHERE field1 > 0 AND field2 100

        SELECT * FROM tableName WHERE field1 10 AND (field2 != 'aaa' OR field3<> 'bbb'

        SELECT * FROM tableName WHERE field1 BETWEEN 'a' AND 'd' ,不同的数据库(sql server、orcale)对字符串的判断方式可能不同。

        SELECT * FROM tableName WHERE field1 NOT BETWEEN 100 AND 1000

3. 集合作为条件,关键字‘IN’

        SELECT * FROM tableName WHERE field1 IN ('value1', 'value2', 'value3',...),查寻出field1字段值在value集合中存在的结果。

(4)通配符

说明:通配符通常用于 WHERE 语句中的 LIKE 条件

1. 通配符有两个,百分号‘%’和下划线‘_’,百分号‘%’表示匹配若干个连续的字符,下划线‘_’表示匹配一个字符

   SELECT * FROM tableName WHERE field1 like '%b_cd%'

上面语句表示字段field1满足前面有0个或若干个字符,接着有b字符隔了一个字符后,接着cd后面跟0个或若干个字符。

补充:百分号可以匹配0个字符,而下划线匹配表示必须有一个字符。

(5)级联查询(多表连接查询)

说明:级联查询,通常是两个或多个表设置了主键和外键引用,通过id进行级联查询

1. 普通方式表连接查询:SELECT * FROM table1, table2 WHERE table1.id = table2.id

2. 内联查询:SELECT * FROM table1 INNER JOIN table2ON table1.id = table2.id,其结果与方式1查询结果一致。

2. 左联查询:SELECT * FROM table1 LEFT JOIN table2 ON table1.id = table2.id,如果右表没有匹配,也从左表返回说有的行

3. 右联查询:SELECT * FROM table1 RIGHT JOIN table2 ON table1.id = talb2.id,如果左表没有匹配,也从右表返回说有的行

4. 多表级联:SELECT * FROM table1 INNER JOIN table2ON table1.id = table2.id LEFT JOIN table3 ON t1.id = t3.id RIGHT JOIN ... ON...

5. 级联更新和级联删除,对于不用数据库支持不同,这里不作详述。

(6)表操作

新建表

关键字:CREATE TABLE

1. 创建一个三个字段的表:CREATE TABLE tableName (fieldName1 int,  fieldName2  varchar(255),  fieldName3  date),字段定义用逗号隔开。

2. 创建一个带主键的表:CREATE TABLE tableName ( fieldName1 int PRIMARY KEY,  fieldName2 varchar(100))

3. 创建一个带非空字段的表:CREATE TABLE tableName ( fieldName1 int NOT NULL,  fieldName2 varchar(100))

4. 创建一个含唯一约束字段的表:CREATE TABLE tableName ( fieldName1 int  UNIQUE,  fieldName2 varchar(100))

5. 创建含两个字段确定唯一的表:CREATE TALBE tableName (field1 int, field 2 varchar(255), field3 date,CONSTRAINT customName UNIQUE(field1, field3))

6. 创建一个含外键的表:CREATE TABLE tableName ( fieldName1 int FOREIGN KEY REFERENCES otherTable(fieldName),  fieldName2 varchar(100))

7. CHECK约束,可以添加各种高级约束,例:CREATE TABLE tableName ( fieldName1 int CHECK(fieldName1 > 0),  fieldName2 varchar(100))

说明:创建各种约束的时候,可以在字段的后面直接跟关键字,也可以单独写一句定义,单独写一句定义的好处在于,第一可以为约束命名字,第二可以增加组合的约束。

CONSTRAINT name PRIMARY KEY【或NOT NULL、UNIQUE、FOREIGN KEY、CHECK等】 (field1)【(field1,field2)、REFERENCES otherTable(table2)、(field1>0)等】

修改表

关键字:ALTER TABLE

1. 增加列:ALTER TABLE table1 ADD newField1 dataType, newField2 dataType

    特殊情况,增加非空列时,如果表目前不为空,则需要设置默认值,

            例:ALTER TABLE table1 ADD newField1 int NOT NULL DEFAULT(0)

2. 删除列:ALTER TABLE table1 DROP COLUMN field1

3. 修改字段数据类型:ALTER TABLE table1 ALTER COLUMN field1 otherDataType

4. 修改字段的名称,较复杂,多采用存储过程实现,这里暂不详述。

删除表

关键字:DROP TABLE

1. 删除表:DROP TABLE tableName,语句非常简单,但是如果表与其他表之间有约束,需要先处理约束再删表。

(7)字段约束操作

1. 增加字段约束:ALTER TABLE table1 ADD PRIMARY KEY ( field1 )

ALTER TABLE table1  CONSTRAINT name ADD PRIMARY KEY(field1, field2)

ALTER TABLE table1 CONSTRAINT name ADD CHECK

2. 删除字段约束,约束不同,语句不完全一致:ALTER TABLE table1 DROP PRIMARY KEY,因为一个表只有一个主键,所以不需要跟名称

    ALTER TABLE table1 DROP FOREIGN KEY foreignKEYName,只能根据约束名来删除

    通用的删除约束的方法: ALTER TABLE table1 DROP CONSTRAINT foreignKEYName





待续。。。


相关文章
|
11天前
|
SQL 存储 关系型数据库
【SQL技术】不同数据库引擎 SQL 优化方案剖析
不同数据库系统(MySQL、PostgreSQL、Doris、Hive)的SQL优化策略。存储引擎特点、SQL执行流程及常见操作(如条件查询、排序、聚合函数)的优化方法。针对各数据库,索引使用、分区裁剪、谓词下推等技术,并提供了具体的SQL示例。通用的SQL调优技巧,如避免使用`COUNT(DISTINCT)`、减少小文件问题、慎重使用`SELECT *`等。通过合理选择和应用这些优化策略,可以显著提升数据库查询性能和系统稳定性。
64 9
|
29天前
|
SQL Java 数据库连接
【潜意识Java】MyBatis中的动态SQL灵活、高效的数据库查询以及深度总结
本文详细介绍了MyBatis中的动态SQL功能,涵盖其背景、应用场景及实现方式。
96 6
|
2月前
|
SQL Oracle 数据库
使用访问指导(SQL Access Advisor)优化数据库业务负载
本文介绍了Oracle的SQL访问指导(SQL Access Advisor)的应用场景及其使用方法。访问指导通过分析给定的工作负载,提供索引、物化视图和分区等方面的优化建议,帮助DBA提升数据库性能。具体步骤包括创建访问指导任务、创建工作负载、连接工作负载至访问指导、设置任务参数、运行访问指导、查看和应用优化建议。访问指导不仅针对单条SQL语句,还能综合考虑多条SQL语句的优化效果,为DBA提供全面的决策支持。
95 11
|
3月前
|
SQL 缓存 监控
大厂面试高频:4 大性能优化策略(数据库、SQL、JVM等)
本文详细解析了数据库、缓存、异步处理和Web性能优化四大策略,系统性能优化必知必备,大厂面试高频。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
大厂面试高频:4 大性能优化策略(数据库、SQL、JVM等)
|
3月前
|
SQL 关系型数据库 MySQL
体验使用DAS实现数据库SQL优化,完成任务可得羊羔绒加厚坐垫!
本实验介绍如何通过数据库自治服务DAS对RDS MySQL高可用实例进行SQL优化,包含购买RDS实例并创建数据库、数据导入、生成并优化慢SQL、执行优化后的SQL语句等实验步骤。完成任务,即可领取羊羔绒加厚坐垫,限量500个,先到先得。
272 19
|
2月前
|
SQL 关系型数据库 MySQL
MySQL导入.sql文件后数据库乱码问题
本文分析了导入.sql文件后数据库备注出现乱码的原因,包括字符集不匹配、备注内容编码问题及MySQL版本或配置问题,并提供了详细的解决步骤,如检查和统一字符集设置、修改客户端连接方式、检查MySQL配置等,确保导入过程顺利。
|
2月前
|
SQL 监控 安全
SQL Servers审核提高数据库安全性
SQL Server审核是一种追踪和审查SQL Server上所有活动的机制,旨在检测潜在威胁和漏洞,监控服务器设置的更改。审核日志记录安全问题和数据泄露的详细信息,帮助管理员追踪数据库中的特定活动,确保数据安全和合规性。SQL Server审核分为服务器级和数据库级,涵盖登录、配置变更和数据操作等事件。审核工具如EventLog Analyzer提供实时监控和即时告警,帮助快速响应安全事件。
|
3月前
|
SQL 存储 BI
gbase 8a 数据库 SQL合并类优化——不同数据统计周期合并为一条SQL语句
gbase 8a 数据库 SQL合并类优化——不同数据统计周期合并为一条SQL语句
|
3月前
|
SQL 数据库
gbase 8a 数据库 SQL优化案例-关联顺序优化
gbase 8a 数据库 SQL优化案例-关联顺序优化
|
3月前
|
SQL 存储 Linux
从配置源到数据库初始化一步步教你在CentOS 7.9上安装SQL Server 2019
【11月更文挑战第16天】本文介绍了在 CentOS 7.9 上安装 SQL Server 2019 的详细步骤,包括配置系统源、安装 SQL Server 2019 软件包以及数据库初始化,确保 SQL Server 正常运行。
153 4