MySQL优化之简单语法_MySQL
1、默认约束
--mysql CREATE TABLE emp ( id INT DEFAULT 12 )
2、设置自增列
MYSQL的自增列一定要是有索引的列,设置种子值要在表的后面设置--mysql -- 设置自增ID从N开始 CREATE TABLE emp ( ID INT PRIMARY KEY AUTO_INCREMENT ) AUTO_INCREMENT = 100 ; --(设置自增ID从100开始)
mysql服务器维护着2种mysql的系统参数(系统变量):全局变量(global variables)和会话变量(session variables)。
它们的含义与区别如其各占的名称所示,session variables是在session级别的,对其的变更只会影响到本session;global variables是系统级别的,
对其的变更会影响所有新session(变更时已经存在session不受影响)至下次mysql server重启动。
注意它的变更影响不能跨重启,要想再mysql server重启时也使用新的值,那么就只有通过在命令行指定变量选项或者更改选项文件来指定,
而通过SET变更是达不到跨重启的。
每一个系统变量都有一个默认值,这个默认值是在编译mysql系统的时候确定的。
对系统变量的指定,一般可以在server启动的时候在命令行指定选项或者通过选项文件来指定
当然,大部分的系统变量,可以在系统的运行时,通过set命令指定其值。
查看系统当前默认的自增列种子值和步长值
SHOW GLOBAL VARIABLES LIKE 'auto_incre%'; -- 全局变量
之后再插入一条数据,那么这条数据的id值应该是多少,是8,还是11?
答:如果表的类型为MyISAM,那么是11。如果表的类型为InnoDB,则id为8。
这是因为两种类型的存储引擎所存储的最大ID记录的方式不同,MyISAM表将最大的ID记录到了数据文件里,重启mysql自增主键的最大ID值也不会丢失;
而InnoDB则是把最大的ID值记录到了内存中,所以重启mysql或者对表进行了OPTIMIZE操作后,最大ID值将会丢失。
顺便说一下MYSQL获取当前表的自增值的四种方法
(1) SELECT MAX(id) FROM person 针对特定表 (2) SELECT LAST_INSERT_ID() 函数 针对任何表 (3) SELECT @@identity 针对任何表
一般系统定义的全局变量都是以@@开头,用户自定义变量以@开头。
使用@@identity的前提是在进行insert操作后,执行select @@identity的时候连接没有关闭,否则得到的将是NULL值。
(4) SHOW TABLE STATUS LIKE 'person'
得出的结果里边对应表名记录中有个Auto_increment字段,里边有下一个自增ID的数值就是当前该表的最大自增ID.
3、查看表定义
DESC emp
4、修改表名
ALTER TABLE emp RENAME emp2
5、修改字段的数据类型
将id字段的int类型改为bigintALTER TABLE emp2 MODIFY id BIGINT
6、修改字段名
MYSQL里修改字段名的时候需要加上字段的数据类型否则会报错,而CHANGE也可以只修改数据类型,实现和MODIFY同样的效果,方法是将SQL语句中的“新字段名”和“旧字段名”设置为相同的名称,只改变“数据类型”,改变数据类型,例如刚才那个例子,将id列改为bigint数据类型ALTER TABLE emp2 CHANGE id id BIGINT
7、添加字段
ALTER TABLE emp2 ADD NAME NVARCHAR(200) NULL
8、删除字段
MYSQL删除字段不需要添加COLUMN关键字的ALTER TABLE emp2 DROP NAME
9、删除外键约束
如果是外键约束,需要使用 DROP FOREIGN KEY,如果是主键约束需要使用DROP PRIMARY KEY--删除外键约束
ALTER TABLE emp2 DROP FOREIGN KEY fk_emp_dept
ALTER TABLE emp2 DROP PRIMARY KEY pk_emp_dept
10、删除表
DROP TABLE emp2
DROP TABLE IF EXISTS emp1 ,emp2
补充:
USE test; -- myisam引擎 CREATE TABLE TEST( ID int unsigned not null auto_increment, name varchar(10) not null, key(name,id))engine=MYISAM auto_increment=100 ; -- innodb引擎 CREATE TABLE TESTIdentity( ID int unsigned not null auto_increment, NID INT UNSIGNED , name varchar(10) not null, key(id))engine=INNODB auto_increment=100 ; --或者主键 CREATE TABLE TESTIdentity( ID int unsigned not null auto_increment, NID INT UNSIGNED , name varchar(10) not null, key(id))engine=INNODB auto_increment=100 ; [Database4] ErrorCode: -2147467259, Number: 1075 ErrorMessage: Incorrect table definition; there can be only one auto column and it must be defined as a key alter table TESTIdentity modify column nid int auto_increment;

핫 AI 도구

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

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

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

Clothoff.io
AI 옷 제거제

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

인기 기사

뜨거운 도구

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

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

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

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

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

뜨거운 주제











API 개발이라고 하면 DjangoRESTFramework, Flask, FastAPI를 떠올릴 수 있습니다. 예, API를 작성하는 데 사용할 수 있습니다. 하지만 오늘 공유되는 프레임워크를 사용하면 기존 기능을 더 빠르게 API로 변환할 수 있습니다. Sanic 소개 Sanic[1]은 성능 향상을 위해 설계된 Python3.7+ 웹 서버 및 웹 프레임워크입니다. Python 3.5에 추가된 async/await 구문을 사용할 수 있으므로 효과적으로 차단을 방지하고 응답 속도를 향상시킬 수 있습니다. Sanic은 간단하고 빠른 생성 및 출시 방법을 제공하기 위해 최선을 다하고 있습니다.

