位置: 编程技术 - 正文

MySQL 设计和命令行模式下建立详解(mysql命令行配置)

编辑:rootadmin

推荐整理分享MySQL 设计和命令行模式下建立详解(mysql命令行配置),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:mysql的命令大全,mysql设计与实现,mysql设计与实现,mysql命令详解,mysql设计与实现,mysql设计原则,mysql设计原则,mysql简单命令,内容如对您有帮助,希望把文章链接给更多的朋友!

MySQL 设计和命令行模式下建立详解

系列文章:

MySQL 设计和命令行模式下建立详解

C++利用MySQL API连接和操作数据库实例详解

1.数据表的设计

MySQL数据库管理系统(DBMS)中,包含的MySQL中定义数据字段的类型对你数据库的优化是非常重要的。MySQL支持多种类型,大致可以分为三类:数值、日期/时间和字符串(字符)类型。

下面以大学熟悉的学生选课管理系统中用到的数据库为例,来设计相应的数据表。主要有三张表:学生表,课程表和选课表。

学生表设计:

字段(Field) 类型(Type) 可空(Null) 键(Key) 默认值(Default) 其他(Extra) 学号(studentNo) VARCHAR() N PRI NULL 姓名(name) VARCHAR() N N NULL 学院(school) VARCHAR() N N NULL 年级(grade) VARCHAR() N N NULL 专业(major) VARCHAR() N N NULL 性别(gender) Boolean N N NULL

课程表设计:

字段(Field) 类型(Type) 可空(Null) 键(Key) 默认值(Default) 其他(Extra) 课程号(courseNo) VARCHAR() N PRI NULL 课程名(courseName) VARCHAR() N N NULL 课时(hour) TINYINT Unsigned N N NULL 课程学分(credit) TINYINT Unsigned N N 2

选课表设计:

字段(Field) 类型(Type) 可空(Null) 键(Key) 默认值(Default) 其他(Extra) 编号(id) INT Unsigned N PRI NULL auto_increment 学号(studentNo) VARCHAR() N MUL NULL 课程号(courseNo) VARCHAR() N MUL NULL 选课时间(time) TIMESTAMP N N CURRENT_TIMESTAMP

对于上面三张数据表的设计,你会发现:

(1)MySQL在为数据定义字符串(字符)类型时,需要在类型名称的后面的小括号内指明最长字符数,即TypeName(M),这里的M指的是字符数,而不是数据占用的字节数。例如varchar(),则表述存储的字符数不能超过 ,超过则截断,小于个字符则以实际占用的存储空间来存储,这样就节省了存储空间。

(2)在对选课表的设计时,我们添加外键约束,可以使得两张表关联,保证数据的一致性和实现一些级联操作。

(3)MySQL中有三种Key和一个Index: Primary Key(主键), Unique Key(唯一键),Foreign Key(外键)和 Index(索引)。

四者的区别如下:

定义:

主键(Primary Key):唯一标识一条记录,不能有重复,不允许为空。 外键(Foreign Key):表的外键是另一表的主键, 外键可以有重复, 可以是空值。 唯一键( Unique Key):唯一标识一条记录,不能有重复,可以为空。 索引(Index):该字段可以有重复值记录,可以有空值,如果是唯一索引,那么就不可以有重复的记录,可以有空值。

作用:

主键:用来保证数据完整性。 外键:用来和其他表建立联系,以保证数据的一致性和级联操作。 唯一键:用来用防止数据插入的时候重复。 索引:是提高查询排序的速度。

个数:

主键:一个表只能有一个列是主键。 外键:一个表可以有多个列是外键。 唯一键:一个表可以有多个列是唯一键。 索引:一个表可以有多个列是索引。

从中可以看出,索引和唯一键很相似,二者的区别在于作用不同,索引用于提高查询速度,唯一键用于唯一约束。当然如果建立的索引是唯一索引的话,也可以起到唯一约束的作用。在MySQL具体实现上,索引需要建立数据结构,需要额外的磁盘空间来存储索引,而键(主键,外键和唯一键)都是逻辑层面的实现和约束,二者还是有着本质的区别。

还有就是MySQL的索引包括:普通索引(Index)、唯一索引(UNIQUE INDEX)、全文索引(FULLTEXT INDEX)、组合索引。这里就不要把唯一键和唯一索引弄混淆了!也不要把索引和其它的三种键弄混淆了。

