Maison > Article > base de données > Y a-t-il des mots-clés dans MySQL ?
Il y a des mots-clés dans MySQL. Mysql fournit une variété de mots-clés : 1. BETWEEN, utilisé pour interroger l'heure ou la plage de numéros après l'instruction WHERE ; 2. CALL, utilisé pour appeler des procédures stockées ; 3. CURRENT_DATE, pour obtenir la date actuelle ; la date actuelle et l'heure ; 5. CURRENT_USER, renvoie le nom d'utilisateur de MYSQL ; 6. CURSOR, utilisé pour déclarer le curseur dans MySQL ; 7. DISTINCT, utilisé pour supprimer les données en double.
L'environnement d'exploitation de ce tutoriel : système windows7, version mysql8, ordinateur Dell G3.
Lorsque vous utilisez MySQL, essayez généralement d'éviter d'utiliser des mots-clés comme noms de table. Si vous utilisez des mots-clés comme noms de table, vous devez ajouter [] (ou ") à l'instruction SQL selon la méthode d'écriture standard pour distinguer le nom du champ et nom de la table.
Ce qui suit répertorie tous les mots-clés MySQL, dans l'espoir de fournir une aide de référence aux amis qui utilisent MySQL
AJOUTER | TOUS | ALTER |
ANALYSER | ET | AS |
ASC | ASENSITIVE | AVANT |
ENTRE | BIGINT | BINARY |
BLOB | DEUX | PAR |
CALL | CASCADE | CASE |
CHANGE | CHAR | CHARACTER |
CHECK | COLLATE | COLONNE |
ÉTAT | CONNEXION | CONSTRAINT |
CONTINUE | CONVERT | CREATE |
CROSS | CURRENT_DATE | CURRENT_TIME |
CURRENT_TIMESTAMP | CURRENT_USER | CURSEUR |
BASE DE DONNÉES | BASES DE DONNÉES | DAY_HOUR |
DAY_MICROSECOND | DAY_MINUTE | DAY_SECOND |
DEC | DECIMAL | DECLARE |
DEFAULT | DELAYED | DELETE |
DESC | DESCRIBE | DETERMINISTIC |
DISTINCT | DISTINCTROW | p |
DOUBLE | DROP | DUAL |
EACH | ELSE | ELSEIF |
ENCLOSED | ESCAPED | EXISTE |
EXIT | EXPLAIN | FALSE |
FETCH | FLOAT | FLOAT4 |
FLOAT8 | POUR | FORCE |
ÉTRANGER | DE | TEXTE COMPLET |
GOTO | G RANT | GROUP |
HAVING | HIGH_PRIORITY | HOUR_MICROSECOND |
HOUR_MINUTE | HOUR_SECOND | IF |
IGNORE | IN | INDEX |
INFILE | INNER | INOUT |
INSENSIBLE | INSERT | INT |
INT1 | INT2 | INT3 |
INT4 | INT8 | INTEGER |
INTERVAL | INTO | IS |
ITERATE | JOIN | KEY |
CLÉS | TUER | ÉTIQUETTE |
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 | NUMÉRIQUE |
ON | OPTIMISE | OPTION |
OPTIONNELLEMENT | OU | COMMANDE |
OUT | OUTER | OUTFILE |
PRECISION | PRIMAIRE | PROCÉDURE |
PURGE | RAID0 | RANGE |
READ | READS | REAL |
REFERENCES | REGEXP | RELEASE |
RENAME | REPEAT | REPLACE |
EXIGENCE | RESTRICT | RETOUR |
REVOKE | DROITE | RLIKE |
SCHEMA | SCHEMAS | SECOND_MICROSECOND |
SELECT | SENSITIVE | SEPARATOR |
SET | SHOW | SMALLINT |
SPATIAL | SPÉCIFIQUE | SQL |
SQLEXCEPTION | SQLSTATE | SQLWARNING |
SQL_BIG_RESULT | SQL_CALC _FOUND_ROWS | SQL_SMALL_RESULT |
SSL | STARTING | STRAIGHT_JOIN |
TABLE | TERMINÉ | PUIS |
TINYBLOB | TINYINT | TINYTEXT |
TO | TRAILING | TRIGGER |
TRUE | UNDO | UNION |
UNIQUE | UNLOCK | UNSIGNED |
UPDATE | USAGE | USE |
USING | UTC_DATE | UTC_TIME |
UTC_TIMESTAMP | VALUES | VARBINARY |
VARCHAR | VARCHARACTER | VARYING |
WHEN | OÙ | PENDANT |
AVEC | ÉCRIRE | X509 |
XOR | YEAR_MONTH | ZEROFILL |
Ce qui suit est une liste des fonctions des mots-clés MySQL courants
Mot-clé | Fonction |
---|---|
ANALYZE | L'index peut être réparé via l'instruction Analyse Table. Utilisez "SHOW INDEX FROM table name " pour afficher l'état de l'index dans la table. Lorsque le nombre de valeurs différentes dans le champ est bien supérieur au nombre de CARDINALITÉ dans la table, l'index est essentiellement. Dans ce cas, utilisez "ANALYZE TABLE table name " pour réparer l'index. Utilisez à nouveau "SHOW INDEX FROM table name " pour voir que l'index CARDINALITY est renvoyé. à la normaleSHOW 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🎜🎜L'heure après OÙ Ou une requête de plage de nombres, telle que "SELECT * FROM USER WHERE CREATE BETWEEN '2020-11-20' AND '2020-11-30' code>;" La requête est comprise entre le 20 et le 30. Données, si le type d'heure est DATETIME, la plage de requête est 00:00:00. Par exemple, dans l'instruction de requête ci-dessus, si CREATE_TIME est <strong>DATETIME </strong>, la plage de requête est "2020-11-20 00 : 00:00 à 2020-11-30 00:00:00"🎜🎜🎜🎜CALL🎜🎜 est utilisée pour appeler des procédures stockées, telles que : <code>CALL showUser() 🎜🎜🎜🎜CASCADE🎜🎜Ajouté dans Une fois la contrainte définie, la table esclave sera également exploitée lorsque la table maître est supprimée ou mise à jour, par exemple : " CONSTRAINT 'Informations utilisateur' FOREIGN KEY (USER_NAME) REFERENCES TASK.USER (NAME) ON DELETE CASCADE ON UPDATE CASCADE ", après avoir ajouté, lorsque le nom d'utilisateur est modifié dans la table utilisateur, le nom d'utilisateur de la table sera également être modifié 🎜🎜🎜🎜CURRENT_DATE🎜🎜 est utilisé pour obtenir la date du jour, par exemple "SELECT CURRENT_DATE " renvoie le jour en cours La date 🎜🎜🎜🎜CURRENT_TIME🎜🎜 est utilisée pour obtenir le Par exemple, "SELECT CURRENT_TIME " renvoie l'heure, la minute et la seconde actuelles 🎜🎜🎜🎜DEFAULT CURRENT_TIMESTAMP🎜🎜Si vous ajoutez ce paragraphe lors de la création d'un champ d'heure, le code représente l'heure actuelle. est inséré par défaut lors de l'ajout de nouvelles données Lors de la création d'un champ : "create_time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP "🎜🎜🎜🎜ON UPDATE CURRENT_TIMESTAMP🎜🎜Si vous ajoutez ce code lors de la création d'un champ horaire, il représente Lors de la modification des données, l'heure actuelle sera synchronisée par défaut Lors de la création d'un champ : "update_time timestamp NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP "🎜🎜🎜🎜CURRENT_USER🎜🎜Renvoyer le nom d'utilisateur de MYSQL🎜. 🎜🎜🎜CURSOR🎜🎜Utilisation Utilisé pour déclarer le curseur dans mysql. Il est utilisé dans les procédures stockées et sert de pointeur Utilisation : "DECLARE nom du curseur CURSOR FRO ensemble de résultats de requête "🎜🎜🎜🎜. DECLARE🎜🎜 est utilisé dans Lors de la déclaration d'une variable dans une instruction composée, telle qu'une procédure stockée, vous pouvez utiliser SET variable name = value pour réaffecter la valeur. Dans l'exemple, le résultat 1 est "test. ", et le résultat 1(2) est "test 1" 🎜🎜🎜🎜DELAYED🎜🎜 est utilisé pour utiliser des opérations d'insertion retardées. Lors de l'exécution de l'instruction déclarée par DELAYED, la base de données renverra d'abord les informations d'état, puis placera l'opération d'insertion dans la file d'attente, attendez les instructions qui n'exploitent pas les données de la file d'attente, puis commencez à exécuter la file d'attente🎜🎜 🎜🎜DESCRIBE🎜🎜 est utilisée pour visualiser la conception détaillée des champs dans la table de données. Il y a deux utilisations : 1. DESCRIBE nom de la table pour afficher tous les champs.2.DESCRIBE 表名 字段名 Utilisé pour afficher les champs individuellement |
DISTINCT | Supprimer les données en double peuvent être renvoyées. Il doit s'agir du premier champ de la requête. Il est souvent utilisé pour demander combien de champs uniques il y a dans une. certaines données.Par exemple, lorsqu'il y a plusieurs opérations en même temps, cette instruction sera exécutée en premierSELECT 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 | est souvent utilisé pour ignorer les données d'erreur lors de l'insertion par lots, telles que : INSERT IGNORE INTO user (id,name,age) values(6,'pangqi',25); If the L'identifiant de clé primaire existe déjà. Aucune erreur ne sera signalée, mais la prochaine opération d'insertion sera exécutée. 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会返回上一个数据的索引 |
IS | mysql中的IS关键字仅用在 IS NULL 或是IS NOT NULL 中 如:SELECT * FROM USER where update_time IS NULL |
JOIN | 用于连接两张表,连接方式大致有内连接INNER JOIN ,右连接RIGHT JOIN ,左连接LEFT JOIN |
KEY | KEY是数据库的物理结构,有两层意义和作用:1:约束,2:索引,如主键的声明PRIMARY KEY (id), ,既会有唯一约束,又会自动添加索引 |
KILL | 用于终止mysql中的线程,可以使用SHOW PROCESSLIST 查看现在正在进行的线程,使用KILL 线程id 终止线程,有两个修改符1:CONNECTION 默认的修改符可以终止所有与该线程id有关的连接,2:QUERY 终止现在执行的语句,但不会终止连接 |
LABEL | 语句标签 |
LEAVE | Leave语句表明退出指定标签的流程控制语句块,通常会用在begin…end,以及loop, repeat, while的循环语句中,就好像编程中的break一样,使用方式LEAVE 循环名; |
est utilisée pour la requête de jointure interne. Après avoir défini la condition ON, toutes les données qui remplissent les conditions seront affichées. La différence entre la jointure gauche et la jointure droite est la suivante : INNER n'a pas de focus et MySQL trouvera toutes les données qui remplissent les conditions, alors faites attention à ne pas provoquer de produits cartésiens lors de son utilisation. De plus, puisque INNER est la méthode de connexion par défaut de. MySQL, vous pouvez omettre le mot-clé INNER tel que : | 🎜🎜🎜INTERVAL🎜🎜 est principalement utilisé pour les intervalles de temps, tels que : < code>SELECT * FROM USER où create_time SELECT INTERVAL(6,1,2 ,3,4,7,8,9,10) renverra 4, car lors de la comparaison, mysql utilisera les données d'index 0 pour comparez les données suivantes. Lorsque les données suivantes sont supérieures aux données d'index 0, data, mysql renverra l'index des données précédentes🎜🎜🎜🎜IS🎜🎜Le mot-clé IS dans mysql n'est utilisé que dans IS NULL. ou IS NOT NULL , tel que : SELECT * FROM USER où update_time IS NULL 🎜🎜🎜🎜JOIN🎜🎜 est utilisé pour connecter deux tables. les méthodes incluent généralement la jointure interne INNER JOIN et la jointure à droite RIGHT JOIN , la jointure à gauche LEFT JOIN 🎜🎜🎜🎜KEY🎜🎜KEY est la structure physique de la base de données, qui a deux niveaux de signification et de fonction : 1 : Contraintes, 2 : Index, tel que la clé primaire. L'instruction PRIMARY KEY (id), aura non seulement des contraintes uniques, mais aussi automatiquement ajouter des index. 🎜🎜🎜🎜KILL🎜🎜 est utilisé pour terminer les threads dans MySQL. Vous pouvez utiliser SHOW PROCESSLIST< /code>Afficher le thread actuellement en cours, utiliser <code>KILL thread id pour terminer. le thread, il y a deux modificateurs 1 : CONNECTION Le modificateur par défaut peut mettre fin à toutes les connexions liées à l'identifiant du thread, 2 : QUERY Termine l'instruction en cours d'exécution, mais ne met pas fin à la connexion🎜🎜🎜🎜LABEL🎜🎜Étiquette d'instruction🎜🎜🎜 🎜LEAVE🎜🎜L'instruction Leave indique la sortie du bloc d'instructions de contrôle de flux de l'étiquette spécifiée, généralement utilisée dans le début... la fin et la boucle. Dans l'instruction de boucle de répétition et de temps, c'est comme une pause dans la programmation. La méthode est LEAVE loop name; 🎜🎜🎜🎜LEFT🎜🎜LEFT() La fonction est une fonction de chaîne qui renvoie la longueur spécifiée de la partie gauche de la chaîne.Par exemple : SELECT LEFT(name,3) FROM user |
LIKE | 用于模糊搜索,可以搭配%与_共同使用,%代表查询一个或多个通配符,而_代表一个字符,如:SELECT * FROM user WHERE name LIKE '%i' 可以查询到所有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 'user' was locked with a READ lock and can't be updated ,可以使用unlock tables; 关键字解锁 |
LOW_PRIORITY | 低优先级,MySQL允许你改变语句调度的优先级,它可以使来自多个客户端的查询更好地协作,这样单个客户端就不会由于锁定而等待很长时间。一般用于DELETE、INSERT、LOAD DATA、REPLACE和UPDATE语句中,例:update LOW_PRIORITY user set username = 'zhangsan' Dans ce cas, si le deuxième lecteur arrive alors que le rédacteur attend, le deuxième lecteur est autorisé à insérer avant le rédacteur. Les écrivains ne sont autorisés à démarrer des opérations que lorsqu'il n'y a pas d'autres lecteurs. |
MOD | Fonction de reste, telle que : 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)Renvoie le reste 2 |
NATURAL | La jointure naturelle est une sorte de JOIN, qui se caractérise par la combinaison de la table avec Les champs portant le même nom correspondent automatiquement aux enregistrements, et les types de ces champs portant le même nom peuvent être différents, de sorte que les types de champs dans la table peuvent être différents, ce qui peut être appliqué dans INNER, LEFT et d'autres JOIN, par exemple : select * from user NATURAL LEFT JOIN user2</code > La différence entre user et user2 ici est qu'en plus de l'identifiant, 1 sera ajouté après le champ user2, ce qui entraînera l'utilisation automatique de l'identifiant pour association lors de la connexion. Le résultat est en effet le même🎜🎜🎜🎜OPTIMISE🎜🎜Fonction : Optimiser et organiser la table Fragments et index Lorsque la base de données stocke les données, la base de données allouera de l'espace table et un index aux données. est supprimé, la base de données ne récupérera pas ces ressources mais attendra que de nouvelles données comblent ces lacunes. Utilisez le mot-clé OPTIMIZE pour effacer activement ces ressources occupées, en utilisant : 🎜optimiser le nom de la table 🎜🎜🎜🎜RANGE🎜. 🎜Partition : en fonction d'une plage d'intervalles donnée, la valeur de ce champ dans l'intervalle donné doit être continue lorsque l'opération est effectuée, le partitionnement correspondant peut améliorer considérablement l'efficacité. L'exigence est que si la table a un principal. clé, le champ de partitionnement doit également être dans la ligne de la clé primaire. Utilisation : instruction de création de table + 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🎜🎜Établissez une relation de clé étrangère, dans l'instruction de création de table : 🎜FOREIGN KEY(uid) REFERENCES users(id) signifie que l'uid du champ sera connecté à l'identifiant du champ de clé primaire de la table utilisateur🎜🎜🎜🎜REGEXP🎜🎜expression régulière, vous pouvez utiliser des expressions régulières dans les conditions de fonctionnement, utilisez 🎜SELECT * FROM user WHERE email NOT REGEXP'^ [A-Z0-9._%-]+@[A-Z0-9.-]+.[A-Z]{2,4}$' |
RENAME | Pour modifier le nom de la table, utilisez : renommer la table user2 en user3;<code>rename table user2 to user3; |
REPEAT | 将给定数据当做字符串复制指定次数如:select REPEAT(3,3) 得出的结果为“333” |
REPLACE | 替换所有的指定字符串,如:select REPLACE('这是一个字符串,或者是一个字符','一个','两个'); |
REVOKE | 撤销已经赋予给 MySQL 用户权限,如:revoke all on *.* from testUser@host; 记得完成后刷新用户权限表FLUSH PRIVILEGES; |
RIGHT | 对字符串进行截位操作,如:select RIGHT('这是一个字符串',5) ,会倒序截取指定位数的字符串 |
RLIKE | 模糊查询,与like不同的时,rlike的内容可以是正则,且可以不完全匹配,如:select * from user where email RLIKE '^www.*$'; |
SEPARATOR | 可将查询结果用字符串连接变为一行,SEPARATOR指定连接符,需配合GROUP BY使用,如:SELECT *, GROUP_CONCAT(username order by username separator ';') SCORE FROM user GROUP BY email RLIKE '^www.*$' |
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;
|
Copiez les données données sous forme de chaîne un nombre de fois spécifié, par exemple : select REPEAT (3,3)
Le résultat est "333"
select REPLACE('Ceci est une chaîne ou un caractère', 'one','two');🎜🎜🎜🎜🎜REVOKE🎜🎜Révoquer les autorisations qui ont été accordées aux utilisateurs MySQL, telles que : <code>revoke all on *.* from testUser@host ;🎜N'oubliez pas d'actualiser le table des autorisations utilisateur une fois terminéeFLUSH PRIVILEGES;🎜🎜🎜🎜🎜RIGHT🎜🎜Effectuez une opération de troncature sur la chaîne, telle que : <code>select RIGHT('This is a string',5)🎜, qui interceptera le nombre spécifié de chiffres dans la chaîne dans l'ordre inverse 🎜🎜🎜🎜RLIKE🎜🎜Requête floue, lorsqu'il est différent de like, le contenu de rlike peut être régulier et peut ne pas correspondre exactement, comme : <code>select * from user which email RLIKE '^www.*$';🎜 🎜🎜🎜🎜SEPARATOR🎜🎜 peut concaténer les résultats de la requête en une seule ligne avec des chaînes SEPARATOR spécifie le connecteur et doit être utilisé avec GROUP BY, tel que : <code>SELECT *, GROUP_CONCAT (ordre des noms d'utilisateur par séparateur de nom d'utilisateur ';') SCORE FROM user GROUP BY email RLIKE '^www.*$'🎜🎜🎜🎜🎜USING🎜🎜Si les noms de champs sont les mêmes lors de la requête de connexion, ils peuvent être utilisés comme connexion les conditions using peuvent apparaître à la place de on, telles que : <code>select * from user left join student USING(quanxian)🎜🎜🎜🎜🎜WHILE🎜🎜Le mot-clé de l'instruction Loop, utilisé dans les procédures stockées, doit être utilisé conjointement avec instructions de contrôle de flux, telles que : <code>CREATE PROCEDURE fun() BEGIN SET @sum:=10 ; WHILE @sum > 0 DO SELECT @sum:=@sum-1; (); DROP PROCEDURE fun🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜 Représente un OU exclusif logique Lorsqu'un opérande est NULL, la valeur de retour est NULL Pour les opérandes non NULL, si les deux valeurs logiques vraies et fausses. sont différents, le résultat de retour est 1, sinon il est 0, tel que : <code>select true XOR null;select true XOR true;select true Number, tel que : <code>CREATE TABLE student3 (id int(11 ) unsigned zerofill not null, xuehao int(50) NOT NULL);insert into student3 value(1,2); select * from student3;🎜🎜🎜🎜🎜 🎜【Recommandation associée : 🎜tutoriel vidéo mysql🎜】🎜🎜
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!