집 >데이터 베이스 >MySQL 튜토리얼 >MySQL优化之简单语法_MySQL
--mysql CREATE TABLE emp ( id INT DEFAULT 12 )
--mysql -- 设置自增ID从N开始 CREATE TABLE emp ( ID INT PRIMARY KEY AUTO_INCREMENT ) AUTO_INCREMENT = 100 ; --(设置自增ID从100开始)设置自增列的步长,可以分为全局级别和会话级别,如果是会话级别,那么当用户新建一个会话的时候,那么步长又回到了全局级别mysql不能设置为表级别的步长!!
SHOW GLOBAL VARIABLES LIKE 'auto_incre%'; -- 全局变量问:如果有一张表,里面有个字段为id的自增主键,当已经向表里面插入了10条数据之后,删除了id为8,9,10的数据,再把mysql重启,
(1) SELECT MAX(id) FROM person 针对特定表 (2) SELECT LAST_INSERT_ID() 函数 针对任何表 (3) SELECT @@identity 针对任何表@@identity 是表示的是最近一次向具有identity属性(即自增列)的表插入数据时对应的自增列的值,是系统定义的全局变量。
(4) SHOW TABLE STATUS LIKE 'person'如果针对特定表,建议使用这一种方法
DESC emp
ALTER TABLE emp RENAME emp2
ALTER TABLE emp2 MODIFY id BIGINT
ALTER TABLE emp2 CHANGE id id BIGINT
ALTER TABLE emp2 ADD NAME NVARCHAR(200) NULL
ALTER TABLE emp2 DROP NAME
ALTER TABLE emp2 DROP FOREIGN KEY fk_emp_dept--删除主键约束
ALTER TABLE emp2 DROP PRIMARY KEY pk_emp_dept
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;无论innodb引擎还是MYISAM引擎的表中,只能有一个自增列,并且自增列一定是索引列,无论是二级索引还是主键索引