博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
数据库基础-day61
阅读量:3703 次
发布时间:2019-05-21

本文共 1753 字,大约阅读时间需要 5 分钟。

about storage engines,目前,你得知道我们目前使用的是innodb,创建不同引擎的表,生成的文件会有些特点,这里暂时不写,select可以查询表中的数据,desc t1,是查看表的结构信息,show create table t1\G;可以更详细的查看表的结构信息,复制表,表结构和数据都复制,create table t2 select * from t1;只复制表结构,create table t3 like t1;			create table t4 select * from t1 where 1>3;mysql中用tinyint来模拟boolean,tinyint默认是有符号数,通过插入负数是否报错,可以看出来,int[(m)][unsigned][zerofill],这是数的定义格式,其它比如tinyint等一样中括号代表可有可无,m代表设定显示长度,关于int(5),这个5是显示宽度,注意区分它与存储宽度的区别,结论就是你可以不用理会,why?因为默认的显示长度是根据你的类型比如int,在此基础上加1,如果你指定了,若是数比较小,使用zerofill可以用0填充空余位置,若是数大,就会该是多少就显示多少,FLOAT[(M,D)] [UNSIGNED] [ZEROFILL],浮点数的定义格式,(联想记忆:定点数)M代表整个个数,D代表小数个数,对于DOUBLE而言M,D的范围不同,但这些数都存在靠后不准确的情况,相信应该不是那么重要,从而忽略了对这里的处理,create table t15(x float(25,21));insert into t15 values(1.111111111111111111111111111);然后你select * from t15;就能看到它有多不准确.ps:相对来说decimal最精确,

关于时间类型:year类型:范围1900~2155,date类型,即日期,插入的数据得用引号,time类型,即时间,插入的数据得用引号,datetime,即日期&时间,插入的数据得用引号,timestamp,这个时间比较的时候会用到,插入数据的时候也得用引号,ps:now()函数可以插入当前的时间,	时间插入有一些简写的方法,不做重点,char and varchar,(注意发音)前者存取快,后者可以根据数据大小,合理占用空间,时间,空间转换的例子,char(n),这个n不同于int中的,这里指字符的长度,字符!!!

create table t1(	e enum('1','2'),	s set('1','2')	);ps:上面都得是字符串形式,枚举是多选1,集合是多选多,

约束条件,create table t1(	id int,	ip int,	port int,	unique(ip,port)	);//联合唯一	primary key(ip,port) //这是复合主键auto_increment,如果不插入这项数据,则新插入数据,这项会自动增长,如果指定了,则后续会在此基础上增加,还有一些细节,比如清空表格,步长,偏移量,

foreign key,出现的原因,比如员工很多,但是部门以及对应的信息,就那几个,所以单独把部门信息写进一张表,用一个id指向这个部分,然后在最初的表中,就不再需要用老长的数据存储,而只需要一个部门id即可,越是数据多,这种方式生下来的存储空间就越多,下面是外键的使用方式,	dep_id int,	//1.先定义那个数据,	constraint fk_dep foreign key(dep_id) references dep(uid)	//2.然后修饰这个数据,由于两张表有个数据的关联,就涉及到一个同步的问题,你得自己手动操作,并且顺序是你引用的那个表得后删除,可能是因为,你先删除被引用的数据,那么另一个表就存在找不到数据的错误,如果想自动关联数据的改变,你得在引用外部表的那个表中添加,    on delete cascade #同步删除    on update cascade #同步更新,之后两张表的操作顺序,就没有限制了,并且相互之间的更改自动更新.

你可能感兴趣的文章
指针小结(摘自C++程序设计教程)
查看>>
HTML基础
查看>>
几个概念
查看>>
数据库简介
查看>>
MySQL操作
查看>>
关于表的操作
查看>>
数据操作
查看>>
MySQL导入Excel数据
查看>>
MySQL数据类型
查看>>
1014 Waiting in Line (30 分)
查看>>
git 关于 git push origin master 失败的问题解决
查看>>
古风排版
查看>>
编译和交叉编译openssl
查看>>
编译和交叉编译curl
查看>>
ubuntu下载安装Eclipse for c/c++ developers
查看>>
Sourcetree跳过注册和git和mercurial安装
查看>>
c语言16进制字符串转字节数组
查看>>
Windows下pc-lint下载安装以及搭建环境检查Linux下开发的工程代码
查看>>
Ubuntu 16.04 LTS 升级到 Ubuntu 18.04 LTS
查看>>
ubuntu下安装CUnit出现的问题及解决
查看>>