SQL 系列教程(五)

目录

SQL CREATE DATABASE 语句

SQL CREATE DATABASE 语句

CREATE DATABASE 实例

SQL DROP DATABASE 语句

SQL DROP DATABASE 语句

DROP DATABASE 实例

SQL Server 的 SQL 数据库备份

SQL 完整备份

SQL 差异备份

完整备份实例

差异备份实例

SQL CREATE TABLE 语句

SQL CREATE TABLE 语句

CREATE TABLE 实例

使用另一个表创建表

SQL DROP TABLE 语句

SQL DROP TABLE 语句

DROP TABLE 实例

TRUNCATE TABLE 语句

SQL ALTER TABLE 语句

SQL ALTER TABLE 语句

ALTER TABLE - 添加列

ALTER TABLE - 删除列

ALTER TABLE - 修改列

SQL ALTER TABLE 实例

更新 数据类型 实例

删除实例

SQL 约束 (Constraints)

SQL 创建约束

SQL 约束

SQL NOT NULL 约束

SQL NOT NULL 约束

创建表时不为空

修改表时不为空

SQL UNIQUE 约束

SQL UNIQUE 约束

创建表时的 UNIQUE 约束

修改表时的 UNIQUE 约束

撤销 UNIQUE 约束

SQL PRIMARY KEY 约束

SQL PRIMARY KEY 约束

创建表时的 PRIMARY KEY 约束

修改表时的 PRIMARY KEY 约束

撤销 PRIMARY KEY 约束


SQL CREATE DATABASE 语句

SQL CREATE DATABASE 语句

CREATE DATABASE 语句用于创建新的SQL数据库。

【语法】

CREATE DATABASE databasename;

CREATE DATABASE 实例

以下SQL语句创建一个名为 "testDB" 的数据库:

【实例】

CREATE DATABASE testDB;

注: 在创建任何数据库之前,请确保您具有管理员权限。创建数据库后,可以使用以下SQL命令在数据库列表中检查它: SHOW DATABASES;

SQL DROP DATABASE 语句

SQL DROP DATABASE 语句

DROP DATABASE 语句用于删除现有SQL数据库。

【语法】

DROP DATABASE databasename;

注: 删除数据库之前要小心。删除数据库将导致数据库中存储的完整信息丢失!

DROP DATABASE 实例

以下SQL语句删除现有数据库 "testDB":

【实例】

DROP DATABASE testDB;

SQL Server 的 SQL 数据库备份

SQL 完整备份

BACKUP DATABASE 语句在SQL Server中用于创建现有SQL数据库的完整备份。

【语法】

BACKUP DATABASE databasename
TO DISK = 'filepath';

SQL 差异备份

差异备份仅备份自上次完整数据库备份以来已更改的数据库部分。

【语法】

BACKUP DATABASE databasename
TO DISK = 'filepath'
WITH DIFFERENTIAL;

完整备份实例

以下SQL语句将现有数据库 "testDB" 的完整备份创建到 D 盘:

【实例】

BACKUP DATABASE testDB
TO DISK = 'D:\backups\testDB.bak';

注: 始终要将数据库备份到与实际数据库不同的驱动器。如果发生磁盘崩溃,则不会丢失全部备份文件和数据库。

差异备份实例

以下SQL语句创建数据库 "testDB" 的差异备份:

【实例】

BACKUP DATABASE testDB
TO DISK = 'D:\backups\testDB.bak'
WITH DIFFERENTIAL;

注: 差异备份缩短了备份时间(因为只备份更改)。

SQL CREATE TABLE 语句

SQL CREATE TABLE 语句

CREATE TABLE 语句用于在数据库中创建新表。

【语法】

CREATE TABLE table_name (
    column1 datatype,
    column2 datatype,
    column3 datatype,
   ....
);

column1 参数指定表中列的名称。

datatype 参数指定列可以保存的数据类型(例如varchar、integer、date等)。

CREATE TABLE 实例

以下示例创建了一个名为"Persons"的表,该表包含五列:PersonID、LastName、FirstName、Address 和 City:

【实例】

CREATE TABLE Persons (
    PersonID int,
    LastName varchar(255),
    FirstName varchar(255),
    Address varchar(255),
    City varchar(255)
);

PersonID 列的类型为 int,将包含一个整数。

LastName、FirstName、Address和City列的类型为 varchar,将包含字符,这些字段的最大长度为255个字符。

空的 "Persons" 表类似这样:

PersonID LastName FirstName Address City

注: 可使用 INSERT INTO 语句向空表写入数据。

使用另一个表创建表

还可以使用 CREATE TABLE 创建现有表的副本。

新表获得相同的列定义。可以选择所有列或特定列。

如果使用现有表创建新表,则新表将使用旧表中的现有值填充。

【语法】

CREATE TABLE new_table_name AS
    SELECT column1, column2,...
    FROM existing_table_name
    WHERE ....;

下面的SQL创建了一个名为"TestTables"的新表(它是"Customers"表的副本):

【实例】

CREATE TABLE TestTable AS
SELECT customername, contactname
FROM customers;

SQL DROP TABLE 语句

