前言:
此时兄弟们对“mysql 索引视图”大概比较关注,我们都需要分析一些“mysql 索引视图”的相关内容。那么小编同时在网摘上收集了一些关于“mysql 索引视图””的相关文章,希望看官们能喜欢,大家快快来了解一下吧!2. MySQL学习第二天
2.1 MySQL的操作
MySQL用以存放表、约束、索引、视图、存储过程等对象
MySQL数据库的操作主要包括
创建数据库选择数据库修改数据库查看数据库删除数据库数据库的备份与还原
2.2 命令行工具
直接输入命令进行数据库操作
CREATE DATABASE 数据库名;创建数据库SHOW VARIABLES LIKE ‘datadir’;查找数据库在哪USE 数据库名;选择数据库ALTER DATABASE [数据库名] [DEFAULT] CHARACTER SET <字符集> | [DEFAULT] COLLATE <比较规则>;修改数据库SHOW DATABASES;显示所有数据库DROP DATABASE 数据库名;删除数据库
2.3 数据类型
数值类型:
整数类型:TINYINT、SMALLINT、MEDIUMINT、INT、BIGINT小数类型:DOUBLE、FLOAT、DECIMAL日期类型:DATE、TIME、YEAR、DATETIME、TIMESTAMP字符串类型:CHAR、VARCHAR、TINYTEXT、TEXT、MEDIUMTEXT、LONGTEXT复合数据类型:Enum、Set二进制类型:Binary、VARBinary、Bit、TINYBLOB、BLOB、MEDIUMBLOB、LONGBLOB
选择合适的类型可以提升存储速度,节省存储空间
选择类型的一些原则:
在符合应用要求的前提下,尽量使用短的数据类型数据类型越简单越好在MySQL中,应该用内置的日期和时间数据类型,而不是用字符串类存储日期和时间尽量采用精确小数类型(DECIMAL)而不是浮点数类型尽量避免NULL字段,为字段添加NOT NULL约束
2.4 设计表结构
字段名要通俗易懂且具有代表性,字段名不允许重复,为了编程序方便,尽量使用英文名字
字段类型根据需求选择合适的,在满足需求的情况下字段类型尽可能小
不参与数学计算的数字定义为字符类型
字段长度是指能容纳该字段的最大数量
字符集编码有中文字符时统一采用UTF8类型
2.5 创建表
以一个学校的课程管理系统为例,创建如下的一个数据库表
学院表department
字段名
数据类型
长度
空值
主键外键
默认值
备注
Department_id
char
3
no
主键
学院编号
Department_name
varchar
10
no
学院名称
CREART TABLE department(Department_id char(3) NOT NULL PRIMARY KEY COMMENT '学院编号',Department-name varchar(10) NOT NULL COMMENT '学院名称',)ENFINE=InnoDB DEFAULT CHARSET=utf8;
教师表teacher
字段名
数据类型
长度
空值
主键外键
默认值
备注
Teacher_id
char
5
no
主键
教师编号
Teacher_name
varchar
4
no
教师姓名
Department_id
char
3
no
外键
学院编号
Teacher_gender
char
1
no
男
性别
CREATE TABLE teacher(Teacher_id char(5) NOT NULL PRIMARY KEY COMMENT '教师编号',Teacher_name varchar(4) NOT NULL COMMENT '教师姓名',Department_id cahr(3) NOT NULL COMMENT '学院编号',Teacher_gender char(1) NOT NULL DEAFAULT '男' COMMENT '学院编号',CONSTRAINT teacher_department FOREIHN KEY (Department_id)REFERENCES deparment(Department_id))ENGINE=InnoDB DEFAULT CHARSET=utf8;
课程表course
字段名
数据类型
长度
空值
主键外键
默认值
备注
Course_id
char
4
no
主键
课程号
Course_name
varchar
10
no
课程名称
Course_capacity
tinyint
4
no
60
人数上限
Teacher_id
char
5
no
外键
教师编号
CREATE TABLE course(Course_id char(4) NOT NULL PRIMARY KEY COMMENT '课程号',Course_name varchar(10) NOT NULL COMMENT '课程名称',Course_capacity tinyint(4) NOT NULL DEFAULT 60 COMMENT '人数上限',Teacher_id char(5) NOT NULL COMMENT '教师编号',CONSTRAINT course_teacher FOREIGN KEY (Teacher_id)REFERENCES teacher(Teacher_id))ENGINE=InnoDB DEFAULT CHARSET=utf8;
班级表class
字段名
数据类型
长度
空值
主键外键
默认值
备注
Class_id
char
8
no
主键
班级编号
Class_name
varchar
8
no
班级名称
Class_year
smallint
4
no
年度
Department_id
char
3
no
外键
学院编号
CREATE TABLE class(Class_id char(8) NOT NULL PRIMARY KEY COMMENT '班级编号',Class_name varchar(8) NOT NULL COMMENT '班级名称',Class_year smallint(4) NOT NULL COMMENT '年度',Department_id char(3) NOT NULL COMMENT '学院编号',CONSTRAINT class_department FOREIGN KEY (Department_id)REFERENCES department(Department_id))ENGINE=InnoDB DEFAULT CHARSET=utf8;
学生表student
字段名
数据类型
长度
空值
主键外键
默认值
备注
Student_id
char
12
no
主键
学号
Student_name
varchar
4
no
姓名
Class_id
char
4
no
外键
班级编号
Student_Phone
varchar
18
no
电话号码
CREATE TABLE student(Student_id char(12) NOT NULL PRIMARY KEY COMMENT '学号',Student_name varchar(4) NOT NULL COMMENT '姓名',Class_id char(4) NOT NULL COMMENT '班级编号',Student_phone varchar(18) NOT NULL COMMENT '电话',CONSTRAINT student_class FOREIGN KEY (Class_id)REFERENCES class(Class_id))ENGINE=InnoDB DEFAULT CHARSET=utf8;
选课表choose
字段名
数据类型
长度
空值
主键外键
默认值
备注
Choose_id
int
11
no
主键
auto_increment
Student_id
char
12
no
外键
学号
Course_id
char
4
no
外键
课程号
Choose_time
datetime
no
选课时间
Choose_report
int
0
成绩
CREATE TABLE choose(Choose_id int(11) NOT NULL PRIMARY KEY AUTO_INCREMENT,Student_id char(12) NOT NULL COMMENT '学号',Course_id char(4) NOT NULL COMMENT '课程号',Choose_time dattime NOT NULL COMMENT '选课时间',Choose_report int DEFAULT 0 COMMENT '成绩',CONSTRAINT choose_course FOREIGM KEY (Course_id)REDERENCES course(Course_id),CONSTRAINT choose_student FOREIGM KEY (Student_id)REDERENCES student(Student_id),)ENGINE=InnoDB DEFAULT CHARSET=utf8;
其中
PRIMARY KEY用于定义主键COMMENT用于定义别名NOT NULL是非空约束DEFAULT为该字段加默认值AUTO_INCREMENT为自增型属性,一般用作主键,数值自动加1CONSTRAINT用于设置外键ENGINE=InnoDB设置表的存储引擎DEFAULT CHARSET=utf8是设置给表的默认字符集
显示表结构:DESCRIBE/DESC 表名
查看表的详细信息:SHOW CREATE TABLE 表名
复制表结构:CREATE TABLE 新表名 LIKE 源表名
复制表结构和表记录:CREATE TABLE 新表名 SELECT * FROM 源表
修改表名:RENAME TABLE 旧表名 TO 新表名 或者 ALTER TABLE 旧表名 RENAME 新表名
标签: #mysql 索引视图