Heim >Datenbank >MySQL-Tutorial >Was sind die erweiterten Abfragefunktionen von MySQL?

Was sind die erweiterten Abfragefunktionen von MySQL?

coldplay.xixi
coldplay.xixiOriginal
2020-10-13 15:34:583020Durchsuche

Erweiterte MySQL-Abfragefunktionen: 1. String-Funktion; 2. Numerische Funktion, [CEIL(x)] gibt den kleinsten ganzzahligen Wert zurück, der nicht kleiner als X ist. 3. Datumsfunktion, [DATE_ADD/DATE_SUB] usw.

Was sind die erweiterten Abfragefunktionen von MySQL?

Erweiterte MySQL-Abfragefunktion:

Funktionsklassifizierung:

1, einzeilige Funktion: Berechnen Sie den Eingabewert jedes Datensatzes, erhalten Sie das entsprechende Berechnungsergebnis und geben Sie es an den Benutzer zurück Das heißt, jeder Datensatz wird als Eingabeparameter verwendet und das Berechnungsergebnis jedes Datensatzes wird durch Funktionsberechnung erhalten.

2. Mehrzeilige Funktion: Berechnen Sie die Eingabewerte mehrerer Datensätze und erhalten Sie ein einzelnes Ergebnis, das mehreren Datensätzen entspricht.

Einzeilige Funktion:

①: Zeichenfolgenfunktion (Benutzer verarbeiten einzeilige Zeichendaten wie Groß-/Kleinschreibung, Zeichenfolgenabfang, Assemblierung usw.)

a.LOWER/UPPER(LOWER( str): Gibt die Zeichenfolge zurück, in der die Zeichenfolge str in Kleinbuchstaben geändert wurde. UPPER(str): Gibt die Zeichenfolge zurück, in der die Zeichenfolge str in Großbuchstaben geändert wurde.  

SELECT UPPER(name) FROM student; //全部大写
SELECT LOWER(name) FROM student; //全部小写

b.CONCAT: CONCAT(str1,str2 ,...):

 1. Das Rückgabeergebnis ist die durch die Verbindungsparameter generierte Zeichenfolge.

 2. Wenn ein Parameter NULL ist, ist der Rückgabewert NULL

 3. Ein oder mehrere Parameter sind zulässig

SELECT name,age, CONCAT(name,'-',age) FROM student;

c.INSERT: Ersetzen Sie den angegebenen Teilstring (Position, Länge) durch den Zielstring 格 Format: Einfügen (STR, POS, Len, Newstr)

Parameter: STR: (Quellzeichenfolge) POS: (Beginnend mit der Startposition, der Index beginnt bei 1) Len: (ersetzen Sie die Länge der Zeichenfolge) newstr: (Zeichenfolge bis eingefügt werden)

1. Geben Sie den String str zurück, dessen Teilstring an der pos-Position beginnt und die Länge len Zeichen beträgt, ersetzt durch den String newstr.

     2. Wenn pos die Zeichenfolgenlänge überschreitet, ist der Rückgabewert die ursprüngliche Zeichenfolge.

     3. Wenn die Länge von len größer ist als die Länge anderer Strings, beginnt die Ersetzung ab Position pos.

      4. Wenn ein Parameter null ist, ist der Rückgabewert NULL

Beispiel:

Ersetzen Sie einige Zeichen des Benutzernamens. Die Regeln lauten wie folgt: Behalten Sie die ersten beiden Ziffern des Benutzernamens bei und verwenden Sie * zum Ersetzen die mittleren 3 Ziffern. Wenn der Name noch zusätzliche Zeichen hat, sind reserviert

SELECT  INSERT(name,2,3,'***')  FROM student;

d.①LENGTH: Die Anzahl der von der Zeichenfolge belegten Bytes

SELECT LENGTH(name) FROM student;
②CHAR_LENGTH: Berechnen Sie die Anzahl der Zeichen

SELECT CHAR_LENGTH(name) FROM student;
e: LPAD /RPAD: Wenn die Anzahl der Zeichen in der Zeichenfolge größer als die angegebene Zahl ist. Wenn sie kleiner ist, wird die angegebene Zahl von der durch die Funktion angegebenen Seite aus eingefügt. Wenn sie größer ist, wird sie am Ende der Zeichenfolge abgeschnitten

  LPAD(str,len,padstr): linke Auffüllung

  1, Rückgabezeichenfolge str, deren linke Seite mit der Zeichenfolge padstr auf eine Gesamtlänge von len aufgefüllt wird.

  2. Wenn die Länge von str größer als len ist, wird der Rückgabewert auf len-Zeichen gekürzt.

SELECT LPAD(NAME,10,'*')  FROM student;

Ergebnisanzeige:

  RPAD(str,len,padstr): Rechtes Auffüllen

  1, gibt die Zeichenfolge str zurück, deren rechte Seite mit der Zeichenfolge padstr auf die Länge von len-Zeichen aufgefüllt wird.

  2. Wenn die Länge der Zeichenfolge str größer als len ist, wird der Rückgabewert auf die gleiche Länge wie len-Zeichen gekürzt.

SELECT RPAD(NAME,10,'*')  FROM student;

f:TRIM/LTRIM/RTRIM

LTRIM (str): Der linke Raum wird gekürzt;

RTRIM (str): Der rechte Raum wird gekürzt;

TRIM(str)=LTRIM+RTRIM

TRIM( [{BOTH |. TRAILING} [remstr] FROM] str)

Erweiterte Verwendung, remstr von str auf die angegebene Weise abfangen;

TRIM(remstr FROM] str): entspricht TRIM(BOTH remstr FROM str);

