mysql显示表已存在_MySQL数据库与数据表的相关操作

数据库相关操作:

显示数据库:show databases;

8c14f5761c87537cb21b7b35d9d2527d.png

如果是0.00秒并不代表没有花费时间,而是时间非常短,小于0.01秒。

创建数据库:

ca95cb1f4e66084f213c3b046bf79ae0.png

Query OK表示创建成功,1行受到影响,处理时间为0、05秒。

使用下面的命令查看某个数据库的详细信息:

06dd8fca85a6a455953c604dda0e0b84.png

必须要记住:默认使用的是拉丁字符集,如果不重新设置的话,中文显示会是乱码的,创建数据库的时候指定字符集编码,如下:

e21628c408e9eead8123b94922994f90.pngff4de61140da7d5e29edb641203bacbc.png

注意:latin1是拉丁字符集,这是默认的字符集,这个字符集所显示出来的汉字是?号的形式的。

85c12d48439e5b050bf5ec0e2ec2389e.png

图形化界面如何创建数据库:

f2d5d74a2837beb21e98fccda29a7cbc.png948f0e9ff14e110446b9cc2a8b2c19cf.png

删除数据库

74a6452b5406d8be8446c28e6c623b94.png

删除数据库要慎重,因为删除数据库会删除数据库中所有的表和表中所有的数据。

删除数据库后我们可以用show databases;命令来显示看看没有被删除。

注意:数据库名中有中横线的,会当成特殊意义,需要使用``进行包含住。

d77fa32d80e1c4a6ec4bee367aa57d11.png

选择数据库:

mysql> use abccs; 此时你已经进入你刚才所建立的数据库abccs.

显示你所选择数据库中所有的表

f235848d7d562249d5b5ce43e2712161.png

查看当前使用的数据库:

如果没有选择数据库的话:

313c6411631c9eb3d72e9ad3d6f68b89.png

f8a1469738c178017893bacb977c89e1.png

查看默认存储引擎:

mysql> show variables like '%storage_engine%';

ad85738446f425f53b09fcc8d63d3268.png

结果显示,默认的存储引擎为InnoDB存储引擎。

查看mysql数据库系统支持的存储引擎的类型:

mysql> show engines;

af143347c5851578796f337472a26a03.png

也可以:

7dbf955cc37fa4a099e448f63365b645.png

数据库表相关操作:

查看当前数据库中数据表:

15679aebae3d520d76abc086e23a5d24.png说明刚才建立的数据库中还没有数据库表。

创建数据库表

注意:表名不能为sql语言的关键字,一个表中可以有一个或多个字段。定义时,字母大小写均可,各字段之间用逗号隔开,最后一个字段后不需要加逗号。

完整性约束条件

完整性约束条件是对字段进行限制。要求用户对该属性进行的操作符合特定的要求。如果不满足完整性约束条件,数据库系统将不执行用户的操作。其目的是为了保证数据库中数据的完整性。

MYSQL中基本的完整性约束条件如下表:

主键primary key:物理上存储的顺序

非空not null:此字段不允许填写空值

惟一unique:此字段的值不允许重复

默认default:当不填写此值时会使用默认值,如果填写时以填写为准

外键foreign key:对关系字段进行约束,当为关系字段填写值时,会到关联的表中查询此值是否存在,如果存在则填写成功,如果不存在则填写失败并抛出异常

说明:虽然外键约束可以保证数据的有效性,但是在进行数据的crud(增加、修改、删除、查询)时,都会降低数据库的性能,所以不推荐使用,那么数据的有效性怎么保证呢?答:可以在逻辑层进行控制

auto_increment 标识该属性怕值自动增加,这是mysql的sql语句的特色。

1634ea2259eb46f440790b9f15703236.png

数据类型

常用数据类型如下:

整数:int,bit

小数:decimal

字符串:varchar,char

日期时间: date, time, datetime

枚举类型(enum)

