赞
踩
所有的数据库文件都是存在 data 目录下的,一个文件夹都对应一个数据库,本质还是文件的存储
区别
INNODB | MYISAM | |
---|---|---|
事务支持 | 支持 | 不支持 |
数据行锁定 | 支持 | 不支持,只能表锁定 |
外键约束 | 支持 | 不支持 |
全文索引 | 不支持 | 支持 |
表空间的大小 | 较大,约为 MYISAM 的 2 倍 | 较小 |
物理文件 | 只有表目录中的 .ibd 文件和上级目录下的 ibdata1 文件 | .sdi 文件(存储表结构),.MYD 文件(存储数据),.MYI 文件(存储索引) |
mysql -u root -p123456 -- 连接数据库
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456'; -- 修改用户密码
flush privileges; -- 刷新权限
exit; -- 退出连接
show databases; -- 查看全部数据库
use school -- 切换进入数据库
show tables; -- 查看数据库中所有的表
describe student; -- 查看表结构
create database teacher; -- 创建一个名为teacher的数据库
-- # -- 两种单行注释方法
/*
*/ -- 多行注释
CREATE DATABASE `库名`;
CREATE DATABASE school; -- 直接创建,存在会报错
CREATE DATABASE IF NOT EXISTS school; -- 先判断再创建
DROP DATABASE `库名`;
DROP DATABASE teacher; -- 直接删除,不存在会报错
DROP DATABASE IF EXISTS teacher; -- 先判断再删除
USE `库名`;
USE school; -- 打开数据库
如果库名,表名或字段名是一个特殊字符,就需要在名称前后加反引号(``),防止与 MySQL 数据库关键字重名
SHOW CREATE DATABASE `库名`;
SHOW DATABASES; -- 查看所有数据库
SHOW CREATE DATABASE school; -- 查看创建数据库的语句
数据类型 | 字节数 | |
---|---|---|
tinyint | 十分小的整数数据 | 1个字节 |
smallint | 较小的整数数据 | 2个字节 |
mediumint | 中等大小的整数数据 | 3个字节 |
int(常用)(对应 java 的 int) | 一般整数数据 | 4个字节 |
bigint(对应 java 的 long) | 较大的整数数据 | 8个字节 |
float(对应 java 的 float) | 单精度浮点数 | 4个字节 |
double(对应 java 的 double) | 双精度浮点数 | 8个字节 |
decimal | 字符串形式的浮点数 |
从MySQL 8.0.17开始,对于整数数据类型,不建议如 INT(M) 格式定义,而是建议使用如 INT 直接定义
金融计算的时候,一般使用 decimal 来避免出现精度问题
数据类型 | 长度 | |
---|---|---|
char | 固定大小字符串 | 0~255 字符 |
varchar(常用)(对应 java 的 String) | 可变字符串 | 0~65535 字符 |
tinytext | 微型文本 | 2^8-1 字节 |
text(保存大文本) | 文本串 | 2^16-1 字节 |
数据类型 | ||
---|---|---|
date | YYYY-MM-DD | 日期格式 |
time | HH:mm:ss | 时间格式 |
datetime(最常用) | YYYY-MM-DD HH:mm:ss | 时间日期格式 |
timestamp(较常用) | 时间戳,1970.1.1 00:00:00 到现在的毫秒数 | |
year | 年份格式 |
格式
CREATE TABLE IF NOT EXISTS `表名`(
`字段名` 字段类型 属性 索引 注释,
`字段名` 字段类型 属性 索引 注释,
`字段名` 字段类型 属性 索引 注释
)表类型 表字符集 注释
-- 字符串使用单引号括起来
-- 主键一般在最后设置,一个表中一般只有一个唯一主键
CREATE TABLE IF NOT EXISTS `student`( -- 创建一个新表
-- 表的属性设置
`id` INT NOT NULL AUTO_INCREMENT COMMENT '学号',
`name` VARCHAR(30) NOT NULL DEFAULT '匿名' COMMENT '名字',
`password` VARCHAR(16) NOT NULL DEFAULT '123456' COMMENT '密码',
`sex` VARCHAR(2) NOT NULL DEFAULT '男' COMMENT '性别',
`birthday` DATETIME DEFAULT '1970.1.1' COMMENT '出生日期',
`address` VARCHAR(100) DEFAULT NULL COMMENT '家庭住址',
`email` VARCHAR(20) DEFAULT NULL COMMENT '邮箱',
PRIMARY KEY (`id`) -- 设置主键
)ENGINE=INNODB DEFAULT CHARSET=utf8mb4 -- 设置表的类型和字符集
SHOW CREATE TABLE `表名`;
DESC `表名`;
SHOW CREATE TABLE student; -- 查看数据表的定义语句
DESC student; -- 查看表的结构
ALTER TABLE `表名` DROP `字段名`;
DROP TABLE `表名`; -- 直接删除,不存在会报错
DROP TABLE IF EXISTS `表名`; -- 先判断再删除
ALTER TABLE `teacher1` DROP `phone`; -- 删除字段
DROP TABLE `teacher`; -- 直接删除,不存在会报错
DROP TABLE IF EXISTS `teacher`; -- 先判断再删除
ALTER TABLE `旧表名` RENAME AS `新表名`;
ALTER TABLE `表名` ADD `字段名` 字段类型 属性 索引 注释;
ALTER TABLE `表名` MODIFY `字段名` 字段类型 属性 索引 注释;
ALTER TABLE `表名` CHANGE `旧字段名` `新字段名` 字段类型 属性 索引 注释;
ALTER TABLE `teacher` RENAME AS `teacher1`; -- 修改表名
ALTER TABLE `teacher1` ADD `age` INT NOT NULL COMMENT '年龄'; -- 增加字段
ALTER TABLE `teacher1` MODIFY `phone` VARCHAR(11); -- 修改字段,不能重命名,只能修改约束
ALTER TABLE `teacher1` CHANGE `phone` `phone1` INT; -- 修改字段,可以重命名,可以修改约束
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。