还有一点需要注意的是,虽然键(key)和索引(index)有着本质的区别,但是当我们在建立主键或者唯一键的时候,也就建立了索引,MySQL和Oracle都是这么做的,要是不明白这一点,很容易把索引和主键和唯一键弄混淆。

唯一键可以起到唯一约束的作用,当然主键也可以起到唯一约束的作用。当然我们可以不建立唯一键和主键,直接为指定的数据表的列添加唯一约束。唯一约束保证指定列的值不能重复。

所以,关于上面的概念,大家不要咬文嚼字,而是根据功能去理解每一种KEY的作用,在什么场合需要去使用它。

比如需要主键约束的时候,我们就可以对某一列建立主键;

需要对某一列或者多个列进行唯一约束的时候,我们就建立唯一键或者唯一约束; 需要加快查询速度的时候,我们就建立相应类型的索引。

MySQL 设计和命令行模式下建立详解(mysql命令行配置)

关于四者的理解,上未参考到权威的资料,请读者保持怀疑的态度接受。

2.数据库的建立

在安装完mysql之后,我们要建立自己的数据库。下面将详细地一步一步演示如何创建上面设计好的数据库。 在MySQL模式下,使用status命令可以查看MySQL版本,本人使用的MySQL版本:5.6. MySQL Community Server (GPL)。

关于mysql大小写问题,mysql命令是不区分大小写的。数据表的表名在windows下不分,linux下分。数据表的字段名在windows和linux下都不分。

(1)登录mysql DBMS

Linux命令行中输入如下命令:

说明:依次指明登录mysql的主机地址,用户和用户密码。

(2)使用show查看当前mysql服务器上存在什么数据库

说明:在进入mysql模式下,使用mysql命令时,每条语句要以分号结束。但是use [DatabaseName]却不用,可能是mysql的一个小bug。类似于quit和exit退出mysql的命令,不需要一个分号。(如果你喜欢,你可以用一个分号终止这样的语句)。

(3)创建数据库

(4)使用use语句访问数据库

(5)创建数据表student

观察上面的建表语句,需注意以下几点:

(a)其中,布尔类型boolean在MySQL是以类型tinyint(1)来实现,这里的1指代的是数据显示时最短长度。 实际上tinyint(1)是可以插入-到之间的其它数值。因为mysql数据库中以 :数据类型(m)来定义数据类型,其中 数字m在不同的数据类型中表示含义是不同的。 整型数系统已经限制了取值范围,tinyint占一个字节、int占4个字节。所以整型数后面的m不是表示的数据长度,而是表示数据在显示时显示的最小长度(长度为字符数)。

tinyint(1) 这里的1表示的是最短显示一个字符。tinyint(2) 这里的2表示的是最短显示两个字符,但这里光设置m是没有意义的,你还需要指定当数据少于长度m时用什么来填充,比如zerofill(表示有0填充)。设置tinyint(2) zerofill你插入1时他会显示。设置tinyint(4) zerofill你插1时他会显示。

(b)还要注意一点是,使用engine可指明引擎,如果省略了engine语句,则使用默认的引擎(MYISAM)。MYSQL支持三个引擎:ISAM、MYISAM和HEAP。另外两种类型INNODB和BERKLEY(BDB),也常常可以使用。

(c)设置default charset指明mysql数据表的编码方式,不显示指定编码方式的话,数据表的默认编码方式一般是latin1。也可以通过如下命令查看数据表的编码方式:

如果需要转换数据表的编码格式,使用如下命令:

如果想查看当前数据库的编码格式:

为了验证所建立的数据表是否是按照期望的方式创建的,使用如下命令:

(6)创建数据表course

同样可以使用describe查看表信息:

(7)创建数据表courseSelection

查看表信息:

(8)其它关于数据库和数据表的操作命令

删除数据库:

删除数据表:

将表中记录清空:

参考文献:

