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,一经查实,立即删除!

相关文章

ubuntu命令收集

软件操作&#xff1a; - sudo apt-get install xxx  安装软件 - sudo apt-get --purge remove XXX  卸载软件 - sudo apt-get -f install  修复安装 - sudo dpkg -i [fileName.deb] 安装deb结尾的文件(不会解决依赖) echo XXX  输出到终端 nohup XXX  不挂断地运行命…

你不必害怕,岁月有的是时间让你遇见更好的人(沈善书)

这是我单身生活的第四年。一个人的生活里&#xff0c;总会羡慕别人的爱情。时间久了&#xff0c;我就慢慢告诉自己&#xff0c;其实也不必羡慕别人的爱情&#xff0c;我也可以轰轰烈烈&#xff0c;只是上辈子欠了岁月一个人情&#xff0c;岁月要让我多等待&#xff0c;磨练我的…

postgis 导出 栅格_postgis常见的空间数据的导入导出

本片文章简单记录了postgis涉及的常用数据导入导出的使用方法。1.将osm数据导入postgisosm2pgsql -c -d osm -l -E 4326 -S /usr/share/osm2pgsql/default.style xxxxx.osm这里要注意几个参数&#xff0c;是选用-c还是-a要看你的应用方式,-S这个是在ubuntu下路径不同时使用&…

修复./mysql/proc

mysql数据库只能建不能删的错误提示及处理方法&#xff1a;mysql> drop database testmysqldatabase;ERROR 145 (HY000): Table ./mysql/proc is marked as crashed and should be repaired处理方法&#xff1a;直接在mysql数据库里面使用root帐号登录后&#xff0c;进行修复…

Android有道词典查询功能

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

C++的迭代器Interator

*************************************************** 更多精彩&#xff0c;欢迎进入&#xff1a;http://shop115376623.taobao.com STL视频教程&#xff1a; http://item.taobao.com/item.htm?spma1z10.5-c.w4002-9510581626.21.y9vLuz&id43055362725 ***************…

从零开始学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.内容…

C++ Vector 使用心得

*************************************************** 更多精彩&#xff0c;欢迎进入&#xff1a;http://shop115376623.taobao.com STL视频教程&#xff1a; http://item.taobao.com/item.htm?spma1z10.5-c.w4002-9510581626.21.y9vLuz&id43055362725 ***************…

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

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

python数据分析、挖掘与可视化 慕课答案_Python数据分析、挖掘与可视化(慕课版)...

第1章 Python开发环境的搭建与编码规范 1n1&#xff0e;1 Python开发环境的搭建与使用 1n1&#xff0e;1&#xff0e;1 IDLE 2n1&#xff0e;1&#xff0e;2 Anaconda3 3n1&#xff0e;1&#xff0e;3 安装扩展库 4n1&#xff0e;2 Python编码规范 5n1&#xff0e;3…

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

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

C++语言中multiset的相关用法及扩展

*************************************************** 更多精彩&#xff0c;欢迎进入&#xff1a;http://shop115376623.taobao.com *************************************************** cpp语言中&#xff0c;multiset是<set>库中一个非常有用的类型&#xff0c;它可…

[20160201]db_link与子光标问题.txt

[20160201]db_link与子光标问题.txt --生产系统遇到一个关于db_link产生大量子光标问题&#xff0c;当cursor_sharingforce的情况下&#xff0c;通过测试说明。 --注&#xff1a;这个问题我的测试仅仅存在10.2.0.4,11.2.0.4没有这个问题。 1.环境&#xff1a; SCOTTtest> &a…

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

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

STL 整理(map、set、vector、list、stack、queue、deque、priority_queue)

*************************************************** 更多精彩&#xff0c;欢迎进入&#xff1a;http://shop115376623.taobao.com STL视频教程&#xff1a; http://item.taobao.com/item.htm?spma1z10.5-c.w4002-9510581626.21.y9vLuz&id43055362725 ************…

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

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

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

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

优化android studio编译的apk大小

默认生成的apk&#xff08;release版&#xff09;太大&#xff08;只打印helloworld的apk大小就有1MB多&#xff09;&#xff0c;需要优化编译&#xff0c;如下&#xff0c;修改build.gradlebuildTypes { release {minifyEnabled true zipAlignEnabled true s…