SQL语句之表操作
创建表:CREATE TABLE 语句#
CREATE TABLE 语句用于创建数据库中的表。表由行和列组成,每个表都必须有个表名。
CREATE DATABASE 语句用于创建数据库:CREATE DATABASE dbname;
语法#
CREATE TABLE table_name
(
column_name1 data_type(size),
column_name2 data_type(size),
column_name3 data_type(size),
....
);
column_name 参数规定表中列的名称。
data_type 参数规定列的数据类型(例如 varchar、integer、decimal、date 等等)。
size 参数规定表中列的最大长度。
提示:如需了解 MS Access、MySQL 和 SQL Server 中可用的数据类型,请访问数据类型参考手册。
实例#
创建一个名为 "Persons" 的表,包含五列:PersonID、LastName、FirstName、Address 和 City,使用下面的 CREATE TABLE 语句:
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 个字符。
提示:可使用 INSERT INTO 语句向空表写入数据。
更改表:ALTER TABLE 语句#
ALTER TABLE 语句用于在已有的表中添加、删除或修改列。
-
如需在表中添加列,请使用下面的语法:
ALTER TABLE table_name
ADD column_name datatype -
如需删除表中的列,请使用下面的语法(请注意,某些数据库系统不允许这种在数据库表中删除列的方式):
ALTER TABLE table_name
DROP COLUMN column_name -
要改变表中列的数据类型,请使用下面的语法:
-
SQL Server / MS Access:
ALTER TABLE table_name
ALTER COLUMN column_name datatype -
My SQL / Oracle:
ALTER TABLE table_name
MODIFY COLUMN column_name datatype -
Oracle 10G 之后版本:
ALTER TABLE table_name
MODIFY column_name datatype;
-
删除表:DROP TABLE 语句#
DROP TABLE 语句用于删除表:
DROP TABLE table_name
复制表:SELECT INTO 语句#
SELECT INTO 语句从一个表复制数据,然后把数据插入到另一个新表中。
MySQL 数据库不支持 SELECT ... INTO 语句,但支持 INSERT INTO ... SELECT(只拷贝表的数据,不拷贝表的结构,前提是新表已经存在)) 。
当然你可以使用AS语句来拷贝表结构及数据:CREATE TABLE 新表 AS SELECT * FROM 旧表
-
复制所有的列插入到新表中:
SELECT *
INTO newtable [IN externaldb]
FROM table1; -
复制希望的列插入到新表中:
SELECT column_name(s)
INTO newtable [IN externaldb]
FROM table1; -
只复制表结构到新表中(只需要添加促使查询没有数据返回的 WHERE 子句即可):
SELECT column_name(s)
INTO newtable [IN externaldb]
FROM table1;
提示:新表将会使用 SELECT 语句中定义的列名称和类型进行创建。您可以使用 AS 子句来应用新名称。
临时表#
局部临时表与全局临时表区别与示例:
- 局部临时表(#开头)只对当前连接有效,当前连接断开时自动删除。
- 全局临时表(##开头)对其它连接也有效,在当前连接和其他访问过它的连接都断开时自动删除。
- 不管局部临时表还是全局临时表,只要连接有访问权限,都可以用drop table #Tmp(或者drop table ##Tmp)来显式删除临时表。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!