数据库的创建与删除
Unsingned:
-
无符号的整数
-
不能声明为负数
zerofill
-
0填充的
-
不足的位数,使用0来填充
自增:
-
通常理解为自增,自动在上一条记录的基础上 + 1(默认)。
-
通常用来设计唯一的主键 - index,必须是整数类型。
-
可以自定义设计主键自增的起始值和步长。
非空 NULL / not / null
-
假设设置为not null,如果不给它赋值,就会报错。
-
NULL,如果不填写值,默认就是null;
默认:
-
设置默认的值!
-
sex,默认值为男,如果不指定该列的值,则会有默认的值!
扩展:
/**
每一个表,都必须存在以下五个字段
id 主键
version 乐观锁
is_delete 伪删除
gmt_create 创建时间
gmt_update 修改时间
/
2.创建数据库表
--目标:创建一个school数据库
-- 创建学生表(列,字段) 使用SQL 创建
-- 学号int 登录密码 varchar(20)姓名,性别varchar(2),出生日期(datatime),家庭住址,email
-- 注意点,使用英文(),表的名称和字段尽量使用``括起来-- AUTO_INCREMENT自增
--字符串使用单引号括起来!
--所有的语句后面加,(英文的),最后一个不用加-- PR工MARY 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 '家庭住址',
·emial· VARCHAR(50) DEFAULT NULL COMMENT '邮箱',
PRIMARY KEY(`id`)
)ENGINE = INNODB DEFAULT = utf8mb4
格式
CREATE TABLE IF NOT EXISTS `表名`(
`字段名` 列类型 [属性] [索引] [注释],
`字段名` 列类型 [属性] [索引] [注释],
......
`字段名` 列类型 [属性] [索引] [注释]
)[表类型][字符集设置][注释]
常用命令
SHOW CREATE DATABASE school -- 查看创建数据库语句
SHOW CREATE TABLE student -- 查看student 数据表的语句
DESC student -- 显示表的结构
3.数据表的类型
/*
INNODB 默认使用~
MYISAM 早些年使用的
*/
MYISAM | INNODB | |
---|---|---|
事物支持 | 不支持 | 支持 |
数据行锁定 | 不支持 | 支持 |
外键约束 | 不支持 | 支持 |
全文索引 | 支持 | 不支持 |
表空间的大小 | 较小 | 较大,约为2倍 |
常规使用操作:
-
MYISAM:节约空间,速度较快。
-
INNODB:安全性高,事物的处理,夺标多用户操作。
在物理空间的位置:
所有数据库文件都存在data目录下。
本质还是文件的存储。
MYSQL 引擎在物理文件上的区别。
-
InnoDB 在数据库表中只有一个*.frm文件,以及上级目录下的iddata1文件。
-
MYISAM对应文件
-
*.frm -表结构定义文件。
-
*.MYD 数据文件(data)
-
*.MYI 索引文件(index)
-
-
设计数据库表的字符集编码:CHARSET=utf8(不设置的话,会是,mysql)的默认级编码,不支持中文!在my.ini中配置默认的编码character-set-server = utf8
4.修改删除表
-—修改表名:ALTER TABLE旧表名RENAME AS新表名
ALTER TABLE teacher RENAME AS teacher1
--增加表的字段:ALTER TABLE表名ADD字段名列属性
ALTER TABLE teacheri ADD age INT(11)
--修改表的字段(重命名,修改约束!)
-- ALTERTABLE表名MODIFY字段名列属性[]
ALTER TABLE teacher1 MODIFY age vARCHAR(11) --修改约束
-- ALTERTABLE表名CHANGE旧名字新名字列属性[]
ALTER TABLE teacher1 CHANGE age age1 INT(1) --字段重名名
-—剧除表的字段:ALTERTABLE表名DROP字段名
ALTER TABLE teacher1 DROP age1
5.删除
--删除表(如果表存在再剧除)
DROP TABLE IF EXISTS teacher1
6.注意点
-
`` 字段名,使用这个包裹!
-
注释 —— /**/
-
sql关键字大小写不敏感
-
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