Mysql의 SQL 서버 모드에 대한 간략한 소개
mysql SQL Server 모드
MySQL 서버는 다양한 SQL 모드에서 작동할 수 있으며, 다양한 클라이언트에 다양한 모드를 적용할 수 있습니다. 이런 방식으로 각 응용 프로그램은 자체 필요에 따라 서버의 작동 모드를 사용자 정의할 수 있습니다.
스키마는 MySQL이 지원해야 하는 SQL 구문과 수행해야 하는 데이터 유효성 검사의 종류를 정의합니다. 이를 통해 다양한 환경 및 다른 데이터베이스 서버에서 MySQL을 더 쉽게 사용할 수 있습니다. --sql-mode="modes" 옵션으로 mysqld를 시작하여 기본 SQL 모드를 설정할 수 있습니다. 재설정하려는 경우 이 값을 비워 둘 수도 있습니다(--sql-mode = ""). 시작 후 SET [SESSION|GLOBAL] sql_mode='modes' 문을 사용하여 sql_mode
변수
를 설정하여 SQL 모드를 변경할 수도 있습니다. GLOBAL 변수를 설정하려면 SUPER 권한이 필요하며 해당 시점부터 연결된 모든 클라이언트의 작동에 영향을 미칩니다. SESSION 변수 설정은 현재 클라이언트에만 영향을 미칩니다. 모든 클라이언트는 언제든지 해당 세션의 sql_mode 값을 변경할 수 있습니다. Modesis는 쉼표(',')로 구분된 일련의 모드입니다. SELECT @@sql_mode 문 을 사용하여 현재 모드를 쿼리
할 수 있습니다. 기본값은 비어 있습니다(모드가 설정되지 않음). 주로 중요한 sql_mode 값
・ANSI
표준 SQL과 더 일관되도록 구문과 동작을 변경합니다.
・STRICT_TRANS_TABLES
주어진 값을 트랜잭션 테이블에 삽입할 수 없으면 명령문을 중단합니다. 비트랜잭션 테이블의 경우 단일 행 명령문이나 다중 행 명령문의 행 1에 값이 나타나면 해당 명령문은 삭제됩니다. 자세한 설명은 이 섹션의 뒷부분에서 제공됩니다.
・전통적인
MySQL을 "전통적인" SQL 데이터베이스 시스템처럼 작동하도록 만듭니다. 이 모드에 대한 간단한 설명은 잘못된 값이 열에 삽입될 때 "경고 대신 오류를 표시"하는 것입니다. 참고
: 오류가 발견되는 즉시 INSERT/UPDATE를 포기하세요. 이는 비트랜잭션 스토리지 엔진을 사용하는 경우 원하는 것이 아닙니다. 오류 이전에 변경된 데이터는 "롤오버"되지 않아 업데이트가 "부분적으로만 이루어지기" 때문입니다. 본 매뉴얼에서는 "엄격 모드"를 지칭하며, 이는 최소한 STRICT _TRANS_TABLES 또는 STRICT _ALL_TABLES가 활성화된 모드를 의미합니다. 지원되는 모든 모드는 아래에 설명되어 있습니다.
・ALLOW_INVALID_DATES
엄격 모드에서는 모든 날짜를 확인하지 마세요. 1~12일 사이의 월과 1~31일 사이의 일만 확인합니다. 이는 세 가지 다른 필드에서 연도, 월, 일을 가져오고 사용자가 삽입한 내용을 정확하게 저장하려는 경우(날짜 유효성 검사 없이) 웹 애플리케이션에서 중요합니다. 이 모드는 DATE 및 DATETIME 열에 대해 작동합니다. 날짜 유효성 검사가 필요한 TIMESTAMP 열에는 적합하지 않습니다. 엄격 모드가 활성화된 경우 서버에는 각각 1~12 및 1~31 범위뿐만 아니라 유효한 월과 일이 필요합니다. 예를 들어 '2004-04-31'은 엄격 모드가 비활성화된 경우 유효하지만 엄격 모드가 활성화된 경우에는 불법입니다. 엄격 모드에서 고정 날짜의 마스킹을 허용하려면 ALLOW_INVALID_DATES도 활성화해야 합니다.
・ANSI_QUOTES
'"'를 문자열
에 대한 인용 문자가 아닌 식별자 인용(''' 인용 문자)으로 처리합니다. ANSI 모드에서는 다음을 수행할 수 있습니다. 식별자를 인용하려면 여전히 '`'를 사용하세요. ANSI_QUOTES를 사용하면 문자열이 INSERT 중에 ・ERROR_FOR_pISION_BY_ZERO식별자로 해석되기 때문에 큰따옴표로 문자열을 인용할 수 없습니다. 또는 UPDATE, 0으로 나누면(또는 MOD(X, 0)) 0으로 나눌 때 오류가 발생합니다(그렇지 않으면 경고). INSERT IGNORE 또는 UPDATE IGNORE에 사용되는 경우 NULL
을 반환합니다. , MySQL은 0으로 나누기 경고를 생성하지만 연산 결과는 NULL입니다. HIGH_NOT_PRECEDENCENOT
연산자 의 우선순위는 표현식입니다. c는 NOT(a BETWEEN b AND c)으로 해석됩니다. 일부 이전 버전의 MySQL에서는 a) BETWEEN b AND c로 해석됩니다. 이전의 더 높은
우선 순위를 얻으려면 HIGH_NOT_PRECEDENCESQL 모드를 활성화하세요. > 결과.
mysql> SET sql_mode = ''; mysql> SELECT NOT 1 BETWEEN -5 AND 5; -> 0 mysql> SET sql_mode = 'broken_not'; mysql> SELECT NOT 1 BETWEEN -5 AND 5; -> 1
・IGNORE_SPACE
는 함수 이름과 '(' 사이에 공백을 허용합니다. 모든 함수 이름을 저장된 단어로 처리하도록 강제합니다. 결과는 다음과 같습니다. 단어로 저장된 데이터베이스, 테이블 또는 열 이름에 액세스하려면 이를 인용해야 합니다. 예를 들어 USER() 함수 때문에 mysql 데이터베이스의 사용자 테이블 이름과 테이블의 사용자 열은 다음과 같습니다. 저장되었으므로 인용해야 합니다:
SELECT "User" FROM mysql."user";
・NO_AUTO_CREATE_USER
防止GRANT自动创建新用户,除非还指定了密码。
・NO_AUTO_VALUE_ON_ZERO
NO_AUTO_VALUE_ON_ZERO影响AUTO_INCREMENT列的处理。一般情况,你可以向该列插入NULL或0生成下一个序列号。NO_AUTO_VALUE_ON_ZERO禁用0,因此只有NULL可以生成下一个序列号。
如果将0保存到表的AUTO_INCREMENT列,该模式会很有用。(不推荐采用该惯例)。例如,如果你用mysqldump转储表并重载,MySQL遇到0值一般会生成新的序列号,生成的表的内容与转储的表不同。重载转储文件前启用NO_AUTO_VALUE_ON_ZERO可以解决该问题。mysqldump在输出中自动包括启用NO_AUTO_VALUE_ON_ZERO的语句。
・NO_BACKSLASH_ESCAPES
禁用反斜线字符(‘\')做为字符串内的退出字符。启用该模式,反斜线则成为普通字符。
・NO_DIR_IN_CREATE
创建表时,忽视所有INDEX DIRECTORY和DATA DIRECTORY指令。该选项对从复制服务器有用。
・NO_ENGINE_SUBSTITUTION
如果需要的存储引擎被禁用或未编译,可以防止自动替换存储引擎。
・NO_FIELD_OPTIONS
不要在SHOW CREATE TABLE的输出中打印MySQL专用列选项。该模式在可移植模式(portability mode)下用于mysqldump。
・NO_KEY_OPTIONS
不要在SHOW CREATE TABLE的输出中打印MySQL专用索引选项。该模式在可移植模式(portability mode)下用于mysqldump。
・NO_TABLE_OPTIONS
不要在SHOW CREATE TABLE的输出中打印MySQL专用表选项(例如ENGINE)。该模式在可移植模式(portability mode)下用于mysqldump。
・NO_UNSIGNED_SUBTRACTION
在减运算中,如果某个操作数没有符号,不要将结果标记为UNSIGNED。请注意这样使UNSIGNED BIGINT不能100%用于上下文中。参见12.8节,“Cast函数和操作符”。
・NO_ZERO_DATE
在严格模式,不要将 '0000-00-00'做为合法日期。你仍然可以用IGNORE选项插入零日期。在非严格模式,可以接受该日期,但会生成警告。
・NO_ZERO_IN_DAT
在严格模式,不接受月或日部分为0的日期。如果使用IGNORE选项,我们为类似的日期插入'0000-00-00'。在非严格模式,可以接受该日期,但会生成警告。
・ONLY_FULL_GROUP_BY
不要让GROUP BY部分中的查询指向未选择的列。
・PIPES_AS_CONCAT
将||视为字符串连接操作符(+)(同CONCAT()),而不视为OR。
・REAL_AS_FLOAT
将REAL视为FLOAT的同义词,而不是DOUBLE的同义词。
・STRICT_TRANS_TABLES
为所有存储引擎启用严格模式。非法数据值被拒绝。后面有详细说明。
・STRICT_TRANS_TABLES
为事务存储引擎启用严格模式,也可能为非事务存储引擎启用严格模式。后面有详细说明。
严格模式控制MySQL如何处理非法或丢失的输入值。有几种原因可以使一个值为非法。例如,数据类型错误,不适合列,或超出范围。当新插入的行不包含某列的没有显示定义DEFAULT子句的值,则该值被丢失。
对于事务表,当启用STRICT_ALL_TABLES或STRICT_TRANS_TABLES模式时,如果语句中有非法或丢失值,则会出现错误。语句被放弃并滚动。
对于非事务表,如果插入或更新的第1行出现坏值,两种模式的行为相同。语句被放弃,表保持不变。如果语句插入或修改多行,并且坏值出现在第2或后面的行,结果取决于启用了哪个严格选项:
・对于STRICT_ALL_TABLES,MySQL返回错误并忽视剩余的行。但是,在这种情况下,前面的行已经被插入或更新。这说明你可以部分更新,这可能不是你想要的。要避免这点,最好使用单行语句,因为这样可以不更改表即可以放弃。
・对于STRICT_TRANS_TABLES,MySQL将非法值转换为最接近该列的合法值并插入调整后的值。如果值丢失,MySQL在列中插入隐式 默认值。在任何情况下,MySQL都会生成警告而不是给出错误并继续执行语句。13.1.5节,“CREATE TABLE语法”描述了隐式默认值。
엄격 모드에서는 '2004-04-31'과 같은 잘못된 날짜를 허용하지 않습니다. '2004-04-00' 또는 '0' 날짜와 같이 '0' 부분을 사용하는 금지된 날짜는 허용되지 않습니다. 이를 비활성화하려면 엄격 모드를 기반으로 NO_ZERO_IN_DATE 및 NO_ZERO_DATE SQL 모드를 활성화합니다.
엄격 모드를 사용하지 않는 경우(예: STRICT_TRANS_TABLES 또는 STRICT_ALL_TABLES 모드를 활성화하지 않음) MySQL은 조정된 값을 삽입하고 잘못된 값 또는 누락된 값에 대해 경고를 표시합니다. 엄격 모드에서는 INSERT IGNORE 또는 UPDATE IGNORE를 통해 이 작업을 수행할 수 있습니다. 섹션 13.5.4.22, "경고 표시 구문"을 참조하십시오.
위 내용은 Mysql의 SQL 서버 모드에 대한 간략한 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

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

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

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

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











MySQL 데이터베이스에서 사용자와 데이터베이스 간의 관계는 권한과 테이블로 정의됩니다. 사용자는 데이터베이스에 액세스 할 수있는 사용자 이름과 비밀번호가 있습니다. 권한은 보조금 명령을 통해 부여되며 테이블은 Create Table 명령에 의해 생성됩니다. 사용자와 데이터베이스 간의 관계를 설정하려면 데이터베이스를 작성하고 사용자를 생성 한 다음 권한을 부여해야합니다.

데이터 통합 단순화 : AmazonRdsMysQL 및 Redshift의 Zero ETL 통합 효율적인 데이터 통합은 데이터 중심 구성의 핵심입니다. 전통적인 ETL (추출, 변환,로드) 프로세스는 특히 데이터베이스 (예 : AmazonRDSMySQL)를 데이터웨어 하우스 (예 : Redshift)와 통합 할 때 복잡하고 시간이 많이 걸립니다. 그러나 AWS는 이러한 상황을 완전히 변경 한 Zero ETL 통합 솔루션을 제공하여 RDSMYSQL에서 Redshift로 데이터 마이그레이션을위한 단순화 된 거의 실시간 솔루션을 제공합니다. 이 기사는 RDSMYSQL ZERL ETL 통합으로 Redshift와 함께 작동하여 데이터 엔지니어 및 개발자에게 제공하는 장점과 장점을 설명합니다.

MySQL은 설치가 간단하고 강력하며 데이터를 쉽게 관리하기 쉽기 때문에 초보자에게 적합합니다. 1. 다양한 운영 체제에 적합한 간단한 설치 및 구성. 2. 데이터베이스 및 테이블 작성, 삽입, 쿼리, 업데이트 및 삭제와 같은 기본 작업을 지원합니다. 3. 조인 작업 및 하위 쿼리와 같은 고급 기능을 제공합니다. 4. 인덱싱, 쿼리 최적화 및 테이블 파티셔닝을 통해 성능을 향상시킬 수 있습니다. 5. 데이터 보안 및 일관성을 보장하기위한 지원 백업, 복구 및 보안 조치.

MySQL 사용자 이름 및 비밀번호를 작성하려면 : 1. 사용자 이름과 비밀번호를 결정합니다. 2. 데이터베이스에 연결; 3. 사용자 이름과 비밀번호를 사용하여 쿼리 및 명령을 실행하십시오.

1. 올바른 색인을 사용하여 스캔 한 데이터의 양을 줄임으로써 데이터 검색 속도를 높이십시오. 테이블 열을 여러 번 찾으면 해당 열에 대한 인덱스를 만듭니다. 귀하 또는 귀하의 앱이 기준에 따라 여러 열에서 데이터가 필요한 경우 복합 인덱스 2를 만듭니다. 2. 선택을 피하십시오 * 필요한 열만 선택하면 모든 원치 않는 열을 선택하면 더 많은 서버 메모리를 선택하면 서버가 높은 부하 또는 주파수 시간으로 서버가 속도가 느려지며, 예를 들어 Creation_at 및 Updated_at 및 Timestamps와 같은 열이 포함되어 있지 않기 때문에 쿼리가 필요하지 않기 때문에 테이블은 선택을 피할 수 없습니다.

Navicat 자체는 데이터베이스 비밀번호를 저장하지 않으며 암호화 된 암호 만 검색 할 수 있습니다. 솔루션 : 1. 비밀번호 관리자를 확인하십시오. 2. Navicat의 "비밀번호 기억"기능을 확인하십시오. 3. 데이터베이스 비밀번호를 재설정합니다. 4. 데이터베이스 관리자에게 문의하십시오.

데이터베이스 산 속성에 대한 자세한 설명 산 속성은 데이터베이스 트랜잭션의 신뢰성과 일관성을 보장하기위한 일련의 규칙입니다. 데이터베이스 시스템이 트랜잭션을 처리하는 방법을 정의하고 시스템 충돌, 전원 중단 또는 여러 사용자의 동시 액세스가 발생할 경우에도 데이터 무결성 및 정확성을 보장합니다. 산 속성 개요 원자력 : 트랜잭션은 불가분의 단위로 간주됩니다. 모든 부분이 실패하고 전체 트랜잭션이 롤백되며 데이터베이스는 변경 사항을 유지하지 않습니다. 예를 들어, 은행 송금이 한 계정에서 공제되지만 다른 계정으로 인상되지 않은 경우 전체 작업이 취소됩니다. BeginTransaction; updateAccountssetBalance = Balance-100WH

다음 명령으로 MySQL 데이터베이스를보십시오. 서버에 연결하십시오. mysql -u username -p password run show database; 기존의 모든 데이터베이스를 가져 오려는 명령 데이터베이스 선택 : 데이터베이스 이름 사용; 보기 테이블 : 테이블 표시; 테이블 구조보기 : 테이블 이름을 설명합니다. 데이터보기 : 테이블 이름에서 *를 선택하십시오.
