• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

dengovo

  • 博客园
  • 联系
  • 订阅
  • 管理

公告

View Post

创建数据库表、数据表的类型、修改和删除数据表字段

创建数据库表、数据表的类型

创建数据库表

-- 目标:创建一个school数据库
-- 创建学生表(列,字段)  使用SQL创建
-- 学号int,登陆密码varchar(20),姓名,性别varchar(2),出生日期(datatime),家庭地址,email

-- 注意点:使用英文的()  ,  表的名称 和 字段  尽量使用 ``括起来
-- 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(30) 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

格式

CREATE TABLE [IF NOT EXISTS] `表名`(
	`字段名` 列类型 [属性] [索引] [注释],
    `字段名` 列类型 [属性] [索引] [注释],
    ......
    `字段名` 列类型 [属性] [索引] [注释]
)[表类型][字符集设置][注释]

常用命令

SHOW CREATE DATABASE school; -- 查看创建数据库的语句
SHOW CREATE TABLE student; -- 查看student数据表的定义语句 
DESC student; -- 显示表的结构

数据表的类型——MYISAM和INNODB的区别

-- 关于数据库引擎
/*
INNODB 默认使用
MYISAM 早些年使用的
*/

常规使用操作

  • MYISAM 节约空间,速度较快
  • INNODB 安全性高,事务的处理,多表多用户操作

在物理空间存储的位置

所有的数据库文件都存在data目录下,一个文件夹就对应一个数据库

本质 文件的存储

MySQL引擎在物理文件上的区别

  • INNODB在数据库表只有一个*.frm文件,以及上级目录下的ibdata1文件
  • MYISAM对应文件
    • *.frm 表结构的定义文件
    • *.MYD 数据文件(data)
    • *.MYI 索引文件(index)

设置数据库表的字符编码

CHARSET=utf8

不设置,MySQL默认的字符编码:Latin1 ,不支持中文

在my.ini中配置默认的编码

character-set-server=utf8

修改和删除数据表字段

修改

-- 修改表
ALTER TABLE teacher RENAME AS teacher1;
-- 增加表的字段 ALTER TABLE 表名 ADD 字段名 列属性
ALTER TABLE teacher1 ADD age INT(11);
-- 修改表的字段 (重命名,修改约束!)
-- ALTER TABLE 表名 MODIFY 字段名 列属性[];
ALTER TABLE teacher1 MODIFY age VARCHAR(11); -- 修改约束
-- -- ALTER TABLE 表名 CHANGE 旧名字 新名字 列属性[];
ALTER TABLE teacher1 CHANGE age age1 INT(1);  -- 字段重命名 

-- 删除表的字段  ALTER TABLE 表名 DROP 字段名;
ALTER TABLE teacher1 DROP age1;

删除

-- 删除表(如果表存在再删除)
DROP TABLE IF EXISTS teacher1;

所有的创建和删除操作尽量加上判断,避免报错

posted on 2022-12-09 15:52  邓了个邓  阅读(146)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3