特别说明的类型如下:

decimal表示浮点数,如decimal(5,2)表示共存5位数,小数占2位

char表示固定长度的字符串,如char(3),如果填充'ab'时会补一个空格为'ab '

varchar表示可变长度的字符串,如varchar(3),填充'ab'时就会存储'ab'

字符串text表示存储大文本,当字符大于4000时推荐使用

对于图片、音频、视频等文件,不存储在数据库中,而是上传到某个服务器上,然后在表中存储这个文件的保存路径

cf4231712c3b61e534921393f4a8d4ef.png29e8f37d2e2c65bed86129dd35b765dc.png7ec318532a7fddd5df9bd50d4061581b.png

使用数据类型的原则是:

够用就行,尽量使用取值范围小的,而不用大的,这样可以更多的节省存储空间。

更全的数据类型可以参考:

http://blog.csdn.net/anxpp/article/details/51284106

ade9190454b4105df944fedbab9ebca9.png

7d7961e6ebe5716de10849d7ce61d98b.png

下面这个可以先不用练习,后面会细讲。

0131bd28c0ea7888ecbae31bd5b13fe5.png

显示表的结构

  是指查看数据库中已存在的表的定义。查看表结构的语句包括describe 和 show create table语句。通过这两个语句,可以查看表的字段名、字段的数据类型和完整性约束条件等。

(1)查看表基本结构语句describe

mysql> describe xueshengdenjibiao;

+----------+-------------+------+-----+---------+-------+

| Field    | Type      | Null | Key | Default    | Extra |

+----------+-------------+------+-----+---------+-------+

| stu_id   | int(11)     | NO   | PRI | NULL    |       |

| stu_name | varchar(20) | YES  |     | NULL    |       |

| stu_sex  | tinyint(1) | YES  |    | NULL    |       |

+----------+-------------+------+-----+---------+-------+

3 rows in set (0.03 sec)

从查询的结果中我们看出xueshengdenjibiao中包含三个字段,同时显示了字段的数据类型(type),是否为空(null),是否为主外键(key),默认值(default),和额外信息(extra)。

Describe也可以缩写成desc.

mysql> desc xueshengdenjibiao;

+----------+-------------+------+-----+---------+-------+

| Field    | Type        | Null | Key | Default | Extra |

+----------+-------------+------+-----+---------+-------+

| stu_id   | int(11)     | NO   | PRI | NULL    |       |

| stu_name | varchar(20) | YES  |     | NULL    |       |

| stu_sex  | tinyint(1)  | YES  |     | NULL    |       |

+----------+-------------+------+-----+---------+-------+

3 rows in set (0.00 sec)

其结果是一致的。

(2)、查看表详细结构语句show create table

除了可以查看一些结构外,该语句还可以查看表默认的存储引擎和字符编码。

2db1993912fb731eee5897c2d1393150.png

如果直接使用show create table xueshengdenjibiao;这种语句,结果的显示效果会比较差,尤其是遇到内容比较长的记录,显示的结果会很混乱。代码最后加上\G(要是大写)参数,可以更加美观的显示内容,对内容比较长的记录效果尤为明显。

e690c0dcfd1b12c6f37beac1c8faafa7.png

52a4d31262139dbf539910304c75690b.png

修改表

修改表名

表名可以在一个数据库中唯一的确定一张表。数据库系统通过表名来区分不同的表。

修改表名是通过SQL语句alter table实现的。

mysql> alter table shushengdenjibiao rename xueshengdenjibiao;

Query OK, 0 rows affected (0.11 sec)

也可以这样写:

mysql> alter table shushengdenjibiao rename to  xueshengdenjibiao;

Query OK, 0 rows affected (0.00 sec)

其中to是可选参数,其是否在语句中出现不会影响语句的执行。

前面的表名是原先的表名,后面的表名是要修改后的表名。

也可以通过show table来显示表是否已经被修改。

修改字段名和字段的数据类型

