SQLyog基本操作(二)-创建数据库表、数据表类型介绍

时间:2024-03-04 14:22:16

2.4 创建数据库表(重点)

 -- 目标:使用SQLyog创建一个school数据库表
 -- 在school数据库中创建学生表student(列、字段)
 -- 属性:
 -- 学号 id int(4)
 -- 姓名 name varchar(20)
 -- 登录密码 pwd varchar(30)
 -- 性别 sex varchar(2)
 -- 出生日期 birthday datetime
 -- 家庭住址 address varchar(100)
 -- 邮箱 email varchar(50)
 -- 主键 PRIMARY KEY,一般一个表只有一个唯一的主键
 -- 注意:使用英文(),表的名称和字段尽量使用``括起来,避免与关键字重复
 --     字符串使用英文\'\'括起来,所有的语句后面加上英文","表示结束
 --     最后一个语句没有",",字符集是utf8而不是utf-8
 
 -- 实现代码如下:
 CREATE DATABASE IF NOT EXISTS school
 USE school
 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 \'家庭住址\',
   `email` VARCHAR(50) DEFAULT NULL COMMENT \'邮箱\',
   PRIMARY KEY(`id`)
 ) ENGINE=INNODB DEFAULT CHARSET=utf8

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

附:MySQL中数据类型的长度问题总结YAruli的博客-CSDN博客mysql中数据类型的长度问题总结

https://blog.csdn.net/YAruli/article/details/79187814

常用命令

 SHOW CREATE DATABASE school -- 查看创建school数据库的语句

 SHOW CREATE TABLE student -- 查看创建student数据表的语句

右键可复制该语句内容:

可粘贴出的全部代码:

 DESC student -- 显示表的结构

 

2.5 数据表的类型

关于数据库引擎

  • INNODB 现在默认使用的

  • MYISAM 早些年使用的(5.0之前的版本)

 MYISAMINNODB
事务支持 不支持 支持
数据行锁定 不支持 支持
外键约束 不支持 支持
全文索引 支持 不支持
表空间的大小 较小 较大,约为前者的两倍

数据行锁定是一行锁定,而不是表锁;

外键约束,在数据库级别关联另一张表

常规使用规则:

  • MYISAM 节约空间,速度较快

  • INNODB 安全性高,事物的处理,多表多用户操作

在物理空间存在的位置

        所有的数据库文件都存在data目录下,一个文件夹就对应一个数据库,本质还是文件的存储!

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

  • INNODB在数据库表中只有一个*.frm文件,以及上级目录的ibdata1文件

  • MYSIAM对应文件

    • *.frm 表结构的定义文件

    • *.MYD 数据文件(data)

    • *.MYI 索引文件(index)

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

   CHARSET=utf8 
   -- 不设置的话,会是mysql默认的字符集编码(不支持中文)
   -- MySQL的默认编码时Latin1,不支持中文
   -- 在my.ini中配置默认的编码,不建议,最好在每个表中单独设置字符集编码utf8
   charset-set-server=utf8

附: mysql默认字符编码设置教程:my.ini设置字符编码坚持是一种修行的博客-CSDN博客my.ini修改字符编码

https://blog.csdn.net/qq_30509055/article/details/82023572