MySQL 快速建表

该博客主要介绍数据库操作,包括创建库、选择库,创建父表和子表,修改表结构,插入测试数据,还提及了可能遇到的问题,涵盖数据库从搭建到数据填充的基本流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.创建库

CREATE DATABASE `dbname` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
collate utf8_general_ci 校验规则:
	ci:大小写不敏感
	cs:大小写敏感

2.选择库

USE `dbname`;

3.创建表

性别(类型单一的字段)建议使用0/1存储
	效率上,int类型比varchar要好
3.1创建父表
drop table if exists `class`
CREATE TABLE `class`(
`id` INT(1) PRIMARY KEY comment '班级编号'
) ENGINE =INNODB DEFAULT CHARSET=utf8 COMMENT '班级表';
ENGINE
	INNODB
		支持回滚、提交等事务
		修改的性能较好
	MYIASM
		读取速度快
		占用内存小
		不支持事务管理
		不容错,需要定期备份硬盘
3.2创建子表
CREATE TABLE `student` (
`id`      INT(11)     	UNSIGNED PRIMARY KEY AUTO_INCREMENT  		COMMENT '学生编号(学号)'   	,
`name`    VARCHAR(64) 	UNIQUE                               		COMMENT '学生姓名'         	,
`sex`     INT(1)        NOT NULL DEFAULT 0        			        COMMENT '性别'             	, 
`birth`   TIMESTAMP  	NOT NULL DEFAULT CURRENT_TIMESTAMP() 		COMMENT '出生日期'		    ,
`cid`	  INT(1)      							                    COMMENT '学生所在的班级编号' 	,	        

## "constraint 外键名" 省略不写的话,将自动生成外键名
CONSTRAINT `fk_student_cid` FOREIGN KEY (`cid`) REFERENCES `class`(`id`) ON DELETE CASCADE ON UPDATE CASCADE

) ENGINE=INNODB DEFAULT CHARSET=utf8 COMMENT '学生表';

4.修改表结构

ALTER TABLE `student` CHANGE `sname` `name` VARCHAR(64);
ALTER TABLE `student` ADD `field` INT(2);
ALTER TABLE `student` DROP `field`;

## "constraint 外键名" 省略不写的话,将自动生成外键名
ALTER TABLE `student` ADD CONSTRAINT `fk_student_cid` FOREIGN KEY (`cid`) REFERENCES `class`(`id`);

5.插入测试数据

INSERT INTO `student` values(default ,'name' ,1 ,default ,2);

SELECT * FROM `student` where...;	##查询 表数据
DESC `student`;						##显示 表结构
SHOW CREATE TABLE `student`;		##显示 建表语句
SHOW TABLES;						##显示 所有表的名字

UPDATE `student` set `field` =where ...;
DELETE FROM `student` where...;

6.可能遇到的问题

命名与关键字冲突
	使用键盘中Tab键上面的反单引号`
	
使用MySQL官方提供的MySQL Command Line(命令行工具)时候
	sql语句后使用;号

自增列(auto_increment)中,若被删除一行数据之后,后面添加的数据的自增列值将不再连续
	这个问题手写函数可破

仅有字段类型为timestamp才可以接受时间函数作为默认键值

mysql不支持check()语句,但不报错
	将逻辑判断放在java业务中或者手写函数可破

mysql字段的zerofill属性
	缺位补0

mysql & oracle
	mysql 大小写敏感			关键字(REFERENCES  、 CONSTRAINT )
	oracle 不敏感			关键字(REFERENCE   、 CONSTRAINTS)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

肯尼思布赖恩埃德蒙

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值