字段的数据类型包括:整数型,浮点型,字符串型,二进制型,日期和时间类型等。

数据类型决定了数据的存储格式,约束条件和有效范围。表中的每个字段都有数据类型。

alter table语句也可以修改字段的数据类型。主键的字段数据类型不能修改。

f100029543fda18ab91694907ba10336.png

030c5984bbf0ced72b37d3b1adb0c7a1.png

上面的datetime是年月日时分钞,人家问你生日,你连时分秒都说出来了,不适合,所以,我们只需要存储年月日就可以了。

1a611a829dcf56a2bb1849085f9b3807.png

ab533fc99fca6d189b502020c1ba37eb.png

注意:如果表中有记录,修改数据类型时应该特别小心。因为,修改数据类型时可能会影响表中的数据。特别值得注意的是,字符类型的字段最好不要改成整数类型、浮点数类型。

注意:Modify和change都可以改变字段的数据类型。不同的是,change可以在改变字段数据类型的同时,改变字段名。如果要使用change修改字段数据类型,那么change后面必需跟两个同样的字段名。

添加字段

在表的末尾添加字段:

mysql> alter table xueshengdenjibiao add stu_age int(4) not null;

Query OK, 0 rows affected (0.59 sec)

Records: 0  Duplicates: 0  Warnings: 0

注意:增加字段时,如果能够加上完整性约束条件,一定要加上。这样可以保证此字段的安全性,甚至可以提高整个表的数据安全性。因此,添加时要仔细考虑这个问题。

表的第一个位置增加字段

默认情况下,新增字段为表的最后一个字段。如果加上first参数,则可以将新增字段设置为表的第一个字段。

mysql> alter table xueshengdenjibiao add stu_num int(5) first;

Query OK, 0 rows affected (0.27 sec)

Records: 0  Duplicates: 0  Warnings: 0

表的指定位置之后增加字段

mysql> alter table xueshengdenjibiao add stu_add varchar(20) after stu_phone;

Query OK, 0 rows affected (0.58 sec)

Records: 0  Duplicates: 0  Warnings: 0

一次性添加多个字段:

mysql> alter table q7 add (wuli int(3),huaxue int(3));

Query OK, 10 rows affected (0.32 sec)

Records: 10  Duplicates: 0  Warnings: 0

删除字段

mysql> alter table xueshengdenjibiao drop stu_age;

Query OK, 0 rows affected (0.31 sec)

Records: 0  Duplicates: 0  Warnings: 0

执行成功后,可以查看一下:

修改字段的排列位置

字段修改到第一个位置

mysql> alter table xueshengdenjibiao modify stu_id int(11) first;

Query OK, 0 rows affected (0.60 sec)

Records: 0  Duplicates: 0  Warnings: 0

字段修改到指定位置

493d46ab882b7262cd8116eb4e075382.png

更改表的存储引擎

Mysql存储引擎是指mysql数据库中表的存储类型。不同的表的类型有着不同的优缺点。在创建表时,存储引擎就已经设定好了。如果要改变,可以通过重新创建一张表来实现。这样做是可以达到目的,但必然会影响到表中的数据。而且,操作比较麻烦。在mysql中,也可以通过alter table更改表的存储引擎的类型。

在修改之前我们可以先查看一下,表的结构:

mysql> show create table xueshengdenjibiao \G

*************************** 1. row ***************************

       Table: xueshengdenjibiao

Create Table: CREATE TABLE `xueshengdenjibiao` (

  `stu_id` int(11) NOT NULL DEFAULT '0',

  `stu_name` varchar(20) DEFAULT NULL,

  `stu_xingbie` varchar(1) DEFAULT NULL,

  `stu_phone` varchar(20) DEFAULT NULL,

  `stu_num` int(5) DEFAULT NULL,

  PRIMARY KEY (`stu_id`)

) ENGINE=InnoDB DEFAULT CHARSET=latin1

