数据库-MySQL-数据库和表

创建数据库

数据库Database,就是存储数据的仓库。
MySQL自带了四个数据库
数据库-MySQL-数据库和表
其中,test是测试用的,其他三个是系统库。
注意:不要对于这三个自带的系统数据库进行操作。

数据类型

https://dev.mysql.com/doc/refman/5.7/en/data-types.html
varchar数据类型:可变长的字符串
VARCHAR(M)是一种比CHAR更加灵活的数据类型,同样用于表示字符数据,但是VARCHAR可以保存可变长度的字符串。其中M代表该数据类型所允许保存的字符串的最大长度,只要长度小于该最大值的字符串都可以被保存在该数据类型中。
1.首先明确的是,char的长度是不可变的,而varchar的长度是可变的
2.定义一个char[10]和varchar[10],如果存进去的是‘abcd’,那么char所占的长度依然为10,除了字符‘abcd’外,后面跟六个空格,而varchar就立马把长度变为4了。
3.char的存储方式是,对英文字符(ASCII)占用1个字节,对一个汉字占用两个字节;而varchar的存储方式是,对每个英文字d符占用2个字节,汉字也占用2个字节,两者的存储数据都非unicode的字符数据。

数据库-MySQL-数据库和表
数据库-MySQL-数据库和表
数据库-MySQL-数据库和表
数据库-MySQL-数据库和表
数据库-MySQL-数据库和表
数据库-MySQL-数据库和表

列的属性

0.列名
1.数据类型
2.长度
3.非空
4.主键
5.自增

数据库-MySQL-数据库和表
数据库-MySQL-数据库和表
数据库-MySQL-数据库和表
数据库-MySQL-数据库和表

联合主键

考虑用一个表存储品牌手机的信息
制造商 型号 版本 价格 制式
华为 荣耀 8 1300 wcdma
华为 荣耀 9 1500 wcdma
小米 荣耀 3 1100 tdcdma

  • 制造商 不能作为主键,因为制作商为华为的记录有多行
  • 型号 不能作为主键,因为同一型号下还有不同的版本

但是, “制造商” “型号” “版本” 三者联合在一起可以唯一标识一个型号的手机。这个场景叫作联合主键。

注意,联合主键仍然是一个主键,由三个字段联合在一起。

数据库-MySQL-数据库和表
数据库-MySQL-数据库和表