如何在SQL中修剪数据

时间:2018-07-04 09:50:22

标签: mysql

我已经创建了一个表格。

CREATE TABLE Persons (
    PersonID int,
    LastName varchar(5),
    FirstName varchar(5),
    Address varchar(5),
    City varchar(5) 
);

我在那个表中插入了一个数据。

INSERT INTO Persons (PersonID,LastName,FirstName, Address,City )
VALUES ('1','TomBErichsen','Skagen212','Stavanger3','c4006333');

数据正在插入

1  TomBErichsen Skagen212 Stavanger3  c4006

但是我的问题是我创建了一个存储元素5。如果输入的数量超过5  VARCHAR 所有字符都被存储。我必须避免这种情况。数据应该这样存储

1 TomBe Skage  Stavan   c4006

超过5个字母。如果我输入的字母超过5个,则应删除数据。我该怎么办?

2 个答案:

答案 0 :(得分:0)

您使用 SUBSTRING()函数。

INSERT INTO Persons (PersonID,LastName,FirstName, Address,City )
VALUES ('1',SUBSTRING('TomBErichsen',1,5),SUBSTRING('Skagen212',1,5),SUBSTRING('Stavanger3',1,5),SUBSTRING('c4006333',1,5));

答案 1 :(得分:0)

首先,您应该知道char和var-char数据类型的区别是什么。因此,差异如下。

字符

  1. 固定长度。
  2. 最大字符长度为255。
  3. 它比Varchar快50%。
  4. Char正在使用静态存储器存储数据。

Varchar

  1. 用于存储长度可变的字母数字数据。
  2. 此数据类型最多可容纳MySQL 5.0.3之前的版本:255个字符。
  3. 在MySQL 5.0.3+中:该行共享65,535个字符。
  4. 比CHAR使用动态内存分配要慢。

在您的问题中,您可以使用如下所示的子字符串。

SUBSTR(str,pos,len)

  1. STR-从中返回子字符串的字符串。 POS-安
  2. 整数,指示字符串str中的字符串位置。 LEN-安
  3. 整数,表示要返回的字符数。

SUBSTR()函数与SUBSTRING()函数

SELECT SUBSTR('Buddhika',4,3);

结果是:

    mysql> SELECT SUBSTR('Buddhika',4,3);
+--------------------------+
| SUBSTR('Buddhika',4,3) |
+--------------------------+
| dhi                      | 
+--------------------------+
1 row in set (0.01 sec)

谢谢。