SQL DDL 数据定义语句
封面图
•
2025-09-23
•
SQL Server
380
0
0
0
SQL(Structured Query Language)中的 **DDL(Data Definition Language,数据定义语言)** 是用于定义或修改数据库结构的语句。它主要用于创建、修改和删除数据库对象,如表、索引、视图等。 以下是一些常见的 SQL DDL 语句及其用途: --- ### 1. `CREATE`:创建数据库对象 - **创建数据库**: ```sql CREATE DATABASE database_name; ``` - **创建表**: ```sql CREATE TABLE table_name ( column1 datatype constraints, column2 datatype constraints, ... ); ``` 示例: ```sql CREATE TABLE employees ( id INT PRIMARY KEY, name VARCHAR(100), age INT, salary DECIMAL(10,2) ); ``` - **创建索引**: ```sql CREATE INDEX index_name ON table_name (column); ``` - **创建视图**: ```sql CREATE VIEW view_name AS SELECT column1, column2 FROM table_name WHERE condition; ``` - **创建存储过程/函数**(某些数据库支持): ```sql CREATE PROCEDURE procedure_name AS BEGIN -- SQL statements END; ``` --- ### 2. `ALTER`:修改现有数据库对象 - **修改表结构**(添加列、修改列、删除列): ```sql ALTER TABLE table_name ADD column_name datatype; ALTER TABLE table_name DROP COLUMN column_name; ALTER TABLE table_name MODIFY column_name new_datatype; ``` - **重命名表**(部分数据库支持): ```sql ALTER TABLE old_table RENAME TO new_table; ``` - **添加约束**: ```sql ALTER TABLE table_name ADD CONSTRAINT constraint_name PRIMARY KEY (column); ``` --- ### 3. `DROP`:删除数据库对象 - **删除表**: ```sql DROP TABLE table_name; ``` - **删除数据库**: ```sql DROP DATABASE database_name; ``` - **删除索引**: ```sql DROP INDEX index_name ON table_name; ``` - **删除视图**: ```sql DROP VIEW view_name; ``` --- ### 4. `TRUNCATE`:清空表数据(不删除表结构) ```sql TRUNCATE TABLE table_name; ``` > 注意:`TRUNCATE` 比 `DELETE` 更快,但不能使用 `WHERE` 子句,且会重置自增列。 --- ### 常见数据类型(示例): | 数据类型 | 说明 | |----------|------| | `INT` | 整数 | | `VARCHAR(n)` | 可变长度字符串,最大 n 个字符 | | `CHAR(n)` | 固定长度字符串,n 个字符 | | `DATE` | 日期 | | `DATETIME` | 日期和时间 | | `DECIMAL(p, s)` | 精确小数,p 位总长度,s 位小数 | | `BOOLEAN` | 布尔值(True/False) | --- ### 示例:完整的 DDL 操作 ```sql -- 创建数据库 CREATE DATABASE company_db; -- 使用数据库 USE company_db; -- 创建表 CREATE TABLE employees ( id INT PRIMARY KEY, name VARCHAR(100) NOT NULL, department VARCHAR(50), salary DECIMAL(10,2) ); -- 添加新列 ALTER TABLE employees ADD email VARCHAR(255); -- 删除列 ALTER TABLE employees DROP COLUMN email; -- 删除表 DROP TABLE employees; ``` --- 如果你有特定的数据库系统(如 MySQL、PostgreSQL、SQL Server 等),某些 DDL 语法可能会略有不同。需要的话我可以提供对应系统的具体语法。
上一篇:
sql使用avg保留两位小数
下一篇:
SQL注入的原理?如何防御?
标题录入,一次不能超过6条
返回顶部
留言
留言
评论