[1 [2]Mysql 查看、创建、更改 数据库和表 [3]php里tinyint(1)为什么还能插入这个值?搜索 [4]MySQL引擎 [5]MySQL中的四种Key [6]SQL的主键和外键约束 [7]唯一索引和唯一约束有什么区别

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

mysql免安装版错误终极解决办法图文教程 【从笔记本到pc】笔记本一直都使用MySQL免安装版5.6.,使用如下方法安装:今天把同一个zip包传到pc上,按上面的方法安装居然报,按上面方法多次

详解Ubuntu Server下启动/停止/重启MySQL数据库的三种方式 UbuntuServer下启动/停止/重启MySQL数据库的三种方式系统环境:ubuntuserver.x(mysql为系统自带)当我们需要修改MySQL的配置文件my.cnf(windows下为my.ini)来

MySQL创建全文索引分享 使用索引时数据库性能优化的必备技能之一。在MySql数据库中,有四种索引:聚焦索引(主键索引)、普通索引、唯一索引以及我们这里将要介绍的全文

标签: mysql命令行配置

本文链接地址:https://www.jiuchutong.com/biancheng/349880.html 转载请保留说明!

上一篇:简单谈谈MySQL优化利器-慢查询(mysql好在哪里)

下一篇:mysql免安装版1067错误终极解决办法图文教程(mysql免安装版怎么启动)

  • 固定资产计提折旧计入什么科目
  • 城市基础设施配套费减免
  • 公司章程在工商局
  • 营改增后为什么利息要提供发票吗
  • 其他应付款辅助核算可以设置职员吗
  • 金蝶可以自动结转成本吗
  • 跨期两年的发票怎么处理
  • 新公司利润表怎么填
  • 股东借款超过一年个人所得税
  • 暂估入库原材料成本结转后期发票到怎么处理
  • 用进项税冲抵当月增值税的会计分录
  • 政府扶持资金要还吗如村委借给企业对吗
  • 以个人使用过的设备投资免增值税吗
  • 个人投资者取得现金红利的过程不用支付利息税
  • 呆账的处理
  • 预付款期末有结余年末如何做账务处理?
  • 资本公积金转增股本所获取的收益属于
  • 退休人员基本养老金调整幅度需要综合考虑什么因素
  • 去年多做销售费用今年冲回该如何做会计分录?
  • 股票回购后多久注销
  • 增值税什么情况下可以退税
  • 发票一定要房东开的才能报销吗?
  • 待转销项税额会计分录
  • 工会经费税务局怎么收
  • 小规模纳税人免征增值税怎么记账
  • 建筑服务安装费发票需要备注什么
  • 招商引资政府返税政策不兑现
  • 资源费用怎么算
  • 每月物业费怎么计算公式
  • macbook触摸板如何拖动
  • 修改bios设置
  • 成本费用包括什么项目
  • 加入申请理由怎么写
  • docker 使用教程
  • 什么级别的cpu需要水冷
  • 二级资本债是什么意思
  • cgtrader模型
  • 会计政策变更常见例子
  • 推特网页设置
  • 一年内到期的非流动资产包括
  • java方法的返回值类型有哪些
  • 预缴税款为什么不能跨月申报
  • 帝国cms如何调用网络
  • 为什么盈余公积减少,未分配利润增加
  • 资产减值损失是什么意思
  • python中的参数传递
  • syslog ng
  • 工会经费上缴流程
  • 社保信息修改到哪里办理
  • 国债利息收入的分录
  • 财务费用的核算内容有哪些
  • 合作建房土地增值税清算案例
  • 发票什么情况下可以作废
  • 其他应付款跨年了
  • 自产的产品用于生产缴纳增值税
  • 如何查询对方是否起诉离婚
  • 多发了工资怎么做账务处理
  • 进项税转出补税按多少补税
  • 小微企业未开票收入怎么申报
  • 会计所说的内账外账
  • sql 查询效率
  • win7系统怎么设置开机启动项
  • win7开机提示由于启动计算机时出现页面文件
  • 硬盘安装好了显示不出来怎么办
  • SSDP Discovery Service 是什么可以禁用吗
  • ubuntu18.04安装eclipse
  • win10桌面添加画图图标
  • win7系统禁止更新
  • Win10红石版Edge浏览器新扩展功能:关灯(附扩展程序使用)
  • 微软最新新闻
  • cocos2dx4.0入门
  • if iferror find
  • js仿QQ中对联系人向左滑动、滑出删除按钮的操作
  • linux7 snmp
  • vue路由跳转的钩子函数什么时候会用到
  • android aoa
  • javascript的理解
  • android布局教程
  • 顺丰收取关税合理吗
  • 事务所税务变更申请
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设