PHP 8.0 릴리스에서는 새로운 유형 별칭 구문이 추가되어 사용자 정의 유형을 더 쉽게 사용할 수 있습니다. 이 기사에서는 이 새로운 구문과 이것이 개발자에게 미치는 영향을 자세히 살펴보겠습니다. 유형 별칭이란 무엇입니까? PHP에서 유형 별칭은 기본적으로 다른 유형의 이름을 참조하는 변수입니다. 이 변수는 다른 유형처럼 사용할 수 있으며 코드의 어느 위치에서나 선언할 수 있습니다. 이 구문의 주요 기능은 일반적으로 사용되는 유형에 대한 사용자 정의 별칭을 정의하여 코드를 더 쉽게 읽고 이해할 수 있도록 하는 것입니다.

람다 표현식은 이름이 없는 익명 함수이며 구문은 (parameter_list)->expression입니다. 익명성, 다양성, 커링 및 폐쇄 기능이 특징입니다. 실제 응용 프로그램에서는 람다 표현식을 사용하여 합산 함수 sum_lambda=lambdax,y:x+y와 같은 함수를 간결하게 정의하고 map() 함수를 목록에 적용하여 합산 작업을 수행할 수 있습니다.

PHP는 웹 개발에 널리 사용되는 서버 측 스크립팅 언어이며, PHP8.0 버전에는 객체 지향 프로그래밍을 보다 편리하고 간결하게 만들기 위해 새로운 상위 클래스 호출 구문이 도입되었습니다. PHP에서는 상속을 통해 상위 클래스와 하나 이상의 하위 클래스를 만들 수 있습니다. 하위 클래스는 상위 클래스의 속성과 메서드를 상속할 수 있으며, 상위 클래스의 메서드를 재정의하여 기능을 수정하거나 확장할 수 있습니다. 일반적인 PHP 상속에서는 하위 클래스에서 상위 클래스의 메서드를 호출하려면 parent 키워드를 사용하여 상위 클래스를 참조해야 합니다.

Go 언어와 JS의 연결 및 차이점 Go 언어(Golang이라고도 함)와 JavaScript(JS)는 현재 널리 사용되는 프로그래밍 언어로, 어떤 측면에서는 서로 관련되어 있지만 다른 측면에서는 분명한 차이점이 있습니다. 이 기사에서는 Go 언어와 JavaScript 간의 연결과 차이점을 살펴보고 독자가 이 두 프로그래밍 언어를 더 잘 이해할 수 있도록 구체적인 코드 예제를 제공합니다. 연결: Go 언어와 JavaScript는 모두 크로스 플랫폼이며 다른 운영 체제에서 실행될 수 있습니다.

C 언어는 시스템 프로그래밍과 응용 소프트웨어 개발에 널리 사용되는 프로그래밍 언어입니다. 기본 단위에는 주로 변수, 데이터 유형, 연산자 등이 포함됩니다. C 언어의 기본을 배우고 이해할 때 이러한 기본 단위를 익히는 것은 특히 중요합니다. 이 글에서는 독자의 이해를 돕기 위해 구체적인 코드 예제를 통해 C 언어의 기본 단위를 소개합니다. 먼저 C 언어의 변수에 대해 살펴보겠습니다. 변수는 C 언어에서 데이터를 저장하는 데 사용됩니다. 각 변수는 고유한 데이터 유형을 가지며 정수, 부동 소수점 등 다양한 유형의 데이터를 저장할 수 있습니다.

C 프로그래밍 언어 C는 원래 UNIX 운영 체제를 개발하기 위해 Bell Labs의 Dennis M. Ritchie가 개발한 범용 고급 언어입니다. C는 1972년 DECPDP-11 컴퓨터에서 처음 구현되었습니다. 1978년에 Brian Kernighan과 Dennis Ritchie는 현재 K&R 표준으로 알려진 C에 대한 최초의 공개 설명을 작성했습니다. UNIX 운영 체제, C 컴파일러 및 거의 모든 UNIX 응용 프로그램은 C로 작성되었습니다. 여러 가지 이유로 C 언어는 이제 널리 사용되는 전문 언어가 되었습니다. 구조화된 언어는 배우기 쉽습니다. 효율적인 프로그램을 생성하며 다양한 컴퓨터에서 실행될 수 있습니다.

C 언어의 거듭제곱 연산 구문 및 사용법 소개: C 언어에서 거듭제곱 연산(powerop)은 숫자의 거듭제곱을 계산하는 데 사용되는 일반적인 수학 연산입니다. C 언어에서는 표준 라이브러리 함수나 사용자 정의 함수를 사용하여 지수 연산을 구현할 수 있습니다. 이 기사에서는 C 언어의 누승 연산의 구문과 사용법을 자세히 소개하고 구체적인 코드 예제를 제공합니다. 1. math.h의 pow() 함수를 사용합니다. C 언어에서는 실행을 위해 math.h 표준 라이브러리에 pow() 함수가 제공됩니다.