SQL DROP TABLE 语句

DROP TABLE 语句用于删除数据库中的现有表。

【语法】

DROP TABLE table_name;

注: 删除表前要小心。删除表将导致表中存储的完整信息丢失!

DROP TABLE 实例

以下SQL语句删除现有表"Shippers":

【实例】

DROP TABLE Shippers;

TRUNCATE TABLE 语句

TRUNCATE TABLE 语句用于清空表中的数据,但不删除表本身。

【语法】

TRUNCATE TABLE table_name;

SQL ALTER TABLE 语句

SQL ALTER TABLE 语句

ALTER TABLE 语句用于添加、删除或修改现有表中的列。

ALTER TABLE 语句还用于添加和删除现有表上的各种约束。

ALTER TABLE - 添加列

要在表中添加列,请使用以下语法:

ALTER TABLE table_name
ADD column_name datatype;

以下SQL将"Email"列添加到"Customers"表中:

【实例】

ALTER TABLE Customers
ADD Email varchar(255);

ALTER TABLE - 删除列

要删除表中的列,请使用以下语法(请注意,某些数据库系统不允许删除列):

ALTER TABLE table_name
DROP COLUMN column_name;

以下SQL从"Customers" 表中删除 "Email" 列:

【实例】

ALTER TABLE Customers
DROP COLUMN Email;

ALTER TABLE - 修改列

要更改表中列的数据类型,请使用以下语法:

【SQL Server / MS Access】

ALTER TABLE table_name
ALTER COLUMN column_name datatype;

【My SQL / Oracle (prior version 10G)】

ALTER TABLE table_name
MODIFY COLUMN column_name datatype;

【Oracle 10G and later】

ALTER TABLE table_name
MODIFY column_name datatype;

SQL ALTER TABLE 实例

请看 "Persons" 表:

ID LastName FirstName Address City
1 Hansen Ola Timoteivn 10 Sandnes
2 Svendson Tove Borgvn 23 Sandnes
3 Pettersen Kari Storgt 20 Stavanger

现在我们想在"Persons"表中添加一个名为"DateOfBirth"的列。

我们使用以下SQL语句:

ALTER TABLE Persons
ADD DateOfBirth date;

注:请注意,新列"DateOfBirth"的类型为date,将保存一个日期。数据类型指定列可以保存的数据类型。

现在,"Persons" 表将如下所示:

ID LastName FirstName Address City DateOfBirth
1 Hansen Ola Timoteivn 10 Sandnes
2 Svendson Tove Borgvn 23 Sandnes
3 Pettersen Kari Storgt 20 Stavanger

更新 数据类型 实例

现在我们要更改"Persons"表中名为"DateOfBirth"的列的数据类型。

我们使用以下SQL语句:

ALTER TABLE Persons
ALTER COLUMN DateOfBirth year;

注:请注意,"DateOfBirth" 列现在是 year 类型,将以两位数或四位数的格式保存一年。

删除实例

接下来,我们要删除"Persons"表中名为"DateOfBirth"的列。

我们使用以下SQL语句:

ALTER TABLE Persons
DROP COLUMN DateOfBirth;

现在,"Persons" 表将如下所示:

ID LastName FirstName Address City
1 Hansen Ola Timoteivn 10 Sandnes
2 Svendson Tove Borgvn 23 Sandnes
3 Pettersen Kari Storgt 20 Stavanger

SQL 约束 (Constraints)

SQL 约束用于为表中的数据指定规则。

SQL 创建约束

可以在使用 CREATE TABLE 语句创建表时或在使用 ALTER TABLE 语句创建表之后指定约束。

【语法】

CREATE TABLE table_name (
    column1 datatype constraint,
    column2 datatype constraint,
    column3 datatype constraint,
    ....
);

SQL 约束

SQL 约束用于为表中的数据指定规则。

约束用于限制可以进入表中的数据类型。这确保了表中数据的准确性和可靠性。如果约束和数据操作之间存在任何冲突,则操作将中止。

约束可以是列级或表级。列级约束应用于列,表级约束应用于整个表。

SQL 中通常使用以下约束:

NOT NULL - 指示某列不能存储 NULL 值。

UNIQUE - 保证某列的每行必须有唯一的值。

PRIMARY KEY - NOT NULL 和 UNIQUE 的结合。确保某列(或两个列多个列的结合)有唯一标识,有助于更容易更快速地找到表中的一个特定的记录。

FOREIGN KEY - 保证一个表中的数据匹配另一个表中的值的参照完整性。

CHECK - 保证列中的值符合指定的条件。

DEFAULT - 规定没有给列赋值时的默认值。

INDEX - 索引用于非常快速地从数据库中创建和检索数据。

SQL NOT NULL 约束

SQL NOT NULL 约束

默认情况下,列可以包含 NULL 空值。

NOT NULL 约束强制列不接受 NULL 值。

NOT NULL 约束强制字段始终包含值。这意味着,如果不向字段添加值,就无法插入新记录或者更新记录。

创建表时不为空

以下SQL确保在创建"Persons"表时,"ID"、"LastName"和"FirstName"列不接受空值:

【实例】

