CREATE DATABASE database_name;
SHOW DATABASES;
USE database_name;
SHOW TABLES;(前提是使用数据库)
DROP DATABASE database_name;
CREATE TABLE table_name(
属性名1 数据类型 [完整性约束],
属性名2 数据类型 [完整性约束],
属性名3 数据类型 [完整性约束]
… …
);
约束:
primary key 表示当前属性为该表的主键,可以区分不同的行记录
foreign key 修饰的属性为该表的外键,表之间关联使用的键
not null 表示属性不能为空
unique 表示属性的值是唯一的
auto_increment (MYSQL特色)表示属性是自增的,自增类型为整形
default 给属性设定默认值
2.1 DESC table_name;
2.2 SHOW CREATE TABLE table_name;
在使用过程中不满足要求可能要修改表
用的SQL关键字是alter
ALTER TABLE old_table_name RENAME[to] new_table_name;
ALTER TABLE table_name CHANGE 旧属性名 新属性名 新属性类型;
ALTER TABLE table_name MODIFY 属性名 属性类型
ALTER TABLE table_name ADD 属性名 属性类型 [完整性约束]
新增一个字段放到属性列的第一位;
ALTER TABLE table_name ADD 属性名 属性类型 [完整性约束] FIRST;
增加字段在某些字段后面
ALTER TABLE table_name ADD 属性名 属性类型 [完整性约束] AFTER(属性名,属性名… …);
ALTER TABLE table_name DROP 属性名;
ALTER TABLE table_name MODIFY 属性1 属性类型 first | after 属性2;
ALTER TABLE table_name ENGINE=InNoDB | myISAM;
先写下所有的属性,在最后利用INDEX关键字,将需要创建索引的属性名放在括号里
CREATE TABLE table_name(
属性名 属性类型,
属性名 属性类型,
… …
[unique|fulltext|spatial] INDEX|KEY(属性名) index_name (属性1 [(长度)] [ASC|DESC]) )
解释:中括号[ ]内的都是可选参数,UNIQUE是唯一性索引,FULLTEXT是全文索引,SPATIAL是空间索引,INDEX和KEY是表示索引用到,二者选一即可。长度是索引的长度,必须是字符串类型才可以使用。
这个例子太复杂,通过几个例子看一下
eg:
创建普通索引:
CREATE TABLE student(
id INT,
name VARCHAR(20),
sex BOOLEAN,
INDEX(id)
)
创建唯一索引
CREATE TABLE index1(
id INT,
name VARCHAR(20),
sex BOOLEAN,
UNIQUE INDEX(id)
)
CREATE [unique|fulltext|spatial] INDEX idx_id(索引名) ON 表名(属性名);(推荐)
ALTER TABLE 表名 ADD [unique|fulltext|spatial] INDEX index_name(属性名);
DROP INDEX index_name ON (表名);
在普通的SELECT语句前面加上EXPLAIN
select @@autocommit;
0:手动提交事务 1:自动提交事务
set autocommit = 0; -> 设置事务类型为 手动提交事务
set autocommit = 1; -> 设置事务类型为 自动提交事务
begin;
commit;
设置一个名称为tg的保存点
savepoint tg;
回滚到tg位置到
rollback to tg;
select @@TX_ISOLATION;
set global TX_ISOLATION= ‘xxx’;
xxx为隔离级别名称,分为5点:
SHOW ENGINES;
CREATE TABLE table_name ENGINE = INNODB;
ALTER TABLE table_name ENGINE= INNODB;
需要修改MySQL配置文件
Windows下文件为“:my.ini
Unix下文件为:my.cof
default-storage-engine = INNODB;
修改完配置修改保存重启就可以生效