Heim  >  Artikel  >  Datenbank  >  Gibt es Schlüsselwörter in MySQL?

Gibt es Schlüsselwörter in MySQL?

青灯夜游
青灯夜游Original
2022-06-21 12:09:079703Durchsuche

Es gibt Schlüsselwörter in MySQL. MySQL bietet eine Vielzahl von Schlüsselwörtern: 1. BETWEEN, zum Abfragen der Zeit oder des Zahlenbereichs nach der WHERE-Anweisung; 2. CALL, zum Aufrufen gespeicherter Prozeduren; 4. CURRENT_TIME, zum Abrufen das aktuelle Datum und die Uhrzeit; 5. CURRENT_USER, gibt den Benutzernamen von MYSQL zurück. 6. CURSOR, wird zum Deklarieren des Cursors in MySQL verwendet. 7. DISTINCT wird zum Entfernen doppelter Daten verwendet.

Gibt es Schlüsselwörter in MySQL?

Die Betriebsumgebung dieses Tutorials: Windows7-System, MySQL8-Version, Dell G3-Computer.

Vermeiden Sie bei der Verwendung von MySQL grundsätzlich die Verwendung von Schlüsselwörtern als Tabellennamen. Wenn Sie Schlüsselwörter als Tabellennamen verwenden, müssen Sie gemäß der Standardschreibmethode [] (oder ") zur SQL-Anweisung hinzufügen, um den Feldnamen zu unterscheiden Tabellenname.

Im Folgenden werden alle MySQL-Schlüsselwörter aufgelistet, in der Hoffnung, Freunden, die MySQL verwenden, eine Referenzhilfe zu bieten

.OUTEROUTFILEPRÄZISIONPRIMÄRVERFAHREN PURGERAID0RANGEREADREADSREALREFERENCESREGEXPRELEASE UMBENENNENWIEDERHOLENERSETZENERFORDERNRESTRICTRETURNREVOKERIGHTRLIKESCHEMASCHEMASSECOND_MICROSECONDSELECT SENSITIVESEPARATORSETSHOWSMALLINTSPATIALSPECIFICSQLSQLEXCEPTIONSQLSTATESQLWARNINGSQL_BIG_RESULTSQL_CALC_FOUND_ROWS SQL_SMALL_RESULTSSLSTARTINGSTRAIGHT_JOINTABLE BEENDETDANNTINYBLOBTINYINTTINYTEXTTOTRAILINGTRIGGERTRUEUNDOUNIONUNIQUEUNLOCKUNSIGNEDUPDATEUSAGEUSEUSINGUTC_DATEUTC_TIMEUTC_TIMESTAMPVALUESVARBINARYVARCHARVARCHARACTERVARYINGWHENWHERE WHILEWITHWRITEX509XORYEAR_MONTHZEROFILL

Das Folgende ist eine Liste der Funktionen gängiger MySQL-Schlüsselwörter

ADD ALLE ALTER
ANALYSE AND AS
ASC ASENSITIVE VOR
BETWEEN BIGINT BINARY
BLOB BOTH BY
CALL CASCADE CASE
CHANGE CHAR CHARACTER
CHECK COLLATE COLUMN
CONDITION CONNECTION CONSTRAINT
CONTINUE CONVERT CREATE
CROSS CURRENT_DATE CURRENT_TIME
CURRENT_TIMESTAMP CURRENT_USER CURSOR
DATABASE DATABASES DAY_HOUR
DAY_MICROSECOND DAY_MINUTE DAY_SECOND
DEC DECIMAL DECLARE
DEFAULT DELAYED DELETE
DESC DESCRIBE DETERMINISTISCH
DISTINCT DISTINCTROW p
DOUBLE DROP DUAL
EACH ELSE ELSEIF
ENCLOSED ESCAPED EXISTS
EXIT EXPLAIN FALSE
FETCH FLOAT FLOAT4
FLOAT8 FOR FORCE
FOREIGN FROM FULLTEXT
GOTO GRANT GROUP
HAVING HIGH_PRIORITY HOUR_MICROSECOND
HOUR_MINUTE HOUR_SECOND IF
IGNORE IN INDEX
INFILE INNER INOUT
UNEMPFINDLICH INSERT INT
INT1 INT2 INT3
INT4 INT8 INTEGER
INTERVAL INTO IS
ITERATE JOIN KEY
KEYS KILL LABEL
LEADING LEAVE LEFT
LIKE LIMIT LINEAR
LINES LOAD LOCALTIME
LOCALTIMESTAMP LOCK LONG
LONGBLOB LONGTEXT LOOP
LOW_PRIORITY MATCH MEDIUMBLOB
MEDIUMINT MEDIUMTEXT MIDDLEINT
MINUTE_MICROSECOND MINUTE_SECOND MOD
MODIFIES NATURAL NOT
NO_WRITE_TO_BINLOG NULL
INNER wird für die innere Verknüpfungsabfrage verwendet. Nach dem Festlegen der EIN-Bedingung werden alle Daten angezeigt, die die Bedingungen erfüllen. Der Unterschied zwischen Left-Join und Right-Join besteht darin, dass INNER keinen Fokus auf alle Daten hat, die die Bedingungen erfüllen. Achten Sie daher darauf, bei der Verwendung keine kartesischen Produkte zu verursachen, da INNER die Standardverbindungsmethode ist Bei MySQL können Sie das Schlüsselwort INNER weglassen, z. B.: SELECT * FROM user JOIN untitled ON user.id = untitled.friend_id
Schlüsselwort Funktion
ANALYZE Der Index kann über die Analyze Table-Anweisung repariert werden. Verwenden Sie „SHOW INDEX FROM table name“, um den Indexstatus in der Tabelle zu überprüfen. Wenn die Anzahl der verschiedenen Werte im Feld viel größer ist als die Anzahl der KARDINALITÄTEN in der Tabelle, ist der Index grundsätzlich Hat in diesem Fall keine Auswirkung. Verwenden Sie „ANALYZE TABLE table name“, um den Index zu reparieren. Verwenden Sie „SHOW INDEX FROM table name“ erneut, um zu sehen, dass der CARDINALITY-Index zurückgegeben wird zu normalSHOW INDEX FROM 表名”查看表中的索引状态,当字段中不同值的数量大大多于表中CARDINALITY 数量时,索引基本没有起作用,这时使用“ANALYZE TABLE 表名” 可以修复索引,再次使用“SHOW INDEX FROM 表名” 可以看到CARDINALITY 索引恢复正常
BETWEEN 用在WHERE之后的时间或者数字的范围查询,如 “SELECT * FROM USER WHERE CREATE BETWEEN '2020-11-20' AND '2020-11-30';” 查询的是20号至30号之间的数据,如果时间类型为DATETIME时查询的范围为00:00:00,比如上面的查询语句中如果CREATE_TIME为DATETIME类型,查询的范围便是“2020-11-20 00:00:00 至 2020-11-30 00:00:00”
CALL 用于调用存储过程,如:CALL showUser()
CASCADE 添加在约束之后,设置之后当删除、更新主表时也会操作从表,例如:“ CONSTRAINT '用户信息' FOREIGN KEY (USER_NAME) REFERENCES TASK.USER (NAME) ON DELETE CASCADE ON UPDATE CASCADE”,添加之后当用户表修改用户名称之后,从表的用户名称也会修改
CURRENT_DATE 用于获取当天日期,如“SELECT CURRENT_DATE”返回的就是当天的日期
CURRENT_TIME 用于获取当前时间,如"SELECT CURRENT_TIME"返回的就是当前的时分秒
DEFAULT CURRENT_TIMESTAMP 创建时间字段时如果加入这段代码代表新增数据时默认插入当前时间,创建字段时:“ create_time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP
ON UPDATE CURRENT_TIMESTAMP 创建时间字段时如果加上这段代码代表修改数据时默认会同步当前时间,创建字段时:“update_time timestamp NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP
CURRENT_USER 返回MYSQL的用户名
CURSOR 用于声明mysql中的游标,用在存储过程中,有充当指针的作用,用法:“DECLARE 游标名称 CURSOR FRO 查询出的结果集
DECLARE 用于在复合语句中声明变量,如存储过程中,可以使用SET 变量名 = 值这种方式重新赋值,示例中结果1是“测试”,结果1(2)是“测试1”
DELAYED 用于使用延迟插入操作,在执行DELAYED声明的语句时,数据库会先返回状态信息,然后将插入操作放入队列,等待没有操作队列数据的指令便开始执行队列
DESCRIBE 用于查看数据表中字段的详细设计,有两种用法:1.DESCRIBE 表名🎜🎜🎜BETWEEN🎜🎜Die Zeit nach WHERE Oder eine Bereichsabfrage von Zahlen, wie zum Beispiel „SELECT * FROM USER WHERE CREATE BETWEEN '2020-11-20' AND '2020-11-30' code>;" Die Abfrage liegt zwischen dem 20. und dem 30. Datum. Wenn der Zeittyp DATETIME ist, ist der Abfragebereich 00:00:00. Wenn CREATE_TIME beispielsweise in der obigen Abfrageanweisung den Wert <strong>DATETIME Typ, der Abfragebereich ist „2020-11-20 00:00:00 bis 2020-11-30 00:00:00“🎜🎜🎜🎜CALL🎜🎜 wird zum Aufrufen gespeicherter Prozeduren verwendet, z. B.: CALL showUser()</strong>🎜🎜🎜🎜CASCADE🎜🎜Hinzugefügt in Nachdem die Einschränkung festgelegt wurde, wird die Slave-Tabelle auch bearbeitet, wenn die Master-Tabelle gelöscht oder aktualisiert wird, zum Beispiel: „ CONSTRAINT ' Benutzerinformationen' FOREIGN KEY (USER_NAME) REFERENCES TASK.USER (NAME) ON DELETE CASCADE ON UPDATE CASCADE“, nach dem Hinzufügen, wenn der Benutzername in der Benutzertabelle geändert wird, wird auch der Benutzername aus der Tabelle geändert geändert 🎜🎜🎜🎜CURRENT_DATE🎜🎜 wird verwendet, um das Datum des Tages abzurufen, z. B. „SELECT CURRENT_DATE“ gibt den aktuellen Tag zurück. Das Datum 🎜🎜🎜🎜CURRENT_TIME🎜🎜 wird verwendet, um das aktuelle Datum abzurufen Beispielsweise gibt „SELECT CURRENT_TIME“ die aktuelle Stunde, Minute und Sekunde zurück Wird standardmäßig beim Hinzufügen neuer Daten eingefügt: „create_time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP“🎜🎜🎜🎜ON UPDATE CURRENT_TIMESTAMP🎜🎜Wenn Sie diesen Code beim Erstellen eines Zeitfelds hinzufügen, wird er angezeigt Beim Ändern von Daten wird standardmäßig die aktuelle Zeit synchronisiert. Beim Erstellen eines Felds: „update_time timestamp NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP“🎜🎜🎜🎜CURRENT_USER🎜🎜Gibt den Benutzernamen von MYSQL zurück🎜🎜 🎜🎜CURSOR🎜🎜Verwendung: Wird zum Deklarieren des Cursors in MySQL verwendet. Er wird in gespeicherten Prozeduren verwendet und dient als Zeiger. Verwendung: „DECLARE Cursorname CURSOR FRO Query Results Set“🎜🎜🎜🎜DECLARE 🎜🎜 wird verwendet in: Beim Deklarieren einer Variablen in einer zusammengesetzten Anweisung, z. B. einer gespeicherten Prozedur, können Sie <code>SET variable name = value verwenden, um den Wert neu zuzuweisen. Im Beispiel ist Ergebnis 1 „test“. , und Ergebnis 1(2) ist „Test 1“ 🎜🎜🎜🎜DELAYED🎜🎜 wird verwendet, um verzögerte Einfügungsoperationen zu verwenden. Wenn die durch DELAYED deklarierte Anweisung ausgeführt wird, gibt die Datenbank zunächst Statusinformationen zurück und fügt dann die Einfügungsoperation ein Warteschlange, warten Sie auf Anweisungen, die die Warteschlangendaten nicht bearbeiten, und beginnen Sie dann mit der Ausführung der Warteschlange🎜🎜 🎜🎜DESCRIBE🎜🎜 wird verwendet, um das detaillierte Design der Felder in der Datentabelle anzuzeigen. Es gibt zwei Verwendungszwecke: 1. DESCRIBE table name, um alle Felder anzuzeigen.2.DESCRIBE 表名 字段名Wird verwendet, um Felder einzeln anzuzeigen
DISTINCT Nur deduplizierte Daten können zurückgegeben werden. Es muss häufig verwendet werden, um abzufragen, wie viele eindeutige Felder in einer Abfrage vorhanden sind bestimmtes Feld.Wenn beispielsweise mehrere Vorgänge gleichzeitig ausgeführt werden, wird diese Anweisung zuerst ausgeführtSELECT COUNT(DISTINCT name) FROM user
DISTINCTROW 用于联表查询的去重,可以查询出主表中关联的附表数据而不包含那些与查询出的主表不相关的数据,如SELECT DISTINCTROW user.id ,untitled.friend_name FROM user INNER JOIN untitled ON user.id = untitled.friend_id WHERE user.id = '1';可以查询出用户id与相关联的untitled表中的好友名称,不包含没有查询的用户的的好友
DROP 主要用于删除结构,如删除数据库:DROP DATABASE 数据库名,删除表:DROP TABLE 表名,删除字段:ALTER TABLE 表名 DROP 字段名
DUAL 虚拟表在mysql5.1以上版本会有,感觉在ORACLE中才有用,因为在ORACLE中使用查询必须要有FROM 表名,而在mysql中没有表名不会报错,如在mysql中SELECT 1+1 不会有问题但是在ORACLE中会报错,这时要用SELECT 1+1 FROM DUAL,官方声明:DUAL完全是为了方便那些要求所有SELECT语句都应该有FROM或other子句的人
EXISTS 用于在WHERE后的判断操作,其返回结果是一个布尔值,使用方式是将现有行代入内查询检验,如果内查询中返回一行或是多行数据,则输出本行数据,反之内查询没有数据则不输出本行数据,如:SELECT * FROM user u WHERE EXISTS(SELECT * FROM untitled n WHERE n.friend_id=u.id)返回的是在untitled表中friend字段可以与user表中的id相关联的数据,也可以在EXISTS关键字前加NOT 返回的就是不关联的数据了
EXPLAIN 用查看一个sql的执行,有没有加入索引或是有没有做全表扫描等,使用方式:在SELECT前加上,如EXPLAIN SELECT * FROM user
FULLTEXT 全文索引,用于优化查询速度,可以在创建表时加入FULLTEXT(字段1, 字段2),也可以在创建表之后单独加入ALTER TABLE 表名 ADD FULLTEXT INDEX 索引名 (字段名)需要注意的是添加索引是,表引擎要使用MyISAM不然会报错The used table type doesn't support FULLTEXT indexes
GRANT 用于用户权限操作,可以授权给用户权限或是删除用户权限,操作方式有很多如:CREATE USER 'testUser'@'host' IDENTIFIED BY '123456';用于创建用户,show grants for 'testUser'@'host';查看用户权限等操作
GROUP 用于分组操作,GROUP BY 字段名 分组操作后要查询的字段必须要在GROUP BY之后添加不然会报错,比较经典的用法如:SELECT friend_name , COUNT(friend_name) FROM untitled GROUP BY friend_name查询某一类型的数据条数
HAVING 用于在聚合后对数据进行筛选,与WHERE的区别在于,WHERE是在聚合前筛选数据的无法使用聚合函数如COUNT,SUM等,HAVING是在聚合后进行筛选的可以使用聚合函数,例如:SELECT friend_name , COUNT(friend_name) FROM untitled GROUP BY friend_name HAVING COUNT(friend_name) >1查询的便是friend_name数量大于一的数据条数
HIGH_PRIORITY 用于SELECT和INSERT语句,声明此操作为高优先级操作,数据库会先执行此类操作,如:SELECT HIGH_PRIORITY * FROM user
IGNORE wird oft verwendet, um Fehlerdaten während der Stapeleinfügung zu ignorieren, wie zum Beispiel: INSERT IGNORE INTO user (id,name,age) Values(6,'pangqi',25);If the Primärschlüssel-ID ist bereits vorhanden. Es wird kein Fehler gemeldet, aber der nächste Einfügevorgang wird ausgeführt. INSERT IGNORE INTO user (id,name,age) values(6,'pangqi',25);如果主键id已存在则不会报错,而是执行下一段插入操作
INNER 用于内连接查询,设定ON条件之后会将符合条件的数据全部展示出来,与左连接,右连接的区别在于:INNER没有侧重点,mysql会将符合条件的所有数据都查出来,所以使用时要小心不要出现出现笛卡尔积,另外由于INNER是mysql默认的连接方式,所以可以省略INNER关键字如:SELECT * FROM user JOIN untitled ON user.id = untitled.friend_id
INTERVAL 主要用于时间间隔,如:SELECT * FROM USER where create_time < NOW()-INTERVAL 4 DAY返回的是创建时间在四天前的数据,也可以将DAY替换为小时,分钟,年月等,还可以用来比较数据如:SELECT INTERVAL(6,1,2,3,4,7,8,9,10)会返回4,因为在比较时mysql会用索引为0的数据来比较接下来的数据,当接下来的数据大于索引为0的数据时,mysql会返回上一个数据的索引
ISmysql中的IS关键字仅用在 IS NULL或是IS NOT NULL中 如:SELECT * FROM USER where update_time IS NULL
JOIN用于连接两张表,连接方式大致有内连接INNER JOIN,右连接RIGHT JOIN,左连接LEFT JOIN
KEYKEY是数据库的物理结构,有两层意义和作用:1:约束,2:索引,如主键的声明PRIMARY KEY (id),,既会有唯一约束,又会自动添加索引
KILL用于终止mysql中的线程,可以使用SHOW PROCESSLIST查看现在正在进行的线程,使用KILL 线程id终止线程,有两个修改符1:CONNECTION 默认的修改符可以终止所有与该线程id有关的连接,2:QUERY 终止现在执行的语句,但不会终止连接
LABEL语句标签
LEAVELeave语句表明退出指定标签的流程控制语句块,通常会用在begin…end,以及loop, repeat, while的循环语句中,就好像编程中的break一样,使用方式LEAVE 循环名;
🎜🎜🎜INTERVAL🎜🎜 wird hauptsächlich für Zeitintervalle verwendet, z. B.: < code>SELECT * FROM USER wobei create_time < NOW()-INTERVAL 4 DAY Daten zurückgibt, die vor vier Tagen erstellt wurden. Sie können DAY auch durch Stunden, Minuten, Jahre, Monate usw. ersetzen Vergleichen Sie Daten wie: SELECT INTERVAL(6,1,2 ,3,4,7,8,9,10) gibt 4 zurück, da MySQL beim Vergleich die Daten mit dem Index 0 bis verwendet Vergleichen Sie die nächsten Daten. Wenn die nächsten Daten größer sind als die Daten mit Index 0, gibt MySQL den Index der vorherigen Daten zurück🎜🎜🎜🎜IS🎜🎜Das IS-Schlüsselwort in MySQL wird nur in IS NULL verwendet oder IS NOT NULL, wie zum Beispiel: SELECT * FROM USER where update_time IS NULL 🎜🎜🎜🎜JOIN🎜🎜 wird verwendet, um zwei Tabellen zu verbinden Zu den Methoden gehören im Allgemeinen Inner Join INNER JOIN und Right Join RIGHT JOIN, Left Join LEFT JOIN🎜🎜🎜🎜KEY🎜🎜KEY ist die physische Struktur der Datenbank, die zwei Bedeutungs- und Funktionsebenen hat: 1: Einschränkungen, 2: Index, z. B. Primärschlüssel Die Anweisung PRIMARY KEY (id) verfügt nicht nur über eindeutige Einschränkungen, sondern auch automatisch Indizes hinzufügen. 🎜🎜🎜🎜KILL🎜🎜 wird zum Beenden von Threads in MySQL verwendet. Sie können den aktuell laufenden Thread mit KILL thread id anzeigen Für den Thread gibt es zwei Modifikatoren: 1: CONNECTION Der Standardmodifikator kann alle Verbindungen beenden, die sich auf die Thread-ID beziehen. 2: QUERY Beendet die aktuell ausgeführte Anweisung, beendet jedoch nicht die Verbindung 🎜LEAVE🎜🎜Die Leave-Anweisung gibt das Verlassen des Flusskontrollanweisungsblocks der angegebenen Bezeichnung an, der normalerweise in begin...end und loop verwendet wird. In der Schleifenanweisung von repeat und while entspricht dies genau einer Unterbrechung in der Programmierung Methode ist LEAVE-Schleifenname;🎜🎜🎜🎜LEFT🎜🎜LEFT()-Funktion ist eine Zeichenfolgenfunktion, die die angegebene Länge des linken Teils der Zeichenfolge zurückgibt.Beispiel: SELECT LEFT(name,3) FROM user
LIKE用于模糊搜索,可以搭配%与_共同使用,%代表查询一个或多个通配符,而_代表一个字符,如:SELECT * FROM user WHERE name LIKE &#39;%i&#39;可以查询到所有name中以i结尾的数据,将%换成_之后,查询条件就变成了查询name中以i结尾并且前面只有一个字符的数据
LIMIT用于分页查询,如:SELECT * FROM user LIMIT 4,5 其中第一个参数为起始条数 如上例就是从第4条数据开始返回,第二个参数为偏移量如上例所示参数为5则表示返回从第4条的后5条数据,之前偏移量可以为-1代表查询起始条数后的所有数据,但是这个写法被mysql官方认定为一种错误,所以较新版的mysql都不能用了,最好的办法就是给一个比较大的数字
LOCALTIME当地时间,可用做查询结果字段,where条件,插入时的当前时间,更新时的时间等等,mysql有多种时间函数,可根据需要选择不同的函数使用,例:SELECT LOCALTIME,NOW(),sysdate(), localtimestamp, localtimestamp();
LOCK锁表与解锁 MySQL使客户端会话可以显式获取表锁,以便与其他会话协作访问表,或者防止其他会话在会话需要互斥访问时修改表。会话只能为其自身获取或释放锁。一个会话无法获取另一会话的锁,也不能释放另一会话持有的锁。例:LOCK table user read local此时会产生一个锁表操作,所有执行修改表的操作将会被拒绝并提示:Table &#39;user&#39; was locked with a READ lock and can&#39;t be updated,可以使用unlock tables;关键字解锁
LOW_PRIORITY低优先级,MySQL允许你改变语句调度的优先级,它可以使来自多个客户端的查询更好地协作,这样单个客户端就不会由于锁定而等待很长时间。一般用于DELETE、INSERT、LOAD DATA、REPLACE和UPDATE语句中,例:update LOW_PRIORITY user set username = &#39;zhangsan&#39;Wenn in diesem Fall der zweite Leser eintrifft, während der Autor wartet, darf der zweite Leser vor dem Autor einfügen. Schreiber dürfen Operationen nur starten, wenn keine anderen Leser vorhanden sind.
MODRemainder-Funktion, wie zum Beispiel: select mod(12,5)返回余数2
NATURAL自然连接,是JOIN 的一种,特点是将表中具有相同名称的字段自动进行记录匹配,而这些同名字段类型可以不同,所以表中字段的类型可以不同,可以应用在INNER ,LEFT 等JOIN中,例:select * from user NATURAL LEFT JOIN user2 在这里user与user2的区别是除了id之外user2字段后会加上1,这将导致连接时自动使用id进行关联,结果也确实如此
OPTIMIZE作用:优化整理整理表的碎片及索引,在数据库存储数据时数据库会分配表空间,及索引给该数据当数据删除后数据库并不会收回这些资源而是等待新的数据填补这些空缺,使用OPTIMIZE关键字可以主动清除这些被占用的资源,用法:optimize table 表名称
RANGE分区:基于一个给定的区间范围,要求给定区间中这个字段的值是连续的,当执行操作时会走相应的分区,可以极大的提升效率,要求是如果该表有主键的话作为分区字段也应该在主键的行列,用法:建表语句+PARTITION BY RANGE (xuehao) (PARTITION p0 VALUES LESS THAN (6),PARTITION p1 VALUES LESS THAN (11),PARTITION p2 VALUES LESS THAN (16), PARTITION p3 VALUES LESS THAN (21));
REFERENCES建立外键关系,在建表语句中:FOREIGN KEY(uid) REFERENCES users(id)select mod(12,5)Gibt Rest 2 zurück
NATURALNatürlicher Join ist eine Art JOIN, der durch die Kombination der Tabelle gekennzeichnet ist mit Felder mit demselben Namen werden automatisch mit Datensätzen abgeglichen, und die Typen dieser Felder mit demselben Namen können unterschiedlich sein, sodass die Typen von Feldern in der Tabelle unterschiedlich sein können, was in INNER, LEFT und anderen JOINs angewendet werden kann. zum Beispiel: select * from user NATURAL LEFT JOIN user2</code > Der Unterschied zwischen user und user2 besteht hier darin, dass zusätzlich zur ID nach dem Feld user2 eine 1 hinzugefügt wird, wodurch die ID automatisch verwendet wird Zuordnung während der Verbindung. Das Ergebnis ist tatsächlich das gleiche. 🎜🎜🎜🎜OPTIMIEREN🎜🎜Funktion: Optimieren und organisieren Sie die Tabellenfragmente und -indizes. Wenn die Datenbank Daten speichert, weist die Datenbank den Daten Tabellenraum und Index zu gelöscht wird, fordert die Datenbank diese Ressourcen nicht zurück, sondern wartet auf neue Daten, um diese Lücken zu füllen. Verwenden Sie das Schlüsselwort OPTIMIZE, um diese Ressourcen aktiv zu löschen. Verwendung: 🎜Tabellenname optimieren🎜🎜🎜🎜RANGE🎜 🎜Partition: Basierend auf einem bestimmten Intervallbereich muss der Wert dieses Felds im angegebenen Intervall kontinuierlich sein. Wenn die Tabelle einen Primärschlüssel hat, kann eine entsprechende Partitionierung die Effizienz erheblich verbessern. Das Partitionierungsfeld sollte sich auch in der Zeile des Primärschlüssels befinden. Verwendung: Tabellenerstellungsanweisung + PARTITION NACH RANGE (xuehao) (PARTITION p0 WERTE KLEINER ALS (6), PARTITION p1 WERTE KLEINER ALS (11), PARTITION p2 WERTE KLEINER ALS (16), PARTITION p3 WERTE WENIGER ALS (21));🎜🎜🎜🎜REFERENCES🎜🎜Stellen Sie eine Fremdschlüsselbeziehung her, in der Tabellenerstellungsanweisung: 🎜FOREIGN KEY(uid) REFERENCES user(id) bedeutet das Die Feld-UID wird mit der Primärschlüssel-Feld-ID der Benutzertabelle verbunden -Z0-9._%-]+@[A-Z0-9.-]+.[A-Z]{2,4}$'
RENAMEUm den Tabellennamen zu ändern, verwenden Sie: benennen Sie Tabelle Benutzer2 in Benutzer3 um;<code>rename table user2 to user3;
REPEAT将给定数据当做字符串复制指定次数如:select REPEAT(3,3)得出的结果为“333”
REPLACE替换所有的指定字符串,如:select REPLACE(&#39;这是一个字符串,或者是一个字符&#39;,&#39;一个&#39;,&#39;两个&#39;);
REVOKE撤销已经赋予给 MySQL 用户权限,如:revoke all on *.* from testUser@host;记得完成后刷新用户权限表FLUSH PRIVILEGES;
RIGHT对字符串进行截位操作,如:select RIGHT(&#39;这是一个字符串&#39;,5),会倒序截取指定位数的字符串
RLIKE模糊查询,与like不同的时,rlike的内容可以是正则,且可以不完全匹配,如:select * from user where email RLIKE &#39;^www.*$&#39;;
SEPARATOR可将查询结果用字符串连接变为一行,SEPARATOR指定连接符,需配合GROUP BY使用,如:SELECT *, GROUP_CONCAT(username order by username separator &#39;;&#39;) SCORE FROM user GROUP BY email RLIKE &#39;^www.*$&#39;
USING连接查询时如果是字段名相同则可以作为连接条件,using可以代替on出现如:select * from user left join students USING(quanxian)
WHILE循环语句关键词,用在存储过程中,需结合流程控制语句来使用,如:CREATE PROCEDURE fun() BEGIN SET @sum:=10; WHILE @sum > 0 DO SELECT @sum; SET @sum:=@sum-1; END WHILE; END CALL fun(); DROP PROCEDURE fun


XOR 表示逻辑异或,当任意一个操作数为NULL时,返回值为NULL,对于非NULL的操作数,如果两个的逻辑真假值相异,则返回结果为1,否则为0,如:select true XOR null;select true XOR true;select true XOR false;
ZEROFILL 当创建表时数值类型加上这个关键字后,如果插入数字位数不足则自动填充相应的位数,如:CREATE TABLE student3 ( id int(11) unsigned zerofill not null, xuehao int(50) NOT NULL );insert into student3 value(1,2); select * from student3;
REPEAT

Kopieren Sie die angegebenen Daten eine bestimmte Anzahl von Malen als Zeichenfolge, z : select REPEAT (3,3)Das Ergebnis ist „333“

🎜🎜REPLACE🎜🎜Ersetzen Sie alle angegebenen Zeichenfolgen, wie zum Beispiel: select REPLACE('Dies ist eine Zeichenfolge oder ein Zeichen', ' one','two');🎜🎜🎜🎜🎜REVOKE🎜🎜Widerrufen Sie die Berechtigungen, die MySQL-Benutzern gewährt wurden, wie zum Beispiel: <code>revoke all on *.* from testUser@host;🎜Denken Sie daran, die zu aktualisieren Benutzerberechtigungstabelle nach Abschluss FLUSH PRIVILEGES; angegebene Anzahl von Ziffern in der Zeichenfolge in umgekehrter Reihenfolge 🎜🎜🎜🎜RLIKE🎜🎜Fuzzy-Abfrage. Wenn sich der Inhalt von „rlike“ von „like“ unterscheidet, kann er regelmäßig sein und stimmt möglicherweise nicht genau überein, z. B.: <code>select * from user where email RLIKE '^www.*$';🎜 🎜🎜🎜🎜SEPARATOR🎜🎜 kann die Abfrageergebnisse in einer Zeile mit Zeichenfolgen verketten und muss mit GROUP BY verwendet werden, wie zum Beispiel: <code>SELECT *, GROUP_CONCAT(Benutzername sortiert nach Benutzernamentrennzeichen ';') SCORE FROM user GROUP BY email RLIKE '^www.*$'🎜🎜🎜🎜🎜USING🎜🎜Wenn die Feldnamen bei der Verbindungsabfrage gleich sind, können sie als Verbindung verwendet werden Bedingungen können anstelle von on angezeigt werden, z. B.: <code>select * from user left join Students USING(quanxian)🎜🎜🎜🎜🎜WHILE🎜🎜Loop-Anweisungsschlüsselwort, das in gespeicherten Prozeduren verwendet wird, muss in Verbindung mit verwendet werden Flusskontrollanweisungen, wie zum Beispiel: <code>CREATE PROCEDURE fun() BEGIN SET @sum:=10 ; WHILE @sum > END CALL fun (); Stellt ein logisches Exklusiv-ODER dar. Wenn ein Operand NULL ist, ist der Rückgabewert NULL, wenn die beiden logischen wahren und falschen Werte unterschiedlich sind, andernfalls ist es 0. wie zum Beispiel: <code>select true XOR null;select true in Student3-Wert (1,2); wählen Sie * aus Student3;

Das obige ist der detaillierte Inhalt vonGibt es Schlüsselwörter in 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