CREATE TABLE Persons (
    ID int NOT NULL,
    LastName varchar(255) NOT NULL,
    FirstName varchar(255) NOT NULL,
    Age int
);

修改表时不为空

要在已创建"Persons"表的"Age"列上创建 NOT NULL 约束,请使用以下 SQL:

ALTER TABLE Persons
MODIFY Age int NOT NULL;

SQL UNIQUE 约束

SQL UNIQUE 约束

UNIQUE 约束唯一标识数据库表中的每条记录。

UNIQUE 和 PRIMARY KEY 约束均为列或列集合提供了唯一性的保证。

PRIMARY KEY 拥有自动定义的 UNIQUE 约束。

请注意,每个表可以有多个 UNIQUE 约束,但是每个表只能有一个 PRIMARY KEY 约束。

创建表时的 UNIQUE 约束

以下 SQL 在创建"Persons"表时,在"ID"列上创建唯一约束:

【SQL Server / Oracle / MS Access】

CREATE TABLE Persons (
    ID int NOT NULL UNIQUE,
    LastName varchar(255) NOT NULL,
    FirstName varchar(255),
    Age int
);

【MySQL】

CREATE TABLE Persons (
    ID int NOT NULL,
    LastName varchar(255) NOT NULL,
    FirstName varchar(255),
    Age int,
    UNIQUE (ID)
);

要命名唯一约束,并在多个列上定义唯一约束,请使用以下SQL语法:

【MySQL / SQL Server / Oracle / MS Access】

CREATE TABLE Persons (
    ID int NOT NULL,
    LastName varchar(255) NOT NULL,
    FirstName varchar(255),
    Age int,
    CONSTRAINT UC_Person UNIQUE (ID,LastName)
);

修改表时的 UNIQUE 约束

要在已创建表的 "ID" 列上创建唯一约束,请使用以下 SQL:

【MySQL / SQL Server / Oracle / MS Access】

ALTER TABLE Persons
ADD UNIQUE (ID);

要命名唯一约束,并在多个列上定义唯一约束,请使用以下SQL语法:

【MySQL / SQL Server / Oracle / MS Access】

ALTER TABLE Persons
ADD CONSTRAINT UC_Person UNIQUE (ID,LastName);

撤销 UNIQUE 约束

如需撤销 UNIQUE 约束,请使用下面的 SQL:

【MySQL】

ALTER TABLE Persons
DROP INDEX UC_Person;

【SQL Server / Oracle / MS Access】

ALTER TABLE Persons
DROP CONSTRAINT UC_Person;

SQL PRIMARY KEY 约束

SQL PRIMARY KEY 约束

PRIMARY KEY 约束唯一标识数据库表中的每条记录。

主键必须包含唯一的值。主键列不能包含 NULL 值。

每个表都应该有一个主键,并且每个表只能有一个主键。

创建表时的 PRIMARY KEY 约束

下面的 SQL 在 "Persons" 表创建时在 "ID" 列创建 PRIMARY KEY 约束:

【MySQL】

CREATE TABLE Persons (
    ID int NOT NULL,
    LastName varchar(255) NOT NULL,
    FirstName varchar(255),
    Age int,
    PRIMARY KEY (ID)
);

【SQL Server / Oracle / MS Access】

CREATE TABLE Persons (
    ID int NOT NULL PRIMARY KEY,
    LastName varchar(255) NOT NULL,
    FirstName varchar(255),
    Age int
);

如果需要命名 PRIMARY KEY 约束,以及为多个列定义 PRIMARY KEY 约束,请使用下面的 SQL 语法:

【MySQL / SQL Server / Oracle / MS Access】

CREATE TABLE Persons (
    ID int NOT NULL,
    LastName varchar(255) NOT NULL,
    FirstName varchar(255),
    Age int,
    CONSTRAINT PK_Person PRIMARY KEY (ID,LastName)
);

注: 在上面的示例中,只有一个主键(PK_Person)。但是,主键的值由两列组成(ID+LastName)。

修改表时的 PRIMARY KEY 约束

如果在表已存在的情况下为 "ID" 列创建 PRIMARY KEY 约束,请使用下面的 SQL:

【MySQL / SQL Server / Oracle / MS Access】

ALTER TABLE Persons
ADD PRIMARY KEY (ID);

如果需要命名 PRIMARY KEY 约束,以及为多个列定义 PRIMARY KEY 约束,请使用下面的 SQL 语法:

【MySQL / SQL Server / Oracle / MS Access】

ALTER TABLE Persons
ADD CONSTRAINT PK_Person PRIMARY KEY (ID,LastName);

注: 如果您使用 ALTER TABLE 语句添加主键,必须把主键列声明为不包含 NULL 值(在表首次创建时)。

撤销 PRIMARY KEY 约束

如需撤销 PRIMARY KEY 约束,请使用下面的 SQL:

【MySQL】

ALTER TABLE Persons
DROP PRIMARY KEY;

【SQL Server / Oracle / MS Access】

ALTER TABLE Persons
DROP CONSTRAINT PK_Person;

你可能感兴趣的:(SQL系列教程,SQL,教程,资料,笔记)