mysql数据库表复用_MySQL 数据库之表操作

一、创建表的完整语法

create table 表(

字段名1 类型 [(宽度) 约束条件],

字段名2 类型 [(宽度) 约束条件],

字段名3 类型 [(宽度) 约束条件]

);

1.类型:使用限制字段必须以什么样的数据类型传值

约束条件:约束条件是在类型之外添加一种额外的限制

2.注意点

1.在同一张表中,字段名不能相同

2.宽度和约束条件可选,字段名和类型是必须的

3.最后一个字段后不用加逗号

二、基本的数据类型:

1、整型

1、作用:id号,各种号码,年龄,等级

2、分类: tinyint,int,bigint

3、注意:强调:对于整型来说,数据类型后的宽度并不是存储限制,而是显示限制

所以在创建表示,如果字段采用的是整型类型,完全无需指定显示宽度,

默认的显示宽度,足够显示完整当初存放的数据

73d3070f9979245c0f7dadd460e817f6.png

int的存储宽度是4个Bytes,即32个bit,即2**32

无符号最大值为:4294967296-1

有符号最大值:2147483648-1

有符号和无符号的最大数字需要的显示宽度均为10,而针对有符号的最小值则需要11位才能显示完全,所以int类型默认的显示宽度为11是非常合理的

最后:整形类型,其实没有必要指定显示宽度,使用默认的就ok

2、浮点型

1.作用:存储身高、体重、薪资

2.分类:float、double、decimal

create table t3(x,float(255,30));

create table t4(x,double(255,30));

create table t5(x,decimal(65,30));

insert into t3 values(1.111111111111111111111111111111)

insert into t4 values(1.111111111111111111111111111111)

insert into t5 values(1.111111111111111111111111111111)

cmd运行

mysql> select * fromt9;+----------------------------------+

| x |

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

| 1.111111164093017600000000000000 |

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

1 row in set (0.00sec)

mysql> select * fromt10;+----------------------------------+

| x |

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

| 1.111111111111111200000000000000 |

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

1 row in set (0.00sec)

mysql> select * fromt11;+----------------------------------+

| x |

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

| 1.111111111111111111111111111111 |

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

1 row in set (0.00 sec)

3.相同点:

1.对于三者来说,都能存放30位小数,

4.不同点:

1.精度的排序从低到高:float、double、decimal

2.float与double类型能存放的整数位比becimal更多

3、字符类型

1.作用:姓名,地址,描述性的信息

2.分类:

char :  定长,简单粗暴,浪费空间,存取速度快

字符长度范围:0-255(一个中文是一个字符,是utf8编码的3字节)

例如:指定长度为10,存>10个字符则报错,存<10个字符则用空格填充直到凑够10个字符存储

varchar :变长,精确,节省空间,存取速度慢

