在这里我们稍微回顾下上一节的内容:
Mysql默认的端口号是 3306
Mysql的超级用户叫什么 root
创建数据库 CREATE DATABASE
修改数据库 ALTER DATABASE
删除数据库 DROP DATABASE
什么是数据类型呢?数据类型是指数据列、存储过程参数,表达式和局部变量的数据特征,它决定了数据的存储格式,代表了不同的信息类型。
Mysql数据类型之整型:
从图上可以看到,无符号值基本上是有符号值的2倍。这5种格式都可以存储我们常用的数字,那么我们要选择的时候要选择合适的类型,比如说年龄,实际0-100多一点,所以没有必要存储int。但是如工资我们就需要用浮点型来表示了。
MySQL数据类型之浮点型:
1. FLOAT[(M, D)]
(1) M是数字总位数, D是小数点后面的位数
(2) 单精度浮点数精确到大约7位小数
2. DOUBLE[(M, D)]是双精度浮点数, 一般是FLOAT存储范围的10倍
Mysql数据类型之日期时间型:
1、YEAR:1970至2069
2、TIME:-838:59:59至838:59:59
3、DATE:1000-1-1至9999-12-31
4、DATETIME: 1000-1-1 00:00:00至9999-12-31 23:59:59
5、TIMESTAMP存储范围:1970-1-1 00:00:00到2037-12-31 23:59:59
此类型在实际开发中不常用,日期时间类型用的比较少,主要用数据类型进行代替。
Mysql数据类型字符型:
CHAR(M):(定长类型)固定字节长度,M个长度,比如说M=5,输入ABC,此时后面会自动添加空格补齐
VARCHAR(M):(变长类型)字节随变量改变,最大字节长度为M
ENUM:枚举类型(众多值中选一个)
SET:集合类型(在集合值中做排列组合),所使用的字符串必须来自集合中
数据表 或称表是数据库最重要的组成成员之一,是其他对象的基础。我们以前讲过,关系型的数据库,其实就是一张二维的表格,这张二维的表格更严谨的指的就是我们的数据表,既然是二维表格就有行和列之分。行称之为记录,列称之为字段。
要创建数据表首先我们要使用数据库。打开数据库 USE 数据库名称;
如何确认我们正在使用这个数据库呢?SELECT DATABASE
创建数据表语法格式:CREATE TABLE[IF NOT EXISTS] table_name(Columun_name(列名称) data_type(数据类型),(逗号是两个字段的分隔符,最后一个字段不用加逗号));
例如:
CREATE TABLE t2(
username VARCHAR(20),
age TINTINT UNSIGNED,(后面这个代表无符号)
salary FLOAT(8,2) UNSIGNED
);
查看创建的数据表是否存在 SHOW TABLES[FROM db_name] 后面的from也可以用来查看其他数据库中的数据表
查看数据表结构 SHOW COLUMNS FROM db_name(导出的是列,也就是字段的信息)
Mysql数据表中记录的插入 INSERT [INTO] tbl_name [(col_name,…)列的名称] VALUES值(val,…) 如果省略列的名称,那么结果就都要插入,除了设置自动编号的列
记录的查找 SELECT expr,… FROM tbl_name
SELECT * FROM t2; 可以返回当前表中的所有结果,但实际上它并不是全部记录的过滤,而是对字段的过滤
Mysql中的空值与非空值
有时候我们会规定某些值不能为空,那么该如何给相应的字段增添属性呢?
空值 NULL 可以为空
非空 NOT NULL 字段值禁止为空
username Varchar(20) not null 设置不为空
age TINYINT UNSIGNED NULL 设置可以为空,不写默认也是可以为空的
除此之外,我们经常会发现,在记录当中,我们需要保证在众多记录中某条记录的唯一性,所谓的唯一指的是在众多记录中,这条记录不能出现重复的如果说不想出现重复的,我们可以说为某一个字段添加AUTO_INCREMENT属性。
AUTO_INCREMENT 自动编号,且必须与主键组合使用
默认情况下,起始值为1,每次的增量为1
主键约束,主键叫做primary key,一张数据表当中只能存在着1个主键,它可以保证记录的唯一性,而且主键自动的为not null。实际编写时单独写key或者 PRIMARY KEY 都可以 AUTO_INCREMENT要和主键一起使用,但主键不一定要和AUTO_INCREMENT一起使用。
CREATE TABLE t3(
id SMALLINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,(单独写一个key也可以)
username VARCHAR(20) NOT NULL
);
赋值时自动编号不需要赋值,直接给username赋值就可以了
唯一约束:我们的AUTO_INCREMENT要和主键一起使用,但主键不一定要和AUTO_INCREMENT一起使用。这句话意思是我们有时候会只设置一个主键,而不设置自动编号这也是允许的。我们发现, 主键一张表只能有一个,而主键往往又与AUTO_INCREMENT一起使用了, 那么如果我还想保证唯一性该怎么办呢?我们还有另外的一种约束,就是我们的唯一约束,我们称之为UNIQUE KEY,UNIQUE KEY 也能保证记录的唯一性。
唯一约束的字段可以为空值 null,但只能有一个空值,每张数据表可以存在多个唯一约束
DEFAULT 默认约束,也就是我们的默认值。当插入记录时,如果没有明确为字段赋值,则自动赋予默认值
Sex enum(‘1’‘2’‘3’) default ‘3’;默认值就设置为3
本节复习:
CMD界面连接数据库 mysql -u用户名 -p密码 -P3306 -hHOST
显示数据库 SHOW DATABASES;
显示表结构 SHOW COLUMNS FROM table;
显示所有表 SHOW TABLES;
进入数据库 USE 数据库;
创建数据库 CREATE DATABASE 库名;
删除库drop 库名;
创建表 CREATE TABLE 表名(字段及信息);
插入数据 INSERT INTO table []VALUES();[]为空说明插入全部的值
查询表数据 SELECT * FROM table WHERE 条件
记录删除delete from 表名 where 条件;
自增自动编号 auto_increment
主键约束 primary key(有auto_increment的一定是主键,主键不一定有auto_increment)
唯一约束 unique key
默认约束 default 当没有赋值时则自动添加默认值