mysql数据库 创建、查看、重命名、复制和删除的基本操作
在数据库中,表是最重要、最基本的对象,是存储数据的基本单位。数据表从哪里来呢?数据表由关系模式转换而来。但不是简单的转换。
在设计表结构时要考虑下面几个方面:
- 字段名要通俗易懂且具有代表性,字段名不允许重复,为了编程序方便,尽量使用英文名字。
- 字段类型选择的原则是:根据需求选择合适的字段类型,在满足需求的情况下字段类型尽可能小。不参加数学计算的数字定义为字符串型,如学号、电话号码等。
- 字段长度是指能容纳该字段值的最大数量,如学号为12位数字,长度设置为12;课程名可能包含10个汉字,长度就要设置为10。
- 字符集编码选择:含有中文字符时统一采用utf8或gbk类型,以避免乱码情况的发生。
SQL语句中关键字做一些说明:
- PRIMARY KEY用于定义主键。也可以使用多字段来定义主键。
- COMMENT注释该字段的含义。
- NOT NULL是非空约束。
- DEFAULT为该字段加默认值,可以减少输入次数。
- AUTO_INCREMENT为自增型属性,一般用作主键,数值会自动加1。
- 当表中有外键字段时用CONSTRAINT设置外键。
- ENGINE=InnoDB是设置该表的存储引擎,DEFAULT CHARSET=utf8是设置该表的默认字符集。
| teacher | ||||
|
Teacher_id |
Teacher_name |
age | Enter_time | professional |
| 10101 | 潘多拉 | 18 | 2018-2-1 | 讲师 |
| 10102 | 普罗米修斯 | 27 | 2018-3-5 | 教授 |
| 10103 | 波塞冬 | 29 | 2015-9-10 | 副教授 |
| Department | ||||||
| 字段名 | 数据类型 | 长度 |
是否空值 |
是否主键外键 |
默认值 | 备注 |
| Department_id | char | 3 | NOT NULL | 主键 | 学校编号 | |
| Department_name | varchar | 10 | NOT NULL | 学校名称 | ||
use course;
create table department(
Department_id char(3) NOT NULL PRIMARY KEY COMMENT '学院编号',
Department_name varchar(10) NOT NULL COMMENT '学院名称'
)ENGINE=InnoDB DEFAULT CHARSET=utf8;
| teacher | ||||||
| 字段名 | 数据类型 | 长度 |
是否空值 |
是否主键外键 |
默认值 | 备注 |
| Teacher_id | char | 5 | NOT NULL | 主键 | 教师编号 | |
| teacher_name | varchar | 4 | NOT NULL | 教师姓名 | ||
| Department_id | char | 3 | NOT NULL | 外键 | 学校编号 | |
| gender | char | 1 | NOT NULL | 男 | 性别 | |
CREATE TABLE teacher(
Teacher_id char(5) NOT NULL PRIMARY KEY COMMENT '教师编号',
Teacher_Name varchar(4) NOT NULL COMMENT '教师姓名',
Department_id char(3) NOT NULL COMMENT '学院编号',
Gender char(1) NOT NULL DEFAULT '男' COMMENT '性别',
CONSTRAINT teacher_department FOREIGN KEY (Department_id)
REFERENCES department(Department_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
| course | ||||||
| 字段名 | 数据类型 | 长度 |
是否空值 |
是否主键外键 |
默认值 | 备注 |
| Course_id | char | 4 | NOT NULL | 主键 | 课程号 | |
| course_name | varchar | 10 | NOT NULL | 课程名 | ||
| capacity | tinyint | 4 | NOT NULL | 60 | 人数上限 | |
| Teacher_id | char | 5 | NOT NULL | 外键 | 教师编号 | |
CREATE TABLE course(
Course_id char(4) NOT NULL PRIMARY KEY COMMENT '课程号',
Course_name varchar(10) NOT NULL COMMENT '课程名',
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;
| Classes | ||||||
| 字段名 | 数据类型 | 长度 |
是否空值 |
是否主键外键 |
默认值 | 备注 |
| class_id | char | 8 | NOT NULL | 主键 | 班级编号 | |
| class_name | varchar | 8 | NOT NULL | 班级名 | ||
| Year | smallint | 4 | NOT NULL | 年度 | ||
| Department_id | char | 3 | NOT NULL | 外键 | 学院编号 | |
CREATE TABLE classes(
Classe_id char(8) NOT NULL PRIMARY KEY COMMENT '班级编号',
Class_name varchar(8) NOT NULL COMMENT '班级名',
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;
| students | ||||||
| 字段名 | 数据类型 | 长度 |
是否空值 |
是否主键外键 |
默认值 | 备注 |
| students_id | char | 12 | NOT NULL | 主键 | 学号 | |
| students_name | varchar | 4 | NOT NULL | 姓名 | ||
| class_id | char | 4 | NOT NULL | 外键 | 班级编号 | |
| phone | varchar | 18 | NOT NULL | 电话 | ||
CREATE TABLE students(
Student_id char(12) NOT NULL PRIMARY KEY COMMENT '学号',
Student_name varchar(4) NOT NULL COMMENT '姓名',
Class_id char(4) NOT NULL COMMENT '班级编号',
Phone varchar(18) NOT NULL COMMENT '电话',
CONSTRAINT student_class FOREIGN KEY (Class_id) REFERENCES
classes (Classe_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
choose |
||||||
| 字段名 | 数据类型 | 长度 |
是否空值 |
是否主键外键 |
默认值 | 备注 |
| Choose_id | char | 11 | NOT NULL | 主键 | auto_increment | |
| student_id | varchar | 12 | NOT NULL | 学号 | ||
| Course_id | char | 4 | NOT NULL | 外键 | 课程号 | |
| choose_time | datetime | NOT NULL | 选课时间 | |||
| 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 datetime NOT NULL COMMENT '选课时间',
report int DEFAULT 0 COMMENT '成绩',
CONSTRAINT choose_course FOREIGN KEY (Course_id)
REFERENCES course (Course_id),
CONSTRAINT choose_student FOREIGN KEY (Student_id)
REFERENCES students (Student_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
显示表结构的命令,两种方式:
- DESCRIBE/DESC 表名SHOW CREATE TABLE 表名 查看表的详细信息
- 使用DESCRIBE table_name可显示指定表的结构
- DESCRIBE也可用DESC替代
查看数据列表命令:
show tables;
复制一个表结构有两种实现方法:
create table 新表名 like 源表
create table 新表名 select * from 源表
修改表名语法格式如下:
rename table 旧表名 to 新表名
或者:
alter table 旧表名 rename 新表名
删除表的SQL语法格式为:
drop table 表名;
注意:如果表之间存在外键约束关系,应先删除外键约束条件,再删除表,或者先删子表,再删父表。
mysql数据库 创建、查看、重命名、复制和删除的基本操作的更多相关文章
- ASP FSO操作文件(复制文件、重命名文件、删除文件、替换字符串)
ASP FSO操作文件(复制文件.重命名文件.删除文件.替换字符串)FSO的意思是FileSystemObject,即文件系统对象.FSO对象模型包含在Scripting 类型库 (Scrrun.Dl ...
- 4.mysql数据库创建,表中创建模具模板脚本,mysql_SQL99标准连接查询(恩,外部连接,全外连接,交叉连接)
mysql数据库创建,表创建模等模板脚本 -- 用root用户登录系统,运行脚本 -- 创建数据库 create database mydb61 character set utf8 ; -- ...
- ( 转)Ubuntu下创建、重命名、删除文件及文件夹,强制清空回收站方法
Ubuntu下创建.重命名.删除文件及文件夹,强制清空回收站方法 mkdir 目录名 ——创建一个目录 rmdir 空目录名 ——删除一个空目录 rm 文件名 文件名 ——删除一个文件或多个文件 rm ...
- VS2012、2013使用Mysql数据库创建EF的AOD.NET实体模型
VS2012.2013使用Mysql数据库创建EF的AOD.NET实体模型: 1.关闭VS,首先安装mysql-connector-net-6.8.3.(安装后EF创建实体模型时就可以找到Mysql的 ...
- 项目重命名&复制项目&删除项目
项目重命名&复制项目&删除项目 CreateTime--2016年10月15日17:25:43 Author:Marydon 1.修改项目名或者复制的项目名 第一步: my ...
- MySql数据库创建表
3.3.MySql数据库创建表 创建5个表: UserInfo用户基础表 Role 角色表 MenuInfo 菜单即控制表 Relation_Role_Menu 角色对应菜单关系表 RelaTion_ ...
- php简单实用的操作文件工具类(创建、移动、复制、删除)
php简单实用好用的文件及文件夹复制函数和工具类(创建.移动.复制.删除) function recurse_copy($src,$dst) { // 原目录,复制到的目录 $dir = opend ...
- MySQL数据库创建视图
视图可以说是一种虚拟表,建立在基本表的基础上,通过关联一个表或者多个表来获取多个表中需要的字段,视图只是用来查询数据并不能用来存储数据信息. 我有以下几张表: -------image表---- -- ...
- Java创建、重命名、删除文件和文件夹(转)
Java的文件操作太基础,缺乏很多实用工具,比如对目录的操作,支持就非常的差了.如果你经常用Java操作文件或文件夹,你会觉得反复编写这些代码是令人沮丧的问题,而且要大量用到递归. 下面是的一个解决方 ...
- mysql数据库备份并且实现远程复制
一.实现ssh 远程登陆 机器环境: 192.167.33.108 clent 用户:crawler 192.167.33.77 server 用户:crawler 1.客户端 生成密钥 /home/ ...
随机推荐
- WPF样式学习第一天
因为上班的公司要我用wpf写软件,刚毕业出来,学校也没教过wpf,只会winform,再加上wpf用winform的框架写法也能实现很多需求,但是就不能体现wpf的优点了,今天就先来学wpf的样式,因 ...
- android日常开发总结的技术经验60条
全部Activity可继承自BaseActivity,便于统一风格与处理公共事件,构建对话框统一构建器的建立,万一需要整体变动,一处修改到处有效. 数据库表段字段常量和SQL逻辑分离,更清晰,建议使用 ...
- 搭建手机web服务器-----内网穿透(无需Root)
搭建手机web服务器-----内网穿透(无需Root) 一.内网穿透部分 前言: 网上内网穿透的方法很多,像花生壳.Ngrok.Frp等等,但是大多都需要获取手机root权限 本文使用的软件是Term ...
- v-model 指令来实现双向数据绑定
<div id="app"> <p>{{ message }}</p> <input v-model="message" ...
- JavaScript 定时器 取消定时器
感谢:链接(视频讲解很清晰) 定时器:作用主要是一定时间间隔后,做出相关的变化,例如图片轮播. 目录 两种定时器的使用 两种定时器区别 取消定时器的方法 两种定时器的使用: 方法一:setTimeou ...
- (八)利用 Profile 构建不同环境的部署包
接上回继续,项目开发好以后,通常要在多个环境部署,象我们公司多达5种环境:本机环境(local).(开发小组内自测的)开发环境(dev).(提供给测试团队的)测试环境(test).预发布环境(pre) ...
- cc32a_demo-32dk2j_cpp_纯虚函数与抽象类-txwtech
//32dk2j_cpp_纯虚函数与抽象类cc32a_demo-txwtech//纯虚函数是用来继承用的//纯虚函数//抽象类-抽象数据类型//*任何包含一个或者多个纯虚函数的类都是抽象类//*不要/ ...
- swiper 实现滑动解锁
最近项目中有这样一个需求,研究了两种写法一个原生,一个使用框架 原生写法: <!DOCTYPE html> <html> <head> <meta chars ...
- SourceTree使用详解(连接远程仓库,克隆,拉取,提交,推送,新建/切换/合并分支,冲突解决)
前言: 俗话说的好工欲善其事必先利其器,Git分布式版本控制系统是我们日常开发中不可或缺的.目前市面上比较流行的Git可视化管理工具有SourceTree.Github Desktop.Tortois ...
- JDK开发环境的搭建和环境变量的配置
首先博主先说一下JDK.JRE.JVM的区别和联系.我们正常运行程序的话只需安装JRE就行啦,如果要编译运行Java程序就得需要JKD下的bin目录下的编译工具. JDK -- java develo ...