备注:
dml:data manipulation [məˌnɪpjʊˈleɪʃən] language 数据操作语言,他们是insert、delete、update用来对数据库操作
ddl:data definition language 数据定义语言,这一系列的操作重点在于是对表结构的改变、数据类型的改变、表之间链接与约束
dql:data query language 数据查询语言,比如query
MySQL既然是数据库语言,自然也有相应的数据类型:
下面在来说说具体的操作细节:
先来说一下表的创建,典范:
not NULL不为这个默认值, 没啥意思,AUTO_INCREMENT这个是用来设置主键自动增长的,主键id也可以这样来设置
id int not null primary key auto_increment
最后一个定义语句语句可以不用加逗号,注意观察,设置默认引擎ENGINE=InnoDB ,主键增长起始值AUTO_INCREMENT = 4,设置了默认字符集default charset = utf8
大致就是这些。
下面说一下表插入我们需要注意的问题:典范
看一下student2这张表的结构:
然后插入数据
上面需要注意的就是插入的时候每一列与数据都是一一对应的。换句话说,你主要在插入的时候,列出来的自字段,你在赋值的时候都必须要一一对应上
下面再来看一个:
这个表他设置了一个外键级联,也就是说此表的主键与另外一张表的主键相互关联,后面on delete cascade on update cascade操作就是关联操作,你改变我就改变,你不存在,我也不存在,后面具体再说。
在来说说数据的插入:
这个我们就没有带入主键,她自动增长,但是表明出来的字段,不管有没有默认值,我们必须把值全部赋上,一一对应。
下面再来说说插入的二个问题:
第一个:当某一个字段有默认值的时候,我们在插入的时候可以省略这个字段赋值
先来创建一个表:
然后插入数据:
我们就省略了gender这个字段的赋值。
查询一下:
第二个:MySQL新版本中比如5.5,char与varchar里面的数字都代表字符数目,不代表占用字节。
当char(1)的时候,一个中文是可以插入的
但是两个中文是插不进去的:
提示我们长度不够,于是我修改了列的信息,让它变成了char(2):
再次插入数据:
OK了。
关于删除一张表:
truncate table 表名
delete from 表名
都是清除表的数据,前者会把表的结构也删除,我们必须重新构建,比如主键自增,外键约束都会删除。
下面说一下查询,其实也没啥说的,就是select,你想查啥,直接写出来就行。
注意一些运算符的使用: