服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|数据库技术|

服务器之家 - 数据库 - Mysql - 如何创建一个创建MySQL数据库中的datetime类型

如何创建一个创建MySQL数据库中的datetime类型

2022-10-10 16:54瀚高实验室 Mysql

这篇文章主要介绍了如何创建一个创建MySQL数据库中的datetime类型,创建一个datetime类型的方法以及create domain 和create type的用法和区别,需要的朋友可以参考一下

环境系统平台:Microsoft Windows (64-bit) 10版本:4.5

瀚高数据库中支持使用以下语句创建用户定义的数据类型:

  • ​CREATE DOMAIN​:它创建了一个用户定义的数据类型,可以有可选的约束,基于其他基本类型,实质是定义一个域。
  • ​CREATE TYPE​:它通常用于使用存储过程创建复合类型(两种或多种数据类型混合的数据类型)。

一、domain用法及示例

假如有以下表结构:

?
1
create table test_domain (id varchar,md5 text not null check(length(md5)=32));

其中md5列的类型及约束,可以定义一个domain来抽象,如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
highgo=# create domain md5 as
 
highgo-# text not null
 
highgo-# check (
 
highgo(#     length(value) = 32
 
highgo(# );
 
CREATE DOMAIN
 
highgo=# 
 
highgo=# \dD md5
 
                                  List of domains
 
 Schema | Name | Type | Collation | Nullable | Default |           Check            
 
--------+------+------+-----------+----------+---------+----------------------------
 
 public | md5  | text |           | not null |         | CHECK (length(VALUE) = 32)
 
(1 row)
 
highgo=# create table test_domain (id varchar,md5 md5);
 
CREATE TABLE
 
highgo=# insert into test_domain values('1','2');
 
ERROR:  value for domain md5 violates check constraint "md5_check"
 
highgo=# insert into test_domain values('2','76a2173be6393254e72ffa4d6df1030a');
 
INSERT 0 1

二、创建MySQL中datetime类型

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
highgo=# create domain datetime as timestamp without time zone;
 
highgo=# create table t_time (id int,create_time datetime);
 
CREATE TABLE
 
highgo=# \d+ t_time
 
                                     Table "public.t_time"
 
   Column    |   Type   | Collation | Nullable | Default | Storage | Stats target | Description 
 
-------------+----------+-----------+----------+---------+---------+--------------+-------------
 
 id          | integer  |           |          |         | plain   |              | 
 
 create_time | datetime |           |          |         | plain   |              | 
 
Access method: heap
 
highgo=# insert into t_time values (1,now()),(2,now());
 
INSERT 0 2
 
highgo=# 
 
highgo=# select * from t_time;
 
 id |        create_time         
 
----+----------------------------
 
  1 | 2021-08-03 19:28:11.207324
 
  2 | 2021-08-03 19:28:11.207324
 
(2 rows)

三、create type用法及示例

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
CREATE TYPE name AS
 
    ( [ attribute_name data_type [ COLLATE collation ] [, ... ] ] )
 
CREATE TYPE name AS ENUM
 
    ( [ 'label' [, ... ] ] )
 
CREATE TYPE name AS RANGE (
 
    SUBTYPE = subtype
 
    [ , SUBTYPE_OPCLASS = subtype_operator_class ]
 
    [ , COLLATION = collation ]
 
    [ , CANONICAL = canonical_function ]
 
    [ , SUBTYPE_DIFF = subtype_diff_function ]
 
)
 
CREATE TYPE name (
 
    INPUT = input_function,
 
    OUTPUT = output_function
 
    [ , RECEIVE = receive_function ]
 
    [ , SEND = send_function ]
 
    [ , TYPMOD_IN = type_modifier_input_function ]
 
    [ , TYPMOD_OUT = type_modifier_output_function ]
 
    [ , ANALYZE = analyze_function ]
 
    [ , INTERNALLENGTH = { internallength | VARIABLE } ]
 
    [ , PASSEDBYVALUE ]
 
    [ , ALIGNMENT = alignment ]
 
    [ , STORAGE = storage ]
 
    [ , LIKE = like_type ]
 
    [ , CATEGORY = category ]
 
    [ , PREFERRED = preferred ]
 
    [ , DEFAULT = default ]
 
    [ , ELEMENT = element ]
 
    [ , DELIMITER = delimiter ]
 
    [ , COLLATABLE = collatable ]
 
)
 
CREATE TYPE name

创建示例:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
CREATE TYPE compfoo AS (f1 int, f2 text);
 
CREATE FUNCTION getfoo() RETURNS SETOF compfoo AS $$
 
    SELECT fooid, fooname FROM foo
 
$$ LANGUAGE SQL;
 
CREATE TYPE bug_status AS ENUM ('new', 'open', 'closed');
 
CREATE TABLE bug (
 
    id serial,
 
    description text,
 
    status bug_status
 
);
 
CREATE TYPE float8_range AS RANGE (subtype = float8, subtype_diff = float8mi);

到此这篇关于如何创建一个创建MySQL数据库中的datetime类型的文章就介绍到这了,更多相关创建datetime类型内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://blog.51cto.com/u_13646489/5116455

延伸 · 阅读

精彩推荐
  • Mysqlsql语句中like的用法详细解析

    sql语句中like的用法详细解析

    以下是对sql语句中like的用法进行了详细的分析介绍,需要的朋友可以过来参考下 ...

    MYSQL教程网5672020-01-08
  • Mysql关于case when语句的报错问题详解

    关于case when语句的报错问题详解

    SQL CASE 表达式是一种通用的条件表达式,类似于其它语言中的 if/else 语句,下面这篇文章主要给大家介绍了关于case when语句的报错问题的相关资料,文中通...

    一直是小学生6802019-06-29
  • Mysql如何使用mysqladmin获取一个mysql实例当前的TPS和QPS

    如何使用mysqladmin获取一个mysql实例当前的TPS和QPS

    这篇文章主要介绍了如何使用mysqladmin这个工具来获取一个mysql实例当前的TPS和QPS,帮助大家更好的管理数据库,感兴趣的朋友可以了解下...

    AsiaYe10582021-03-02
  • MysqlMySQL入门(四) 数据表的数据插入、更新、删除

    MySQL入门(四) 数据表的数据插入、更新、删除

    这篇文章主要介绍了mysql数据库中表的插入、更新、删除非常简单,但是简单的也要学习,细节决定成败,需要的朋友可以参考下...

    一杯凉茶4072020-09-02
  • Mysqlmysql索引失效的十大问题小结

    mysql索引失效的十大问题小结

    最近生产爆出一条慢sql,原因是用了or和!=,导致索引失效。于是,总结了索引失效的十大杂症,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    授人以鱼8472021-09-30
  • MysqlMySQL数据库完全备份与增量备份详解

    MySQL数据库完全备份与增量备份详解

    这篇文章主要介绍了MySQL数据库完全备份与增量备份详解,完全备份就是将数据库中的数据及所有对象全部备份,具体详细内容需要的朋友可以参考一下...

    My25387722706652022-08-10
  • MysqlMySQL8.0.20安装教程及其安装问题详细教程

    MySQL8.0.20安装教程及其安装问题详细教程

    这篇文章主要介绍了MySQL8.0.20安装教程及其安装问题处理,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值...

    Al Hg4482021-01-16
  • Mysqlmysql优化limit查询语句的5个方法

    mysql优化limit查询语句的5个方法

    这篇文章主要介绍了mysql优化limit查询语句的5个方法,它们分别是子查询优化法、倒排表优化法、反向查找优化法、limit限制优化法和只查索引法,需要的朋友...

    MYSQL教程网4142020-04-10