字符长度范围:0-65535(如果大于21845会提示用其他类型 。mysql行最大限制为65535字节,字符编码为utf-8

强调:varchar类型会在真实数据前加1-2Bytes的前缀,该前缀用来表示真实数据的bytes字节数(1-2Bytes最大表示65535个数字,正好符合mysql对row的最大字节限制,即已经足够使用)

存储:varchar类型存储数据的真实内容,不会用空格填充,如果'ab ',尾部的空格也会被存起来

create table t12(x char(4)); #超出4个字符则报错,不够4个字符则用空格补全成4个字符

create table t13(y varchar(4));#超出4个字符则报错,不够4个字符那么字符有几个就存几个

insert into t12 values('hello');

insert into t13 values('hello');

insert into t12 values('a'); #'a '

insert into t13 values('a'); #'a'

setglobal sql_mode="strict_trans_tables,PAD_CHAR_TO_FULL_LENGTH";

select char_length(x)from t12; #4

select char_length(y) from t13; #1

注意:

针对char类型,mysql在存储时会将数据用空格补全存放到硬盘中

但会在读出结果时自动去掉末尾的空格,因为末尾的空格在字段明确地等于一个值的场景中是无用

4、日期类型

分类:

date:1999-01-27

time:11:11:11

datetime:1999-01-27  11:11:11

year: 1999

create table student(->id int,-> name varchar(20),->born_year year,->birth date,->class_time time,->reg_time datetime);insert into student values-> (1,'alex',"1995","1995-11-11","11:11:11","2017-11-11 11:11:11"),-> (2,'egon',"1997","1997-12-12","12:12:12","2017-12-12 12:12:12"),-> (3,'wsb',"1998","1998-01-01","13:13:13","2017-01-01 13:13:13");

MariaDB [db1]> select * fromstudent;+------+------+-----------+------------+------------+---------------------+

| id | name | born_year | birth | class_time | reg_time |

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

| 1 | alex | 1995 | 1995-11-11 | 11:11:11 | 2017-11-11 11:11:11 |

| 2 | egon | 1997 | 1997-12-12 | 12:12:12 | 2017-12-12 12:12:12 |

| 3 | wsb | 1998 | 1998-01-01 | 13:13:13 | 2017-01-01 13:13:13 |

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

5、枚举与集合类型

作用与分类:

枚举enum,多选一个

集合set,多选多

create table consumer(

name char(16),

sex enum('male','female'),

level enum('vip1','vip2','vip3','vip4','vip5',)

hobby set ('play','music',read','study'));

insert into consumer values

('egon','male','vip5','read,study'),

('alex','female','vip1','girl');

cmd 运行

select* fromconsumer;+------+--------+-------+------------+

| name | sex | level | hobby |

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

| egon | male | vip5 | read,study |

| alex | female | vip1 | |

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

三、约束条件

1、not null 与default

是否可空,null表示空,非字符串

not null   不可空

null    可空

默认值,创建列表可以指定默认值,当插入数据时如果未主动设置,则自动添加默认值

create table t15(

id int,

name char(16) notnull,

sex enum('male','female','other') not null default "male");

insert into t15(id,name) values

(1,'egon1'),

(2,'egon2'),

(3,'egon3');

cmd 运行

mysql>desc t15;+-------+-------------------------------+------+-----+---------+-------+

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

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

| id | int(11) | YES | | NULL | |

| name | char(16) | NO | | NULL | |

| sex | enum('male','female','other') | NO | | male | |

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

3 rows in set (0.04 sec)

2、unique:限制字段的值唯一(就是独一无二)

#单列唯一

create table t16(

id int unique,

name char(16)

);#联合唯一

create table server(

id int unique,

ip char(15),

port int,

unique(ip,port)

);

3、primary key:单单从约束角度去看,primary key 就等同于not null unique

1.强调

1.一张表中必须有,并且只能有一个主键

2.一张表中都应该有一个id字段,而且应该把id字段做成主键

单列做主键

create table t11(

id int primary key,

name char(16),

age int,

sex char(6)

);

联合主键

create table t12(

ip char(15),

port int,

primary key(ip,port)

);

单列cmd查看:

mysql>desc t11;+-------+----------+------+-----+---------+-------+

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

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

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

| name | char(16) | YES | | NULL | |

| age | int(11) | YES | | NULL | |

| sex | char(6) | YES | | NULL | |

+-------+----------+------+-----+---------+-------+联合cmd查看:

mysql>desc t12;+-------+----------+------+-----+---------+-------+

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

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

| ip | char(15) | NO | PRI | | |

| port | int(11) | NO | PRI | 0 | |

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

4、auto_increment

约束字段为自动增长,被约束的字段必须同时被key约束

create table t13(

id int primary key auto_increment,

name char(16)

);

mysql> insert into t13(name) values('egon'),('alex');

cmd 运行:

mysql> select * fromt13;+----+------+

| id | name |

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

| 1 | egon |

| 2 | alex |

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

2 rows in set (0.02 sec)

1.注意点:

1.通常与primary key连用,而且通常是给id字段加

2.auto_incremnt只能给被定义成key(unique key,primary key)的字段加

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

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

相关文章

Android有道词典查询功能

有道词典 任务要求&#xff1a;完成查词等功能 因为需要申请API key&#xff0c;这里直接给出地址供使用&#xff1a;http://fanyi.youdao.com/openapi?pathdata-mode 1、activity_main.xml基本格局&#xff08;不做任何说明&#xff09; 代码如下&#xff1a; 1 <Relative…

从零开始学Axure原型设计(高级篇)

如果你熟悉了Axure的部件库&#xff0c;那么你可以得心应手地画出心目中产品的线框图&#xff1b;如果你会用Axure的母版、动态面板功能&#xff0c;那么你应该能够画出一些简单网站的原型图&#xff1b;但只有你精通了Axure的条件逻辑、变量、函数等高级交互&#xff0c;才能将…

python vector 初始化_从零开始搭建机器学习算法框架(python)--计算框架

介绍今天开始一个新的系列&#xff0c;这个系列的目标是用python在不使用任何第三方库的情况下去实现各类机器学习或者深度学习的算法。之所以会有这种想法是因为每当我想提高编程技巧的时候&#xff0c;我总希望能够做一些简单又有趣的小项目练手。我一直对机器学习算法颇感兴…

windows phone 页面主题设计

达到如图这个效果&#xff1a; 1.保证状态栏背景色与主题栏颜色相同需设置状态栏的透明度&#xff0c;代码如下&#xff1a;shell:SystemTray.IsVisible"True" shell:SystemTray.Opacity"0.01" 2.顶部状态栏高度为25&#xff0c;字的上下要留部分空白3.内容…

JAVA如何才能导出这样的EXCEL?

2019独角兽企业重金招聘Python工程师标准>>> 最近的项目有个需求&#xff0c;需要做个报表&#xff0c;excel如上所示。没有很好的办法&#xff0c;求指教。 转载于:https://my.oschina.net/secret620/blog/611450

Xcode 修改工程名以及注意事项

1、先把整个工程文件夹名改为新的工程名。 2、打开工程&#xff0c;单击&#xff0c;输入新的工程名,会出现&#xff0c;点击确定。 3、回到工程界面&#xff0c;在中选择 Manage Schemes,然后再弹出的对话框&#xff0c;把工程名改为新的名字。 4、最好在工程中&#xff0c;把…

脚本命令配置mysql_MySQL 自动化部署脚本

一、环境说明操作系统&#xff1a;CentOS数据库版本&#xff1a;MySQL 5.7/8.0参数&#xff1a;buffer pool 会根据系统内存指定、默认双一、GTID、SlowLog脚本默认安装路径&#xff1a;/usr/local/mysql脚本默认数据路径&#xff1a;/data/mysql*(根据安装包版本适应 比如 5.7…

第2章 数字之魅——快速寻找满足条件的两个数

快速寻找满足条件的两个数 问题描述 能否快速找出一个数组中的两个数字&#xff0c;让这两个数字之和等于一个给定的数字&#xff0c;为了简化起见&#xff0c;我们假设这个数组中肯定存在这样一组或以上符合要求的解。 分析与解法 【解法一】 代码如下&#xff1a; 1 package …

eigen 列向量转矩阵_快速入门矩阵运算——开源库Eigen

矩阵是数学中一个重要的工具&#xff0c;广泛应用于各种场景下的数值分析&#xff0c;例如&#xff0c;数字信号处理&#xff0c;图像处理等。我们如何在程序中使用矩阵进行运算呢&#xff1f;本文将为大家介绍一个开源的矩阵运算工具——Eigen。Eigen is a C template library…

mysql raid_DBA们应该知道的RAID卡知识_MySQL

bitsCN.com对于数据库这种特殊应用IOphotoshop/ target_blank classinfotextkey>PS往往会成为瓶颈&#xff0c;突破的这个瓶颈的有效方法不多&#xff0c;软件方面主要是读写分离&#xff0c;垂直拆分&#xff0c;分区表技术&#xff0c;cluster。硬件方面主要是raid&#x…

基于Maven的SSH框架搭建

2019独角兽企业重金招聘Python工程师标准>>> 1.工程介绍 工程是结合了Springstruts2hibernate&#xff0c;实现了一个简单的form表单提交的功能&#xff0c;可能需要对spring&#xff0c;struts2&#xff0c;hibernate有一个基础的了解才好理解。 2.工程结构图 首先…

交通警察手势信号(动画演示)

*************************************************** 更多精彩&#xff0c;欢迎进入&#xff1a;http://shop115376623.taobao.com *************************************************** 一、交通警察手势信号&#xff0d;停止信号 二、交通警察手势信号&#xff0d;直行信…

mysql和mybatis面试题_BATJ面试题汇总详解:MyBatis+MySQL+Spring+Redis+多线程

SpringSpring 概述什么是spring?使用Spring框架的好处是什么&#xff1f;Spring由哪些模块组成&#xff1f;解释AOP模块Spring配置文件什么是Spring IOC 容器&#xff1f;依赖注入什么是Spring的依赖注入&#xff1f;有哪些不同类型的IOC(依赖注入)方式&#xff1f;哪种依赖注…

Codeblocks和gdb调试 (转)

*************************************************** 更多精彩&#xff0c;欢迎进入&#xff1a;http://shop115376623.taobao.com *************************************************** 使用C::B和gdb调试是一件简单的事情。下面&#xff0c;让我们调试一个简单的循环&…

mysql5.7.17 win7_win7下mysql5.7.17安装配置方法图文教程

win7下安装mysql5.7.17图文教程&#xff0c;分享给大家。1.下载安装包请在以下有zip包和msi两种类型包&#xff0c;建议新手选择zip包下载&#xff0c;有助于熟习mysql2.解压mysql压缩包下载完成后解压&#xff0c;将其放在要安装的目录下面&#xff0c;如&#xff1a;e:\mysql…

停一下

15年过去已半载有余&#xff0c;回头看年初定下的目标&#xff0c;有种管中窥豹的感觉。之前和肉山讨论的时候&#xff0c;他对我想要发展的方向并没有表示赞同。 现在认为他是对的&#xff0c;发展的方向太靠前了&#xff0c;ui&#xff0c;canvas&#xff0c;svg&#xff0c;…

which 命令

我们经常在linux要查找某个文件&#xff0c;但不知道放在哪里了&#xff0c;可以使用下面的一些命令来搜索&#xff1a; which 查看可执行文件的位置。 whereis 查看文件的位置。 locate 配合数据库查看文件位置。 find 实际搜寻硬盘查询文件名…

18ch

18.2 线程和进程 18.2.1 什么是进程&#xff1f; 18.2.1 什么是进程&#xff1f; 计算机程序只不过是磁盘中可执行的&#xff0c;二进制的数据。它们只有在被读取到内存中&#xff0c;被操作系统调用的时候才开始它们的生命周期。进程&#xff08;重量级进程&#xff09;是程序…

安卓四大组件总览

在安卓中四大组件 &#xff08;Component&#xff09;指的是&#xff1a;Activity&#xff0c;Service&#xff0c;BroadcastReceiver&#xff0c;ContentProvider。此博客仅仅对安卓中四大组件从整体上进行简单的分析&#xff0c;了解他们在安卓系统框架中处的位置与作用&…

java ee 指南 pdf_Java EE 7权威指南:卷1(原书第5版) 中文pdf

资源名称&#xff1a;Java EE 7权威指南&#xff1a;卷1(原书第5版) 中文pdf第一部分 引言第1章 概述 2第2章 使用教程示例 27第二部分 平台基础知识第3章 资源创建 38第4章 注入 41第5章 打包 44第三部分 Web层第6章 Web应用入门 50第7章 JSF技术 66第8章 Facelets…