1 row in set (0.00 sec)

我们来修改一下,看看:

mysql> alter table xueshengdenjibiao engine=myisam;

Query OK, 0 rows affected (0.66 sec)

Records: 0  Duplicates: 0  Warnings: 0

修改后我们在来看看:

mysql> show create table xueshengdenjibiao \G

*************************** 1. row ***************************

       Table: xueshengdenjibiao

Create Table: CREATE TABLE `xueshengdenjibiao` (

  `stu_id` int(11) NOT NULL DEFAULT '0',

  `stu_name` varchar(20) DEFAULT NULL,

  `stu_xingbie` varchar(1) DEFAULT NULL,

  `stu_phone` varchar(20) DEFAULT NULL,

  `stu_num` int(5) DEFAULT NULL,

  PRIMARY KEY (`stu_id`)

) ENGINE=MyISAM DEFAULT CHARSET=latin1

1 row in set (0.00 sec)

如果表中已经l有很多的数据,改变存储引擎可能会造成一此意料之外的影响。如果一个表中已经存在了很多数据,最好不要轻易更改其存储引擎。

删除表的外键约束

外键是一个特殊字段,其将某一表与其父表建立关联关系。在创建表的时候,外键约束就已经设定好了。由于特殊需要,与父表之间的关联关系需要去除,要求删除外键约束。

mysql> alter table q3 drop foreign key c_de;

Query OK, 0 rows affected (0.27 sec)

Records: 0  Duplicates: 0  Warnings: 0

原来的外键变成了普通键key,操作成功。

删除自增长的主键

  先删除自增长在删除主键

  Alter table 表名 change id id int(10);      //删除自增长

Alter table 表名 drop primary key;           //删除主建

删除表

删除表时,会删除表中的所有数据。因此,在删除表时要特别注意。最稳妥的做法是先将表中所有的数据备份出来,然后在删除表。一旦删除表后发现造成了损失,可以通过备份的数据还原表,以便将损失降低到最小。如果在创建表时可能存在外键约束,一些表成为了与之关联的表的父表。要删除这些父表,情况比较复杂。

删除没有被关联的普通表

mysql> drop table shushengdenjibiao2;

Query OK, 0 rows affected (0.08 sec)

删除被其他表关联的父表

在前面我们讲解了创建表时设置表的外键。这样就使数据库中的某些表之间建立了关联关系。一些表成为了父表,这些表被其子表关联着。要删除这些父表,情况不像上一节那么简单。

最简单直接的办法是先删除子表,然后再删除父表。但这样可能会影响子表的其他数据;另一种办法是,先删除子表的外键约束,然后再删除父表。这种方法,不会影响子表的其他数据,可以保证数据库的安全。因此我们来重点说一下这种方法。

mysql> show create table example \G

*************************** 1. row ***************************

       Table: example

Create Table: CREATE TABLE `example` (

  `stu_id` varchar(20) DEFAULT NULL,

  `stu_shuxue` int(20) DEFAULT NULL,

  `stu_yuwen` int(20) DEFAULT NULL,

  KEY `c_ff` (`stu_id`),

  CONSTRAINT `c_ff` FOREIGN KEY (`stu_id`) REFERENCES `example1` (`stu_id`)

) ENGINE=InnoDB DEFAULT CHARSET=latin1

1 row in set (0.00 sec)

执行删除代码:

mysql> alter table example drop foreign key c_ff;

Query OK, 0 rows affected (0.72 sec)

Records: 0  Duplicates: 0  Warnings: 0

再来查看一下:

mysql> show create table example \G

*************************** 1. row ***************************

       Table: example

Create Table: CREATE TABLE `example` (

  `stu_id` varchar(20) DEFAULT NULL,

  `stu_shuxue` int(20) DEFAULT NULL,

  `stu_yuwen` int(20) DEFAULT NULL,

  KEY `c_ff` (`stu_id`)

) ENGINE=InnoDB DEFAULT CHARSET=latin1

