mysql에는 키워드가 있습니다. Mysql은 다양한 키워드를 제공합니다. 1. WHERE 문 다음에 시간이나 숫자 범위를 쿼리하는 데 사용됩니다. 2. CALL은 저장 프로시저를 호출하는 데 사용됩니다. 3. CURRENT_DATE는 현재 날짜를 가져옵니다. 현재 시간을 가져옵니다. 5. CURRENT_USER는 MYSQL의 사용자 이름을 반환합니다. 6. CURSOR는 mysql에서 커서를 선언하는 데 사용됩니다. 7. DISTINCT는 중복 데이터를 제거하는 데 사용됩니다.
이 튜토리얼의 운영 환경: windows7 시스템, mysql8 버전, Dell G3 컴퓨터.
MySQL을 사용할 때 일반적으로 테이블 이름으로 키워드를 사용하지 마십시오. 테이블 이름으로 키워드를 사용하는 경우 표준 작성 방법에 따라 SQL 문에 필드 이름과 ""를 추가해야 합니다.
다음은 MySQL
을 사용하는 친구들에게 참조 도움말을 제공하기 위해 모든 MySQL 키워드를 나열합니다.ADD | ALL | ALTER |
ANALYZE | AND | AS |
ASC | ASENSITIVE | BEFORE |
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 | 결정적 |
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 |
민감함 | 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 | NUMERIC |
ON | OPTIMIZE | OPTION |
OPTIONALLY | OR | ORDER |
OUT | OUTER | OUTFILE |
PRECISION | PRIMARY | 절차 |
PURGE | RAID0 | RANGE |
READ | READS | REAL |
REFERENCES | REGEXP | RELEASE |
RENAME | REPEAT | REPLACE |
REQUIRE | RESTRICT | RETURN |
REVOKE | RIGHT | RLIKE |
SCHEMA | SCHEMAS | SECOND_MICROSECOND |
SELECT | SENSITIVE | SEPARATOR |
SET | SHOW | SMALLINT |
SPATIAL | SPECIFIC | SQL |
SQLEXCEPTION | SQLSTATE | SQLWARNING |
SQL_BIG_RESULT | SQL_CALC_FOUND_ROW S | SQL_SMALL_RESULT |
SSL | STARTING | STRAIGHT_JOIN |
TABLE | 종료됨 | THEN |
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 |
언제 | 어디 | WHILE |
WITH | WRITE | X509 |
XOR | YEAR_MONTH | ZEROFILL |
다음은 일반적인 mysql 키워드의 기능 목록입니다
Keyword | Function |
---|---|
ANALYZE | Analyze Table 문을 통해 인덱스를 복구할 수 있습니다. 테이블의 인덱스 상태를 확인하려면 "SHOW INDEX FROM 테이블 이름 "을 사용하세요. 필드에 있는 서로 다른 값의 개수가 테이블의 CARDINALITY 개수보다 훨씬 많은 경우 인덱스는 기본적으로 이 경우 "ANALYZE TABLE table name "을 사용하면 인덱스를 복구할 수 있습니다. "SHOW INDEX FROM table name "을 다시 사용하면 CARDINALITY 인덱스가 반환되는지 확인할 수 있습니다. to 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🎜🎜WHERE 이후의 시간 또는 "SELECT * FROM USER WHERE CREATE BETWEEN '2020-11-20' AND '2020-11-30'과 같은 숫자 범위 쿼리 code>;" 쿼리는 20번째와 30번째 데이터 사이이고, 시간 유형이 DATETIME인 경우 쿼리 범위는 00:00:00입니다. 예를 들어 위 쿼리문에서 CREATE_TIME이 <strong>DATETIME 유형의 경우 쿼리 범위는 "2020-11-20 00:00:00 ~ 2020-11-30 00:00:00"🎜🎜🎜🎜CALL🎜🎜은 다음과 같은 저장 프로시저를 호출하는 데 사용됩니다. code>CALL showUser()</strong> 🎜🎜🎜🎜CASCADE🎜🎜Added in 제약 조건이 설정된 후 마스터 테이블이 삭제되거나 업데이트되면 슬레이브 테이블도 작동됩니다. 예: " 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 "은 현재 시간, 분, 초를 반환합니다. 새 데이터를 추가할 때 기본적으로 삽입됩니다. 필드를 생성할 때: "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🎜🎜Use mysql에서 커서를 선언하는 데 사용되며 저장 프로시저에서 포인터 역할을 합니다. 사용법: "DECLARE 커서 이름 CURSOR FRO 쿼리 결과 집합 "🎜🎜🎜🎜DECLARE 🎜🎜는 저장 프로시저와 같은 복합 문에서 변수를 선언할 때 SET 변수 이름 = 값 을 사용하여 값을 다시 할당할 수 있습니다. 예에서 결과 1은 "test"입니다. , 결과 1(2)은 "test 1"입니다. 🎜🎜🎜🎜DELAYED🎜🎜는 지연된 삽입 작업을 사용하는 데 사용됩니다. DELAYED로 선언된 문을 실행할 때 데이터베이스는 먼저 상태 정보를 반환한 다음 삽입 작업을 queue, queue 데이터를 조작하지 않는 명령을 기다린 후 queue 실행을 시작합니다🎜🎜 🎜🎜DESCRIBE🎜🎜는 데이터 테이블의 필드 세부 디자인을 보는 데 사용됩니다. 1. DESCRIBE 테이블 이름을 클릭하면 모든 필드를 볼 수 있습니다.2.DESCRIBE 表名 字段名 필드를 개별적으로 보는 데 사용됩니다. |
DISTINCT | 중복된 데이터만 반환할 수 있습니다. 쿼리의 첫 번째 필드여야 합니다. 특정 필드.예를 들어 동시에 여러 작업이 있는 경우 이 문이 먼저 실행됩니다SELECT 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 | 는 일괄 삽입 중 다음과 같은 오류 데이터를 무시하는 데 자주 사용됩니다. INSERT IGNORE INTO user (id,name,age) value(6,'pangqi',25); 기본 키 ID가 이미 존재합니다. 오류가 보고되지 않지만 다음 삽입 작업이 실행됩니다. 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 循环名; |
는 ON 조건을 설정한 후 조건을 충족하는 모든 데이터가 표시됩니다. Left Join과 Right Join의 차이점은 INNER는 포커스가 없다는 점입니다. MySQL은 조건에 맞는 모든 데이터를 찾아내므로 사용 시 데카르트 곱이 발생하지 않도록 주의해야 합니다. 또한 INNER는 MySQL의 기본 연결 방식이므로, 다음과 같은 INNER 키워드를 생략할 수 있습니다. | 🎜🎜🎜INTERVAL🎜🎜는 주로 다음과 같은 시간 간격에 사용됩니다. SELECT * FROM USER 여기서 create_time < NOW()-INTERVAL 4 DAY는 4일 전에 생성된 데이터를 반환합니다. DAY를 시간, 분, 연도, 월 등으로 바꿀 수도 있습니다. 데이터를 비교하는 데에도 사용할 수 있습니다. 예: SELECT INTERVAL(6,1,2,3,4,7,8,9,10) 은 4를 반환합니다. 왜냐하면 비교할 때 mysql은 인덱스 0의 데이터를 사용하여 다음 데이터가 인덱스 0인 데이터보다 크면 mysql은 이전 데이터의 인덱스를 반환합니다🎜🎜🎜🎜IS🎜🎜mysql의 IS 키워드는 IS NULL</에서만 사용됩니다. code> 또는 <code>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🎜🎜은 SHOW PROCESSLIST< /code>를 사용하여 현재 진행 중인 스레드를 볼 수 있으며, <code>KILL 스레드 ID 를 사용하여 스레드를 종료할 수 있습니다. , 두 가지 수정자가 있습니다. 1: CONNECTION 기본 수정자는 스레드 ID와 관련된 모든 연결을 종료할 수 있습니다. 2: QUERY 현재 실행 중인 문을 종료하지만 연결은 종료하지 않습니다.🎜🎜🎜🎜LABEL🎜🎜Statement label🎜🎜🎜🎜LEAVE 🎜🎜Leave 문은 지정된 레이블의 흐름 제어 문 블록을 종료하는 것을 의미하며 일반적으로 시작...끝 및 루프에 사용됩니다. 반복 및 while의 루프 문에서는 프로그래밍의 중단과 동일합니다. LEAVE 루프 이름; 🎜🎜🎜🎜LEFT🎜🎜LEFT() 함수는 지정된 문자열의 왼쪽 부분의 길이를 반환하는 문자열 함수입니다.예: 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' 이 경우 작성기가 기다리는 동안 두 번째 판독기가 도착하면 두 번째 판독기가 작성기 앞에 삽입되도록 허용됩니다. Writer는 다른 Reader가 없을 때만 작업을 시작할 수 있습니다. |
MOD | Remainder 함수, 예: 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)나머지 2를 반환 |
NATURAL | Natural Join은 일종의 JOIN으로, 테이블을 결합하는 것이 특징입니다. with 동일한 이름을 가진 필드는 레코드에 대해 자동으로 일치되며 동일한 이름을 가진 이러한 필드의 유형은 다를 수 있으므로 테이블의 필드 유형이 다를 수 있으며 이는 INNER, LEFT 및 기타 JOIN에 적용될 수 있습니다. 예: select * from user NATURAL LEFT JOIN user2</code > 여기서 user와 user2의 차이점은 id 외에도 user2 필드 뒤에 1이 추가되어 해당 ID가 자동으로 사용된다는 것입니다. 연결 중 결과는 실제로 동일합니다🎜🎜🎜🎜OPTIMIZE🎜🎜기능: 데이터베이스가 데이터를 저장할 때 테이블 공간과 인덱스를 데이터에 할당합니다. 삭제되면 데이터베이스는 이러한 리소스를 회수하지 않지만 새 데이터가 이러한 공백을 채울 때까지 기다립니다. OPTIMIZE 키워드를 사용하여 이러한 리소스를 적극적으로 삭제하세요. 🎜테이블 테이블 이름 최적화 🎜🎜🎜🎜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) 필드 uid가 사용자 테이블의 기본 키 필드 ID에 연결된다는 의미입니다🎜🎜🎜🎜REGEXP🎜🎜정규식, 작동 조건에서 정규식을 사용할 수 있습니다. 🎜SELECT * FROM user WHERE email NOT REGEXP'^를 사용하세요. [A-Z0-9._%-]+@[A-Z0-9.-]+.[A-Z]{2,4}$' |
RENAME | 테이블 이름을 수정하려면 다음을 사용하세요. rename table user2 to 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;
|
주어진 데이터를 지정된 횟수만큼 문자열로 복사합니다. : select REPEAT (3,3)
결과는 "333"
select REPLACE('이것은 문자열 또는 문자입니다.', 'one','two');🎜🎜🎜🎜🎜REVOKE🎜🎜다음과 같이 MySQL 사용자에게 부여된 권한을 취소합니다. <code>revoke all on *.* from testUser@host;🎜새로 고침을 기억하세요 완료 후 사용자 권한 테이블FLUSH PRIVILEGES;🎜🎜🎜🎜🎜RIGHT🎜🎜 다음과 같이 문자열에 대한 자르기 작업을 수행합니다. <code>select RIGHT('This is a string',5)🎜, 그러면 가로채기됩니다. 역순으로 문자열에 지정된 자릿수 🎜🎜🎜🎜RLIKE🎜🎜 퍼지 쿼리, like와 다른 경우 rlike의 내용은 규칙적일 수 있으며 다음과 같이 정확히 일치하지 않을 수 있습니다. <code>select * from user where email RLIKE '^www.*$';🎜 🎜🎜🎜🎜SEPARATOR🎜🎜은 쿼리 결과를 문자열이 포함된 한 줄로 연결할 수 있습니다. SEPARATOR는 커넥터를 지정하며 <code>SELECT *와 같이 GROUP BY와 함께 사용해야 합니다. , GROUP_CONCAT(사용자 이름 구분 기호 ';'로 사용자 이름 순서) SCORE FROM user GROUP BY email RLIKE '^www.*$'🎜🎜🎜🎜🎜USING🎜🎜연결 쿼리 중에 필드 이름이 동일하면 다음과 같이 사용할 수 있습니다. 다음과 같이 on 대신에 using이 나타날 수 있습니다. <code>select * from user left Join Students USING(quanxian)🎜🎜🎜🎜🎜WHILE🎜🎜저장 프로시저에 사용되는 루프 문 키워드를 함께 사용해야 합니다. 다음과 같은 흐름 제어 문 사용: <code>CREATE PROCEDURE fun() BEGIN SET @sum:=10 ; WHILE @sum > 0 DO SELECT @sum:=@sum-1; fun(); 논리 배타적 OR을 나타냅니다. 피연산자가 하나라도 NULL이면 반환 값은 NULL입니다. NULL이 아닌 피연산자의 경우 두 논리 true 및 false 값이 다르면 반환 결과는 1이고, 그렇지 않으면 0입니다. , 예: true XOR null 선택; true XOR true 선택; true 선택 다음과 같은 숫자: <code>CREATE TABLE Student3 (id int(11) unsigned zerofill not null, xuehao int(50) NOT NULL); Student3 값(1,2)에 삽입; 학생3에서 * 선택;🎜🎜🎜🎜🎜 🎜【관련 추천: 🎜mysql 비디오 튜토리얼🎜】🎜🎜
위 내용은 mysql에 키워드가 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!