今天老师看我看书,然后跟我说书不重要。。重要的是你的项目开辟到了一个什么样的地步去,你要用MYSQL才应该去学习他,MYSQL的基础都没有用的 ,还是用到的时候才有意义,加深印象,所以我决定不细细的去读了,大致过一遍,然后开始去完善自己的项目,到最后的时候发有意思的,基础的就算了,但是一天70面肯定会看的,说到做到。
命令:
1.删除数据表
删除数据表是将数据库中已经存在的表从数据库中删除。注意,在删除表的同时,表的定义和表中所有的数据均会被删除。因此,在进行删除前,最好对表中的数据做个备份,以免造成无法挽回的后果。
(1)删除没有被关联的表
DROP TABLE [IF EXISTS]表1,表2,...表n;
参数“IF EXISTS”的作用是用于在删除前判断删除的表是否存在,加上该参数后,再删除表的时候如果表不存在,SQL语句可以顺利执行,但是会发出警告。
DROP TABLE IF EXISTS tb_dept2;
删除表tb_dept2如果他存在的话
(2)删除被其他表关联的主表
数据表之间存在外键关联的情况下,如果直接删除父表,结果会显示失败,原因是直接删除,将破坏表的参照完整性。如果必须要删除,可以先删除与他关联的子表,再删除父表只是这样同时删除了两个表中的数据,但有的情况需要我们保留子表,这时如果单独删除父表,只需要将关联表的外键约束条件取消就可以了。
接着是实例我就不写上来了,下去自己练去了。
应当注意的小细节:
(1)删除表中数据钱最好进行备份,童谣的在使用ALTER TABLE进行表的基本修改操作时,在执行操作过程之前,也应该确保对数据进行完整的备份。
(2)并不是每一个表都需要一个主键,一般的,如果多个表之间进行连接操作时,需要用到主键,因此并不需要为每个表建立主键,而且有些情况最好不要用主键。
(3)并不是每个表都可以任意选择存储引擎,相关联的表他们的引擎必须相同。
(4)带AUTO_INCREMENT约束的字段默认是从1开始的,但是你可以一开始假设id是5,那之后就是5开始往后的了。
第五章 数据类型和运算符
总体总结
(1)数值数据类型:包括整数类型tinyint,smallint,mediumint,int,bigint浮点小数数据类型float和double,定点小树类型decimal
(2)日期/时间类型:包括year,time,date,datetime和timestamp
(3)字符串类型:包括char,varchar,binary,varbinary,blob,text,enum和set等
整数类型
tinyint 1个字节
smallint 2个字节
mediumint 3个字节
int 4个字节
bigint 8个字节
关于命令的解释
id INT(11);
数字11表示的是该数据类型指定的显示宽度,指定能够显示的数值中数字的个数。
例如
year INT(4)该声明指定在year字段中的数据一般只显示4位数字的宽度(这里本人是开始不理解看到这里才理解了后面数字的意义,所以就写上来啦)
显示宽度和数据类型的取值范围是无关的
数值位数小于指定的宽度时会由空格填充,如果插入大于显示宽度的值,只要该值不超过该类型整数的取值范围,数值依旧可以插入,而且能够显示出来。例如你对year插入19999,那么MYSQL显示的将会是完整的带有五位数字的19999。
顺带一提每个数据都是有自己的默认宽度的,默认宽度保证能够显示每一种数据类型可以取到取值范围内的所有值。
浮点数据类型和定点数类型
浮点数:(单精度浮点类型)FLOAT,(双精度浮点类型)DOUBLE
定点类型:DECIMAL(默认(10,0))
浮点类型和定点类型都可以用(M,N)来表示
其中M称为精度,表示总的位数
N为标度,表示小数的位数
DECIMAL (M,N) , DEC 压缩的"严格"定点数M+N个字节
CREATE TABLE tmp2(x FLOAT(5,1),y DOUBLE(5,1),z DECIMAL(5,1));
日期与时间类型
这个类型我觉得。。。要用的时候查就好了,身为一个学了C语言C++的表示真的用的不多。。。我就看一遍,不总结了。
字符串类型
字符串类型用来存储字符串数据,除了可以存储字符串数据之外,还可以存储其他数据,比如图片和声音的二进制数据。
LIKE是用来匹配字符串的
CHAR(M) 固定长度非二进制字符串 M字节
VARCHAR(M) 变长非二进制字符串 L+1字节,L<=M
TINYTEXT 非常小的非二进制字符串
TEXT 小的非二进制字符串
MEDIUMTEXT 中等大小的非二进制字符串
LONGTEXT 大的非二进制字符串
ENUM 枚举类型,只能有一个枚举字符串值
SET 一个设置,字符串对象可以有零个或多个SET成员
CHAR 和 VARCHAR
CHAR(字符数组):::长度固定的字符串,在定义时指定字符串列长,保存时候右边填充空格以达到指定长度。CHAR(4)如果定义了一个固定长度的字符串列,然后当检索到CHAR值时,尾部的空格会被删除掉
VARCHAR(字符串):::长度可变的字符串,M表示最大列长度,若是VARCHAR(50)只插入了十个字符,则实际存储的字符串为10个字符和一个字符结束字符
VARCHAR在保存和检索的的时候他的尾部的空格仍然保留。
区别
'' 'ab' 'abc' 'abcd' 'abcdef'
CHAR ' '4字节 'ab '4字节 'abc'4字节 'abcd'4字节 'abcd'4字节
VARCHAR ''1字节 'ab'3字节 'abc'4字节 'abcd'5字节 ‘abcd’5字节
TEXT类型
TEXT列保存非二进制字符串,如文章内容,评论等。
TINYTEXT
TEXT
MEDIUMTEXT
LONGTEXT
ENUM类型
语法格式
字段名 ENUM('值1','值2',...'值n')
字段名指将要定义的字段,值n指美剧列表中的第n个值。
ENUM
NULL NULL
‘’ 0
first 1
second 2
third 3
BINARY和VARBINARY类型,他们类似于CHAR和VARCHAR,不同的是它们包含二进制字节字符串。
新命令
SHOW WARNINGS;(显示警告信息)
DELETE FROM tmp2;(删除表中所有的数据)
MYSQL 存储文件是可行的