1 row in set (0.00 sec)

表已经不存在外键了(foreign key),原来的外键变成了普通键(key)。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/559557.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

怎么用计算机算成250,万能计算器

彩票彩宝贝体彩排列五March 29, 2016彩票计划网站导航Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse ultrices egestas nunc, quis venenatis orci tincidunt id. Fusce commodo blandit eleifend. Nullam viverra tincidunt dolor, at pulvinar dui.…

android怎样判断插入数据是否成功_MySQL一个表的自增id用完了,背井大佬让我用这些姿势再往里插数据...

点击上方"码之初"关注,选择"设为星标"与精品技术文章不期而遇在之前有篇文章中,和大家探讨了在MySOL数据库中,一个表的自增id用完,再插入数据有什么问题?评论处 背井 公众号的大佬建议我另开一篇再…

计算机硬件系统教具,计算机硬件系统 (2)

计算机硬件系统 (2) (3页)本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦!9.9 积分计算机硬件系统克井一中杨致远教学目标:1、了解计算机的发展概况、特点以及种类2、理解计算机的工作原理3…

经典计算机实现量子逻辑门,量子计算机:对量子逻辑门的探讨

在分析了经典比特和量子比特的异同点之后,阐述了量子逻辑门的特点;然后具体介绍了几种常见的量子逻辑门:基本量子逻辑门,量子异或门,量子与门。最后又给出了更复杂的量子逻辑门的构建方法。维普资讯 http://doc.wendoc.com信息科学}J宋纳红侯丽敏科量子计算机&#…

命名空间中不存在名称_原木定制中不开裂的木材真的存在吗?

广大的读者朋友们大家好,之前壹信缅甸柚木高端全屋定制小编和大家讲解了为什么那么多人喜欢原木实木全屋定制护墙板,本文壹信小编将给大家讲讲原木整装中不开裂的木材真的存在吗。原木整装行业的从业人员都知道,最麻烦最让人担心的是木头的开…

go 字符串替换_Go语言爱好者周刊:第 64 期 — goup 这个工具了解下

这里记录每周值得分享的 Go 语言相关内容,周日发布。本周刊开源(GitHub:polaris1119/golangweekly),欢迎投稿,推荐或自荐文章/软件/资源等,请提交 issue 。鉴于大部分人可能没法坚持把英文文章看…

opencore0.6.3_Ubuntu 18.04 源码编译安装 PHP 7.3

记录在Ubuntu 18.04下源码编译安装 PHP 7.3的过程步骤。0.下载PHP源代码首先需要从PHP官网下载PHP7.3.1的源代码,保存为php-7.3.1.tar.xz。http://cn2.php.net/distributions/php-7.3.1.tar.xz在上述文件保存的目录中打开终端,使用命令将其解压&#xff…

photoshop案例_玩手机不如学PS!200集入门到精通Photoshop自学教程分享3

大家都知道Photoshop(PS)的功能非常的强大,它具有强大的绘图、校正图片及图像创作功能!人们可以利用它创作出具有原创性的作品。应用极为广泛,常应用于平面设计、网页设计、插画设计、界面设计、数码照片与图像的修复、…

西浦与杭电计算机选哪个,四邮四电究竟谁强谁弱?哪三所大学报考更有性价比?...

四邮 北京邮电学院 南京邮电学院 西安邮电大学 重庆邮电学院 四电 西安电子科技大学 电子科技大学 桂林电子科技大学 杭州电子科技大学。总体来说:成电西电>北邮>杭电>南邮重邮≈桂电>西邮。实力基本和各校年经费成正比,成电>西电>北邮…

android 获取当前时间_js如何获取当前时间并显示

js可以通过Date对象获取当前日期和时间,使用Date()获取系统当前时间,在使用getFullYear()、getMonth()、getDate() 、getHours()等方法获取特定格式的时间,在使用innerHTM方法显示。web前端学习:打造全网web前端全栈资料库&#x…

