暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

openGauss每日一练第14天 | 学习心得体会

原创 刘文秀 2022-12-07
266


学习目标

学习表的约束、表的默认值、自增类型等技术。


课后作业

1.创建表的时候定义列级约束

在列级定义了primary key约束(id列)和not null约束(name列)。

create table test001(id bigint primary key,name varchar(50) not null,age int );

--查看约束

\d test001

--插入数据

insert into test001 values(1,'user1',50);
insert into test001 values(1,'user1',50);        ## 会因为主键值冲突报错
insert into test001 values(2,'',50);                ##可以正常插入单引号的“空值”,查询此行仍需单引号的“空值”
insert into test001(id,age) values(3,50);        ##会因为 违反 name 列非空约束

--查看数据

select * from test001;



2.创建表的时候定义表级约束

表级定义了primary key约束(id列),在列级定义了not null约束(name列)。

DROP TABLE if exists test001;
create table test001(
id bigint,
name varchar(50) not null, -- 创建列级not null约束
age int,
primary key(id) -- 创建表级约束
);

\d test001



3.为表的属性定义默认值

在创建表的时候为表的某个列定义默认值

create table test002(
id bigint,
name varchar(28) not null,
age int default 20, -- 为该列定义默认值为20
primary key(id)
);

--在向表test插入数据时,没有提供age列的值,但可以查到之前设置的默认值

insert into test002(id,name) values(1,'user1');
select * from test002;


4.如果在创建表的时候,没有为某列定义默认值,缺省的默认值是空值null

--未定义age列的默认值,则将默认插入空值null

create table test003(id bigint,name varchar(50) not null,age int,primary key(id));
insert into test003(id,name) values(1,'user1');
select * from test003;


5.创建表时使用自增数据类型

商品的编号通常按顺序递增。这种情况可以使用serial数据类型。

create table invoice(invoicenum serial NOT NULL,name varchar(20));

\dt invoice

为表invoice插入3条记录,并查看插入数据后的表的数据

insert into invoice(name) values('user1');
insert into invoice(name) values('user2');
insert into invoice(name) values('user3');

可以看到每插入一条记录到表invoice后,列invoicenum的值会自增1。

select * from invoice;


6.使用现有的表创建新表

创建和旧表的表结构相同的新表,且 会 将旧表的数据拷贝给新表

CREATE TABLE invoice_new AS SELECT * FROM invoice;
SELECT * FROM invoice_new;


创建和旧表的表结构相同的新表,但 不会 将旧表的数据拷贝给新表

CREATE TABLE invoice_new2 AS SELECT * FROM invoice where 1=2;
SELECT * FROM invoice_new2;


「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论