优秀的编程知识分享平台

网站首页 > 技术文章 正文

SQL 基础学习创造和操作表(十五)(创建sql表例子)

nanyue 2024-09-03 16:30:51 技术文章 6 ℃

#文章首发挑战赛#

创建表

一般有两种创建表的方法

1、使用DBMS工具管理和创建数据库的表

2、直接用SQL语句操作

表创建基础

利用CREATE TABLE创建表,必须给出列的信息:

1、新表的名称,在CREATE TABLE后给出

2、表列的名称和定义,用逗号隔开

3、部分DBMS交互工具还需指定表的位置

create table ProductsNew(
  prod_id    char(10)      NOT NULL ,
  vend_id    char(10)      NOT NULL ,
  prod_name  char(255)     NOT NULL ,
  prod_price decimal(8,2)  NOT NULL ,
  prod_desc  text          NULL 
)

这里需要注意,在创建的表的时候必须在当前库中没有当前表名的,防止覆盖已有的表,如果已有需要新建,最好删除表再重新创建

使用NULL的注意事项

NULL值就是没值或者缺值,当允许NULL值的时候也必然允许不传值的时候。

每个表列要么是NULL,要不就是NOT NULL,这些状态在创建时由表的定义规定,如果不指定NOT NULL,就会默认为NULL,这里允许NULL的列不能设置为主键。

CREATE TABLE ProductsNew1(
  prod_id    char(10)      NOT NULL ,
  vend_id    char(10)      NOT NULL ,
  prod_name  char(255)   ,
  prod_price decimal(8,2) ,
  prod_desc  text          NULL 
)

prod_name和prod_price 默认为NULL

设置默认值

CREATE TABLE OrderItems1
(
  order_num  int          NOT NULL ,
  order_item int          NOT NULL ,
  prod_id    char(10)     NOT NULL ,
  quantity   int          NOT NULL DEFAULT 1,
  item_price decimal(8,2) NOT NULL 
);

DEFAULT 在建表的时候添加默认值规则,DEFAULT 1 设置了quantity 的默认值为1,

在插入数据的时候,如果没有设置quantity列的指定值,会默认填写为1

INSERT INTO OrderItems1(order_num, order_item, prod_id,  item_price)
VALUES(20005, 1, 'BR01',  5.49);

更新表

ALTER TABLE 更改表结构,必须给出下面信息

1、在ALTER TABEL 之后给出要更新的表名,表必须是存在的不然会报错

2、列出要做那些更改

ALTER TABLE  OrderItems1
ADD version_id char(10)

这里由于没有配置是否为NULL的列,系统会默认归类为NULL,如果需要必填最好明确指出该列NOT NULL

ALTER TABLE  OrderItems1
ADD version_id_not char(10) NOT NULL 

删除指定列

ALTER TABLE  OrderItems1
DROP COLUMN   version_id_not  

更新指定列名(这个一般不会用到)

ALTER TABLE OrderItems1      
CHANGE COLUMN version_id version_id_update char(10);

ALTER TABLE 表名      
CHANGE COLUMN 旧列明 新列明 类型;

使用ALTER TABLE的时候要非常小心,如果是复杂的表,建议新建表,然后用INSERT SELECT将数据拷贝过去。

如果非要使用ALTER TABLE,在使用用钱最好做好备份。

删除表

DROP TABLE  OrderItems1;

重名表

RENAME TABLE OrderItems1 TO OrderItems1New;
最近发表
标签列表