SELECT TRIM(name), CHAR_LENGTH(TRIM(name)), CHAR_LENGTH(name) FROM student;
#去掉字符串中两端的指定子字符串
SELECT TRIM('ja' FROM name) FROM student;
                            ||(等价于)
SELECT TRIM(BOTH 'ja' FROM name) FROM student;        
# 去掉头
SELECT TRIM(LEADING 'ja' FROM name) FROM student;
# 去掉尾
SELECT TRIM(TRAILING 'ja' FROM name) FROM student;

g:REPLACE

  REPLACE(str,from_str,to_str):

 1. Ersetzen Sie alle from_str durch to_str in str;

 2. Groß- und Kleinschreibung beachten;

# 选择性的替换
# 当某一条的记录中的字段值和第二个参数的值相等的时候
#把这个字段值替换成字三个参数
SELECT REPLACE(name,'rose','niceMan') FROM student;

h:SUBSTRING(str, pos):

Gibt einen Teilstring aus dem String str zurück, beginnend an Position pos

SUBSTRING (str, pos, len):

Gibt einen Teilstring mit der gleichen Länge wie len Zeichen aus dem String str zurück, beginnend an Position pos

If pos ist eine negative Zahl, die Berechnung beginnt am Ende der Zeichenfolge;

# 从指定的位置开始,截取到最后
SELECT SUBSTR(name,2) FROM student;
# 从指定的位置截取指定的长度的子字符串
SELECT SUBSTR(name,2,3) FROM student;

②: Numerische Funktion

a.ABS/MOD ABS (x): Gibt den absoluten Wert einer Zahl zurück; M): Gibt den Rest (Modulo) nach Division von N durch M zurück;

SELECT ABS(-13);   //取绝对值
SELECT MOD(10,3);//取模

b.CELT/FLOOR/ROUND/TRUNCATE

CEIL(x): Gibt den kleinsten ganzzahligen Wert zurück, der nicht kleiner als (x): Gibt den größten ganzzahligen Wert zurück, der nicht größer als die nächste ganze Zahl ist.

  2,在有两个参数的情况下,返回X ,其值保留到小数点后D位,而第D位的保留方式为四舍五入。

  3,若要接保留X值小数点左边的D 位,可将 D 设为负值。

 

SELECT ROUND(3.2228,2);    返回3.22

  TRUNCATE(X,D)

  1,返回被舍去至小数点后D位的数字X。

  2,若D 的值为 0, 则结果不带有小数点或不带有小数部分。可以将D设为负数,若要截去(归零) X小数点左起第D位开始后面所有

SELECT TRUNCATE(3.456,1)    返回3.4

③:日期函数

a:DATE_ADD/DATE_SUB

  TYPE:SECOND ,MINUTE ,HOUR ,DAY ,WEEK ,MONTH ,YEAR

  1,执行日期运算;

  2,date 是一个 DATETIME 或DATE值,用来指定起始时间;

  3,expr 是一个字符串表达式,用来指定从起始日期添加或减去的时间间隔值;

  4,type 为关键词,它指示了表达式被解释的方式

  DATE_ADD(date,INTERVAL expr type)

  DATE_SUB(date,INTERVAL expr type)

SELECT DATE_ADD(CURDATE(),INTERVAL 1 DAY)

SELECT DATE_SUB(CURDATE(),INTERVAL 1 DAY)

b:DATEDIFF(expr,expr2):返回起始时间expr和结束时间expr2之间的天数

#计算两个日期的差值, 计算结果的单位是·天·

SELECT DATEDIFF('2017-03-21','2017-03-10')

c:DateTime_module (YEAR,DAY,LAST_DAY,MONTH,HOUR,MINUTE)

# 获取某个日期的模块的值, 年,月日时分秒
SELECT DAY(now())
SELECT DAYOFMONTH(now())
SELECT DAYOFWEEK(now())
SELECT DAYOFYEAR(now())
SELECT now()
SELECT HOUR(now())
SELECT MINUTE(now())

e:UNIX_TIMESTAMP/FROM_UNIXTIME

  UNIX_TIMESTAMP(date):将返回从'1970-01-01 00:00:00' GMT 指定日期的后的秒数
  FROM_UNIXTIME(unix_timestamp) FROM_UNIXTIME(unix_timestamp,format)
SELECT UNIX_TIMESTAMP(NOW())
SELECT FROM_UNIXTIME(UNIX_TIMESTAMP(NOW()))
SELECT FROM_UNIXTIME(UNIX_TIMESTAMP(NOW()), '%y/%m/%d%H:%i:%S')

④:其他函数

a.UUID

SELECT UUID();

b:COALESCE

  COALESCE(value,...):返回值为列表当中的第一个非 NULL值,在没有非NULL 值得情况下返回值为 NULL
SELECT COALESCE('Jerry', 'Jack', 'Lucy');  结果为Jerry
SELECT COALESCE(NULL, 'Jack', 'Lucy');   结果为Jack

e:IF/IFNULL语句

 

# 数据库中的if函数, 相当于Java中的三目运算符
SELECT IF(1>1,'true','false')
# IFNULL(expr1,expr2):
#假如expr1 不为 NULL,则 IFNULL() 的返回值为expr1; 否则其返回值为expr2。    
SELECT IFNULL(NULL,10);
SELECT IFNULL(NULL,'unempty')

更多相关免费学习推荐:mysql教程(视频)

Das obige ist der detaillierte Inhalt vonWas sind die erweiterten Abfragefunktionen von MySQL?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn