my sql 中ENGINE
时间: 2023-08-16 20:10:28 浏览: 125
在 MySQL 中,ENGINE 是用于指定存储引擎的关键字。存储引擎是 MySQL 数据库管理系统用于存储、管理和检索数据的组件。
MySQL 支持多种存储引擎,每个存储引擎都有其特定的功能、性能和限制。常见的存储引擎包括 InnoDB、MyISAM、MEMORY、CSV、ARCHIVE 等。
在创建表时,可以使用 ENGINE 关键字来指定所使用的存储引擎。示例代码如下:
CREATE TABLE my_table (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255)
) ENGINE=InnoDB;
在上述示例中,创建了一个名为 my_table 的表,并指定了 InnoDB 存储引擎。
可以通过 SHOW TABLE STATUS 命令来查看表的存储引擎信息。示例代码如下:
SHOW TABLE STATUS LIKE 'my_table';
通过上述命令,可以查看包括存储引擎在内的表的各种信息。
需要注意的是,不同的存储引擎具有不同的特性和适用场景。选择合适的存储引擎对于数据库的性能和功能是很重要的。因此,在选择存储引擎时,需要考虑到数据库的需求和特定场景的要求。
相关问题
学生学籍管理系统my sql代码
以下是一个简单的学生学籍管理系统的MySQL代码,包括了学生信息、学籍信息、成绩信息、教师信息、课程信息和班级信息的表结构和数据:
```sql
-- 学生信息表
CREATE TABLE IF NOT EXISTS `student` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(50) NOT NULL,
`gender` varchar(10) NOT NULL,
`age` int(11) NOT NULL,
`hometown` varchar(50) DEFAULT NULL,
`phone` varchar(20) DEFAULT NULL,
`email` varchar(50) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- 学籍信息表
CREATE TABLE IF NOT EXISTS `school_roll` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`student_id` int(11) NOT NULL,
`class_id` int(11) NOT NULL,
`major` varchar(50) NOT NULL,
`enrollment_date` date NOT NULL,
`graduation_date` date DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `student_id` (`student_id`),
KEY `class_id` (`class_id`),
CONSTRAINT `school_roll_ibfk_1` FOREIGN KEY (`student_id`) REFERENCES `student` (`id`) ON DELETE CASCADE,
CONSTRAINT `school_roll_ibfk_2` FOREIGN KEY (`class_id`) REFERENCES `class` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- 成绩信息表
CREATE TABLE IF NOT EXISTS `score` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`student_id` int(11) NOT NULL,
`course_id` int(11) NOT NULL,
`score` float NOT NULL,
PRIMARY KEY (`id`),
KEY `student_id` (`student_id`),
KEY `course_id` (`course_id`),
CONSTRAINT `score_ibfk_1` FOREIGN KEY (`student_id`) REFERENCES `student` (`id`) ON DELETE CASCADE,
CONSTRAINT `score_ibfk_2` FOREIGN KEY (`course_id`) REFERENCES `course` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- 教师信息表
CREATE TABLE IF NOT EXISTS `teacher` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(50) NOT NULL,
`gender` varchar(10) NOT NULL,
`age` int(11) NOT NULL,
`phone` varchar(20) DEFAULT NULL,
`email` varchar(50) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- 课程信息表
CREATE TABLE IF NOT EXISTS `course` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(50) NOT NULL,
`credit` float NOT NULL,
`teacher_id` int(11) NOT NULL,
PRIMARY KEY (`id`),
KEY `teacher_id` (`teacher_id`),
CONSTRAINT `course_ibfk_1` FOREIGN KEY (`teacher_id`) REFERENCES `teacher` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- 班级信息表
CREATE TABLE IF NOT EXISTS `class` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(50) NOT NULL,
`teacher_id` int(11) NOT NULL,
PRIMARY KEY (`id`),
KEY `teacher_id` (`teacher_id`),
CONSTRAINT `class_ibfk_1` FOREIGN KEY (`teacher_id`) REFERENCES `teacher` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- 插入学生信息
INSERT INTO `student` (`id`, `name`, `gender`, `age`, `hometown`, `phone`, `email`) VALUES
(1, '张三', '男', 20, '北京市', '13888888888', 'zhangsan@qq.com'),
(2, '李四', '女', 21, '上海市', '13999999999', 'lisi@qq.com');
-- 插入班级信息
INSERT INTO `class` (`id`, `name`, `teacher_id`) VALUES
(1, '计算机1班', 1),
(2, '计算机2班', 2);
-- 插入教师信息
INSERT INTO `teacher` (`id`, `name`, `gender`, `age`, `phone`, `email`) VALUES
(1, '王老师', '男', 35, '13666666666', 'wang@qq.com'),
(2, '李老师', '女', 30, '13777777777', 'li@qq.com');
-- 插入课程信息
INSERT INTO `course` (`id`, `name`, `credit`, `teacher_id`) VALUES
(1, '数据库原理', 3, 1),
(2, 'Java编程', 4, 2);
-- 插入学籍信息
INSERT INTO `school_roll` (`id`, `student_id`, `class_id`, `major`, `enrollment_date`, `graduation_date`) VALUES
(1, 1, 1, '计算机科学与技术', '2020-09-01', NULL),
(2, 2, 2, '软件工程', '2020-09-01', NULL);
-- 插入成绩信息
INSERT INTO `score` (`id`, `student_id`, `course_id`, `score`) VALUES
(1, 1, 1, 90),
(2, 1, 2, 85),
(3, 2, 1, 88),
(4, 2, 2, 92);
```
以上是一个简单的学生学籍管理系统的MySQL代码,仅供参考。实际项目中还需要根据具体需求进行更加细致的设计和优化。
mysql my.cnf sql_mode
my.cnf是MySQL的配置文件,用于配置MySQL的各种参数和选项。sql_mode是其中一个参数,它定义MySQL的SQL执行模式,包括如何处理SQL语句中的错误、如何处理日期和时间等。sql_mode的值可以通过my.cnf文件进行配置。例如,如果想要关闭严格模式,可以在my.cnf文件中将sql_mode设置为"NO_ENGINE_SUBSTITUTION"。这样,在执行SQL语句时,如果出现错误,MySQL将会尝试使用默认值或者空值代替而不是抛出错误。