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 返回的是创建时间在四天前的数据,也可以将DAY替换为小时,分钟,年月等,还可以用来比较数据如:<code>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 는 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>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 여기서 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

MySQL에서 사용자 계정을 작성하고 관리하는 단계는 다음과 같습니다. 1. 사용자 만들기 : CreateUser'Newuser '@'localhost'Identifiedby'Password '; 2. 권한 할당 : GrantSelect 사용, 삽입, UpdateOnmyDatabase.to'newuser'@'localhost '; 3. 권한 오류 수정 : Revokeallprivilegesonmydatabase.from'Newuser'@'localhost '; 그런 다음 권한을 재 할당합니다. 4. 최적화 권한 : showgra를 사용하십시오

MySQL은 빠른 개발 및 중소형 응용 프로그램에 적합한 반면 Oracle은 대기업 및 고 가용성 요구에 적합합니다. 1) MySQL은 오픈 소스이며 사용하기 쉬우 며 웹 응용 프로그램 및 중소 기업에 적합합니다. 2) Oracle은 강력하고 대기업 및 정부 기관에 적합합니다. 3) MySQL은 다양한 스토리지 엔진을 지원하며 Oracle은 풍부한 엔터프라이즈 수준의 기능을 제공합니다.

다른 관계형 데이터베이스와 비교하여 MySQL의 단점에는 다음이 포함됩니다. 1. 성능 문제 : 대규모 데이터를 처리 할 때 병목 현상을 만날 수 있으며 PostgreSQL은 복잡한 쿼리 및 빅 데이터 처리에서 더 잘 수행됩니다. 2. 확장 성 : 수평 스케일링 능력은 Google 스패너 및 Amazon Aurora만큼 좋지 않습니다. 3. 기능 제한 : 고급 기능에서 PostgreSQL 및 Oracle만큼 좋지 않으면 일부 기능에는 더 많은 사용자 정의 코드 및 유지 관리가 필요합니다.

MySQL은 Innerjoin, LeftJoin, RightJoin 및 FullouterJoin의 4 가지 조인 유형을 지원합니다. 1. innerjoin은 두 개의 테이블에서 행을 일치시키고 기준을 충족하는 결과를 반환하는 데 사용됩니다. 2. Leftjoin 오른쪽 테이블이 일치하지 않더라도 왼쪽 테이블의 모든 행을 반환합니다. 3. RightJoin은 LeftJoin과 반대이며 오른쪽 테이블의 모든 행을 반환합니다. 4. FullouterNoin은 조건을 충족하거나 충족하지 않는 두 테이블의 모든 행을 반환합니다.

높은 부하에서 MySQL의 성능은 다른 RDBMS에 비해 장점과 단점이 있습니다. 1) MySQL은 IndoDB 엔진 및 인덱싱, 쿼리 캐시 및 파티션 테이블과 같은 최적화 전략을 통해 높은 하중에서 잘 수행됩니다. 2) PostgreSQL은 MVCC 메커니즘을 통해 효율적인 동시 읽기 및 쓰기를 제공하는 반면 Oracle과 Microsoft SQLServer는 각각의 최적화 전략을 통해 성능을 향상시킵니다. 합리적인 구성 및 최적화를 통해 MySQL은 높은 부하 환경에서 잘 수행 할 수 있습니다.

innodbbufferpool은 데이터와 인덱싱 페이지를 캐싱하여 디스크 I/O를 줄여 데이터베이스 성능을 향상시킵니다. 작업 원칙에는 다음이 포함됩니다. 1. 데이터 읽기 : BufferPool의 데이터 읽기; 2. 데이터 작성 : 데이터 수정 후 BufferPool에 쓰고 정기적으로 디스크로 새로 고치십시오. 3. 캐시 관리 : LRU 알고리즘을 사용하여 캐시 페이지를 관리합니다. 4. 읽기 메커니즘 : 인접한 데이터 페이지를 미리로드합니다. Bufferpool을 크기를 조정하고 여러 인스턴스를 사용하여 데이터베이스 성능을 최적화 할 수 있습니다.

다른 프로그래밍 언어와 비교할 때 MySQL은 주로 데이터를 저장하고 관리하는 데 사용되는 반면 Python, Java 및 C와 같은 다른 언어는 논리적 처리 및 응용 프로그램 개발에 사용됩니다. MySQL은 데이터 관리 요구에 적합한 고성능, 확장 성 및 크로스 플랫폼 지원으로 유명하며 다른 언어는 데이터 분석, 엔터프라이즈 애플리케이션 및 시스템 프로그래밍과 같은 해당 분야에서 이점이 있습니다.

MySQL은 데이터 저장, 관리 및 분석에 적합한 강력한 오픈 소스 데이터베이스 관리 시스템이기 때문에 학습 할 가치가 있습니다. 1) MySQL은 SQL을 사용하여 데이터를 작동하고 구조화 된 데이터 관리에 적합한 관계형 데이터베이스입니다. 2) SQL 언어는 MySQL과 상호 작용하는 열쇠이며 CRUD 작업을 지원합니다. 3) MySQL의 작동 원리에는 클라이언트/서버 아키텍처, 스토리지 엔진 및 쿼리 최적화가 포함됩니다. 4) 기본 사용에는 데이터베이스 및 테이블 작성이 포함되며 고급 사용량은 Join을 사용하여 테이블을 결합하는 것과 관련이 있습니다. 5) 일반적인 오류에는 구문 오류 및 권한 문제가 포함되며 디버깅 기술에는 구문 확인 및 설명 명령 사용이 포함됩니다. 6) 성능 최적화에는 인덱스 사용, SQL 문의 최적화 및 데이터베이스의 정기 유지 보수가 포함됩니다.


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

Atom Editor Mac 버전 다운로드
가장 인기 있는 오픈 소스 편집기

SublimeText3 영어 버전
권장 사항: Win 버전, 코드 프롬프트 지원!

mPDF
mPDF는 UTF-8로 인코딩된 HTML에서 PDF 파일을 생성할 수 있는 PHP 라이브러리입니다. 원저자인 Ian Back은 자신의 웹 사이트에서 "즉시" PDF 파일을 출력하고 다양한 언어를 처리하기 위해 mPDF를 작성했습니다. HTML2FPDF와 같은 원본 스크립트보다 유니코드 글꼴을 사용할 때 속도가 느리고 더 큰 파일을 생성하지만 CSS 스타일 등을 지원하고 많은 개선 사항이 있습니다. RTL(아랍어, 히브리어), CJK(중국어, 일본어, 한국어)를 포함한 거의 모든 언어를 지원합니다. 중첩된 블록 수준 요소(예: P, DIV)를 지원합니다.

DVWA
DVWA(Damn Vulnerable Web App)는 매우 취약한 PHP/MySQL 웹 애플리케이션입니다. 주요 목표는 보안 전문가가 법적 환경에서 자신의 기술과 도구를 테스트하고, 웹 개발자가 웹 응용 프로그램 보안 프로세스를 더 잘 이해할 수 있도록 돕고, 교사/학생이 교실 환경 웹 응용 프로그램에서 가르치고 배울 수 있도록 돕는 것입니다. 보안. DVWA의 목표는 다양한 난이도의 간단하고 간단한 인터페이스를 통해 가장 일반적인 웹 취약점 중 일부를 연습하는 것입니다. 이 소프트웨어는

MinGW - Windows용 미니멀리스트 GNU
이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.
