1. 内容回顾
- MySQL默认端口号3306
- MySQL超级用户root
- 创建数据库
CREATE DATABASE
- 修改数据库
ALTER DATABASE
- 删除数据库
DROP DATABASE
数据类型:数据类型是指列存储过程参数,表达式和局部变量的数据特征,它决定了数据的存储格式,代表了不同的信息类型。
2. MySQL数据类型之整型
数据类型 | 存储范围 |
---|---|
TINYINT | 有符号值: -128到127(-~-1) 无符号值:0到255(0到) |
SMALLINT | 有符号值: -32768到32767 (-~) 无符号值:0到65535(0到) |
MEDIUMINT | 有符号值: -8388608到8388607(-到) 无符号值:0到16777215(0到) |
INT | 有符号值:-2147483648到2147483647(-到) 有符号值:0到4294967295(0到) |
BIGINT | 有符号值:-9223372036854775808到9223372036854775807(-到) 无符号值:0到184467440773709551615(0到) |
3. MySQL数据类型之浮点型
数据类型 | 存储范围 |
---|---|
FLOAT[(M, D)] | -3.402823466E+38到-1.175494351E-38、0和1.175494351E-38到3.402823466E+38。M是数字总位数,D是小数点后面的位数。如果M和D被省略,根据硬件允许的限制来保存值。单精度浮点数精确到大约7位小数位。 |
DOUBLE[(M, D)] | -1.7976931348623157E+308到-2.2250738585072014E-308、0和2.2250738585072014E-308到1.7976931348623157E+308 |
4. MySQL数据类型之日期时间型
列类型 | 存储需求 |
---|---|
YEAR | 1 |
TIME | 3 |
DATE | 3 |
DATATIME | 8 |
DATASTAMP | 4 |
5. MySQL数据类型之字符型
列类型 | 存储要求 |
---|---|
CHAR | M个字节,0<=M<=255 |
VARCHAR(M) | L+1个字节,其中L<=M且0<=M<=65535 |
TINYTEXT | L+1个字节,其中L< |
TEXT | L+2个字节,其中L< |
MEDIUMTEXT | L+3个字节,其中L< |
LONGTEXT | L+4个字节,其中L< |
ENUM('value1', 'value2'...) | 1或2个字节,取决于枚举值的个数(最多65535个值) |
SET('value1', 'value2'...) | 1,2,3,4或者8个字节,取决于set成员的数目(最多64个成员) |
6. MySQL创建数据表
数据表(或称表)是数据库最重要的组成部分之一,是其他对象的基础。
USE + 数据库名称
打开数据库(必须是已经存在的数据库)
行 ->记录 ; 列 ->字段
SELECT DATABASE();
显示当前所在的数据库
在test数据库中创建数据表
创建数据表
CREATE TABLE [ IF NOT EXISTS ] tb_name ( column_name, data_type, ...)
列名称,数据类型
7. MySQL查看数据表
SHOW TABLES
查看数据表列表 SHOW TABLES [ FROM db_name ] [ like ' pattern ' | WHERE expr ]
不仅可以查看当前数据库下的数据表,还可以直接查看其他数据库的数据表列表
EX: SHOW TABLES FROM mysql
查询过程中当前数据库不会改变,仍然为test
8. MySQL查看数据表结构
SHOW COLUMNS
查看数据表结构
SHOW COLUMNS FROM tb_name;
9. MySQL记录的插入与查找
INSERT
插入记录
INSERT [ INFO ] tb1_name [(col_name,...)] VALUES (val,...)
也就是插入表的名字,参数名,以及对应的值
Ex: INSERT tb1 VALUES ('Tom', 25, 7863.25)
OK
INSERT tb1 VALUES ('Tom', 25)
ERROR (缺少一个参数)
也可以只为某些字段赋值,则未赋值的字段为NULL
INSERT tb1 (username salary) VALUES ('John', 4500.69)
SELECT
记录查找
SELECT expr,... FROM tb1_name
SELECT * FROM tb1;
*为字段的过滤
10. MySQL的空值与非空
增加与创建数据库时将字段设计的更加完善
- NULL 字段值可以为空
- NOT NULL 字段值禁止为空
插入元素
INSERT tb2 VALUES ('Tom', NULL)
SELECT * FROM tb2
尝试使username字段为空
11. MySQL的自动编号
不能存在重复的时候较有用
AUTO_INCREMENT
属性
- 自动编号,且必须与主键组合使用
- 默认情况下,起始值为1,每次的增量为1.
字段需要为数值型,即为整型或浮点型。
浮点型的小数部分为0。
12. MySQL初涉主键约束
- 主键约束
- 每张数据表只能存在一个主键
- 主键保证记录的唯一性
- 主键自动为NOT NULL
AUTO_INCREMENT
字段必须定义为主键,与 PRIMARY KEY
一起使用
主键不一定与AUTO_INCREMENT
一起使用
可以显然看出id字段自动赋值且自增
如果只有主键,无AUTO_INCREMENT字段
主键允许赋值,但是不能赋两个相同的值。
13. MySQL初涉唯一约束
主键,一张数据表只能有一个。
UNIQUE KEY
--一张数据表中可以存在多个,但是此字段的值不能重复。
- 唯一约束
- 唯一约束可以保安记录的唯一性
- 唯一约束的字段可以为空值
NULL
- 每张数据表可以存在多个唯一约束
14. MySQL初涉默认约束
DEFAULT
- 默认值
-
当插入记录时,如果没有明确为字段赋值时,则自动赋予默认值。