创建表,InnoDB和MyISAM,修改和删除表字段

103 阅读2分钟

注意项:使用英文(),表的名称和字段尽量用``括起来

案例

创建student表

-- 自增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 '123' 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 数据库名
  • 查看数据表的定义语句 show create table 表名
  • 显示表的结构 desc 表名

关于数据库引擎

  • InnoDB 默认使用,安全性高,事务的处理,多表多用户操作
    • 支持事务
    • 支持行锁定
    • 支持外键约束
    • 不支持全文索引
    • 表空间大小较大
  • MyISAM 早些年使用,节约空间,速度较快
    • 不支持事务
    • 不支持行锁定
    • 不支持外键约束
    • 支持全文索引
    • 表空间较大

本地物理空间位置

  • 所有数据库文件都存在于data目录下,本质还是文件的形式存储
  • MySQL引擎在物理文件上的区别: InnoDB在数据库表中只有一个*.frm文件,以及上级目录下的ibdata1文件;MyISAM对应文件:.frm表结构的定义文件,.MYD数据文件(data),*.MYI(index)

设置数据库表的字符集编码 charset=utf8

修改表

改表名 ALTER TABLE 旧表名 RENAME AS 新表名

-- 修改表
ALTER TABLE student RENAME AS student1

添加字段ALTER TABLE 表名 ADD 字段名 列属性

-- 增加字段
ALTER TABLE student ADD age INT(8)

修改表的字段

修改约束 ALTER TABLE 表名 MODIFY 字段名 约束

重命名 ALTER TABLE 表名 CHANGE 原字段名 新字段名 约束

-- 修改表的字段
-- 修改约束
ALTER TABLE student MODIFY age VARCHAR(10)
-- 重命名	
ALTER TABLE student CHANGE age age1 INT(2)

删除表的字段 alter table 表名 drop 要删除字段名

所有创建和删除操作尽量加上判断,以免报错 :if exists or if not exists

注意事项:

  • `` 字段名,使用该符号包裹!
  • 注释:推荐使用 -- 或 /**/
  • sql关键字大小写不敏感,推荐小写(辨识度高)