2.1操作数据库(了解)
1.创建数据库 【】内为可选的语句
CREATE DATABASE [IF NOT EXISTS] westos;
2.删除数据库
DROP DATABASE [IF EXISTS] hello;
3.使用数据库
USE school; -- 在tab键的上面,如果表明或字段名是特殊字符,就需要带` SELECT `user` FROM student;
4.查看数据库
SHOW DATABASES; -- 查看所有数据库
2.2数据库的列类型
字符串 varchar 可变字符串 2个字节(65535)
tinytext 微型文本 2个字节(255)
text 文本串 2个字节(65535)
时间 date 日期格式 YYYY-MM-DD
time 时间格式 HH: mm: ss
datetime 最常用的时间格式 YYYY-MM-DD HH: mm: ss
timestamp 时间戳 1970年到现在的毫秒数!(也较为常用)
year 年份表示
不要使用NULL进行运算!
2.3数据库的字段属性(重点)
1.unsigned:
不能声名为负数
2.zerofill:
不足的位数填充0
3.自增:
自动在上一条记录的基础上+1(默认)
通常用来设计唯一的主键~index,必须是整数类型
可以自定义设计主键的起始值和步长
4.非空 NULL not NULL
假设设置为not null, 如果不给他赋值就会报错
NULL不填写值,默认就是null!
5.默认
设置默认的值!
2.4创建数据库表
INT(3) 显示宽度为3 插入数字20,则显示为020
-- auto_increment自增 -- 字符串使用单引号括起来 -- 所有的语句后面加 , (英文的) 最后一个不用加 -- PRIMARY KEY 主键,建议设置在最后面 CREATE TABLE IF NOT EXISTS `student`( `id` INT(4) NOT NULL AUTO_INCREMENT COMMENT '学号', `name` VARCHAR(30) NOT NULL DEFAULT '匿名' COMMENT '姓名', `pwd` VARCHAR(20) NOT NULL DEFAULT '123456' COMMENT '密码', `sex` VARCHAR(2) NOT NULL DEFAULT '女' COMMENT '性别', `birthday` DATETIME DEFAULT NULL COMMENT '出生日期', `address` VARCHAR(100) DEFAULT NULL COMMENT '家庭住址', `email` VARCHAR(50) DEFAULT NULL COMMENT '邮箱', PRIMARY KEY (`id`) )ENGINE=INNODB DEFAULT CHARSET=utf8; SHOW CREATE DATABASE school -- 查看创建数据库的语句 SHOW CREATE TABLE student -- 查看student数据表的定义语句 DESC student -- 显示表的结构
2.5数据表的类型
-- 关于数据库引擎 /* INNODB 默认使用 MYISAM 早些年使用的 */
MYISAM | INNODB | |
---|---|---|
事务支持 | 不支持 | 支持 |
数据行锁定 | 不支持 | 支持 |
外键约束 | 不支持 | 支持 |
全文索引 | 支持 | 不支持 |
表空间的大小 | 较小 | 较大(约为前者的两倍) |
常规使用操作
1.MYISAM 节约空间,速度较快
2.INNODB 安全性高,事务的处理,多表多用户共同操作
8.0中修改了很多(只剩ibd),仅供了解5.0的特性
在物理空间存在的位置
所有的数据库文件都存在data文件下,一个文件夹对应一个数据库 本质还是文件的存储
(8.0在ProgramData隐藏文件下)
MySQL 引擎在物理文件上的区别
1.INNODB 在数据库表中只有一个*.frm 文件(8.0没有firm,数据都在系统表空间)
以及上级目录下的ibdata1文件(D;\ProgramData\MySQL\MySQL Server 8.0\Data)
2.MYISAM对应文件
1.*.frm 表结构定义文件
2.*.MYD 数据文件(data)
3.*.MYI 索引文件
MySQL默认编码不支持中文,需要修改
my.ini中已经配置过,加上 CHARSET=utf8 保证安全性