Home SQL语句的一些语法细节(SQL SERVER语句)
Post
Cancel

SQL语句的一些语法细节(SQL SERVER语句)

1.SQL ORDER BY 关键字

ORDER BY 关键字用于对结果集按照一个列或者多个列进行排序。

ORDER BY 关键字默认按照升序对记录进行排序。如果需要按照降序对记录进行排序,您可以使用 DESC 关键字

SQL ORDER BY 语法

SELECT column_name,column_name
FROM table_name
ORDER BY column_name1,column_name2 ASC|DESC;

–ASC表示升序,DESC表示降序

–使用order by语句时应放在所有语句的最后使用,并且排序多个列时先排column_name1再column_name2…

2.删除所有数据(delete和drop table)

您可以在不删除表的情况下,删除表中所有的行。这意味着表结构、属性、索引将保持不变:DELETE FROM table_name;

DELETE * FROM table_name;

注释:在删除记录时要格外小心!因为您不能重来!

DROP TABLE 语句

DROP TABLE 语句用于删除表。DROP TABLE table_name

注释:与delete不同的是drop table 会删除表数据和结果,也是不可逆的!


DROP DATABASE 语句

DROP DATABASE 语句用于删除数据库。DROP DATABASE database_name


TRUNCATE TABLE 语句

如果我们仅仅需要删除表内的数据,但并不删除表本身,那么我们该如何做呢?

请使用 TRUNCATE TABLE 语句:TRUNCATE TABLE table_name

3.SQL JOIN

SQL join 用于把来自两个或多个表的行结合起来。

下图展示了 LEFT JOIN、RIGHT JOIN、INNER JOIN、OUTER JOIN 相关的 7 种用法。

  • INNER JOIN:如果表中有至少一个匹配,则返回行(INNER JOIN 与 JOIN 是相同的)
  • LEFT JOIN:即使右表中没有匹配,也从左表返回所有的行
  • RIGHT JOIN:即使左表中没有匹配,也从右表返回所有的行
  • FULL JOIN:只要其中一个表中存在匹配,则返回行

注释:SQL中的join语句其实对应数据库理论中的连接概念,left join、right join和inner join对应自然连接,full join对应笛卡尔积

4.SQL 约束(Constraints)

1
2
3
4
5
6
7
8
9
CREATE TABLE table_name
(
column_name1 data_type(size) constraint_name,
column_name2 data_type(size) constraint_name,
column_name3 data_type(size) constraint_name,
....
);

  • NOT NULL – 指示某列不能存储 NULL 值。
  • UNIQUE – 保证某列的每行必须有唯一的值。(一个表可以有多个UNIQUE约束但只能有一个primary key,primary key自动包含unique约束)
  • PRIMARY KEY – NOT NULL 和 UNIQUE 的结合。确保某列(或两个列多个列的结合)有唯一标识,有助于更容易更快速地找到表中的一个特定的记录。(主键)
  • FOREIGN KEY – 保证一个表中的数据匹配另一个表中的值的参照完整性。(外键)
  • CHECK – 保证列中的值符合指定的条件。
  • DEFAULT – 规定没有给列赋值时的默认值。

5.AUTO INCREMENT 字段

我们通常希望在每次插入新记录时,自动地创建主键字段的值。

我们可以在表中创建一个 auto-increment 字段。

下面的 SQL 语句把 “Persons” 表中的 “ID” 列定义为 auto-increment 主键字段:CREATE TABLE Persons

1
2
3
4
5
6
7
8
9
(
ID int IDENTITY(1,1) PRIMARY KEY,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)

在上面的实例中,IDENTITY 的开始值是 1,每条新记录递增 1。

提示:要规定 “ID” 列以 10 起始且递增 5,请把 identity 改为 IDENTITY(10,5)。

要在 “Persons” 表中插入新记录,我们不必为 “ID” 列规定值(会自动添加一个唯一的值):

1
2
3
4
INSERT INTO Persons (FirstName,LastName)
VALUES ('Lars','Monsen')

上面的 SQL 语句会在 “Persons” 表中插入一条新记录。”ID” 列会被赋予一个唯一的值。”FirstName” 列会被设置为 “Lars”,”LastName” 列会被设置为 “Monsen”。

6.触发器

参见:SqlServer基础之(触发器) – wangchuang2017 – 博客园 (cnblogs.com)

This post is licensed under CC BY 4.0 by the author.

关于在使用navicat连接SQL server的一些问题

Win11官方安卓子系统安装