一、数据库操作
1.基本命令
create database 数据库名; //创建数据库
show databases; //查询数据库
drop database 数据库名; //删除数据库
2. 存储引擎
(1).InnoDB:提供事物、回滚、崩溃修复能力和多版本并发控制的事务安全。
同一个数据中可以使用多种存储引擎的表,一个表要求较高的事物处理可以选择InnoDB,查询要求比较高的可以选择MyISAM,如果需要一个用于查询的临时表,可以选择MEMORY存储引擎。
(2).修改my.ini中的"default-storage-engine=INNODB"为"default-storage-engine=MyISAM"然后重启服务,使用show variables like 'storage_engine'可以查看修改成功。
二、表操作
1.创建表
create table 表名(属性名 数据类型 【完整性约束条件】,
属性名 数据类型 【完整性约束条件】);
eg: create table example(id int,
name varchar(20),
sex boolean);
【完整性约束条件】
PRIMARAY KEY:属性为表的主键<唯一>
FOREIGN KEY:属性为表的外键
NOT NULL:属性的值不为空
UNIQUE :属性的值唯一<所有记录中该字段的值不能重复>
AUTO_INCREMENT:属性的值自动增加
DEFAULT :将该属性设置为默认值
(1).主键主要目的是帮助MySQL以最快的速度查找到表中的某一条信息。
单字段主键:
eg: create table example(id int primary key,
name varchar(20),
sex boolean);
多字段主键:
eg:create table example2(stu_id int,
course_id int,
grade float,
primary key(stu_id,course_id));
(2).表的外键作用是建立当前表与其父表的关联关系,父表中删除某条信息,子表也对应改变。
constraint 外键别名 foreign key(属性 1.1 属性1.2,...,属性1.n) references 表名(属性2.1,属性2.2,...,属性2.n)
eg: create table exampl3(id int primary key,
stu_id int,
course_id int,
constraint c_fk foreign key(stu_id,course_id) references example2(stu_id,course_id));
(3).设置默认值,插入新记录没有为某个字段赋值时,MySQL自动插入设置的默认值。
eg: create table example4(id int primary key auto_increment,
name varchar(20) not null,
english varchar(20) default 'zero');
describe 表名; //查看表结构 缩写desc 表名;
show create table 表名 \G; //查看表结构的详细定义
show tables; //查看表
2.修改表
alter table 旧表名 rename [to] 新表名; //修改表名
alter table 表名 modify 属性名 数据类型; //修改字段的数据类型
alter table 表名 change 旧属性名 新属性名 新数据类型; //修改字段名
alter table 表名 add 属性名1 数据类型 [完整性约束条件] [FIRST|AFTER 属性名2] //增加字段
alter table 表名 drop 属性名; //删除字段
alter table 表名 modify 属性名1 数据类型 first|after 属性名2; // 修改字段排列位置
alter table 表名 engine=存储引擎名; //修改表的存储引擎 alter table user engine = MyISAM; ==>show create table user \G;
alter table 表名 drop foreign key 外键别名 ;//删除表的外键约束
3.删除表
(1).删除无关联的普通表
drop table 表名; //最好对表数据做备份
(2).删除有关联的表的父表
1). 先删子表,后删父表<会影响子表数据>
2). 先删外键约束,后删父表<不会影响子表数据>
alter table 表名 drop foreign key 外键别名;
drop table father-table;
基础要点:
1.MySQL中规定自增列(不能为空且值唯一)必须为主键。
2.创建的表的表结构存储在.frm文件中,数据和索引存在innodb_data_home_dir和innodb_data_file_path定义的表空间中。
3.InnoDB:外键所在的表为子表,外键所依赖的表为父表。父表中被子表外键关联的字段必须为主键。当删除,更新父表的某条信息时,子表也必须有相应的改变。