css居中的几种方法_CSS布局中的水平居中的方法

在我们做网站的过程中,怎么都逃不掉居中这个话题,各种花里胡哨的,可能只需要掌握两三个就可以完成一个网页的布局了。今天就来介绍下水平居中有哪些方法。第一种,设置当前元素水平居中,元素为block时要让p元素水平居中…

如何唤醒计算机,待机后如何唤醒计算机?介绍睡眠待机的优势

当我们将鼠标拖到习惯的位置时,我们会发现计算机实际上包括三个选项:关机,重新启动和睡眠。睡眠意味着您暂时不需要使用计算机,但是在需要时,界面可以保持不变。但是很不知道睡觉后怎么醒?如果您无法成功唤…

apollo 配置中心_配置中心——Apollo小记

一、什么是配置配置是程序运行时,动态调整行为的能力。配置有以下属性:配置是独立于程序的只读变量同一份程序在不同的配置下才会有不同的行为,而且配置对于程序来说是只读的,所以程序可以通过读取配置来改变自己的行为&#xff0…

html红色星号怎么做_码农的插花艺术:HTML(一)

这是笔者学习html的过程中的小小心得和体会,由于笔者也是前端初学者,能力有限难免出错,恳请各位读者看到有错误的地方多多包涵,也欢迎各位在评论区积极讨论。严格来讲html并不算一种“语言”。html的文档可以以txt的形式保存&…

scrapy没有运行结果_关于Scrapy爬虫项目运行和调试的小技巧(下篇)

前几天给大家分享了关于Scrapy爬虫项目运行和调试的小技巧上篇,没来得及上车的小伙伴可以戳超链接看一下。今天小编继续沿着上篇的思路往下延伸,给大家分享更为实用的Scrapy项目调试技巧。三、设置网站robots.txt规则为False一般的,我们在运用…

easyui datagrid oncheck 修改行样式_100 种 PPT 图表样式送给你

你好,这里是诺灰屋我是诺灰距离上一篇推文,已有近一个月的时间没有给大家写推送了。这期间,我一直在进行数据图表方面知识的网络调研。甚至于在知网上找了几篇论文来看,当然,内容很枯燥,不实用。同时&#…

系统如何启动数据库服务器,怎么启动sql数据库服务器

怎么启动sql数据库服务器 内容精选换一换PostgreSQL支持逻辑备份。您可使用pg_dump逻辑备份功能,导出备份文件,再通过psql导入到RDS中,实现将PostgreSQL的数据导入到云数据库RDS中。云数据库RDS服务支持开启公网访问功能,通过弹性…

富士康服务器主板X58维修,富士康X58 Blood Rage主板BIOS预览

富士康X58主板Blood Rage在软硬件方面都已经设计完成,下边就来看看BIOS设定部分。通用条目这里暂且略过,只看看富士康独特的“Quantum BIOS”部分,有关系统各部件的条件以及超频都要在这儿完成。Quantum BIOS主界面:分为处理器功能…

amd cpu不能在cmd环境下运行java代码_00 开发环境搭建

我们来着手在本地计算机环境安装 TensorFlow 最新版框架。TensorFlow 框架支持多种常见的操作系统,如 Windows 10、Ubuntu 18.04、Mac OS 等等,同时也支持运行在 NVIDIA 显卡上的 GPU 版本和仅适用 CPU 完成计算的 CPU 版本。我们以最为常见 Windows 10 …

更新无限无线连接更新服务器,02-H3C WBC560多业务无线控制器软件升级操作指导...

本文中的绿洲平台指的是WBC560多业务无线控制器中的本地绿洲。1.1.1 软件升级方式简介AC支持通过命令行进行软件升级和通过Web页面进行软件升级,命令行升级方式只能通过以太网口telnet到AC进行升级,无法通过HDM进行升级。升级方式说明需要重启AC来实现A…