• 创建数据库


    创建数据库表:

    • 目标:创建一个school数据库
    • 创建学生表(列,字段) 使用SQL创建
    • 学号int 登录密码varchar(20)姓名,性别varchar(2),出生日期(datatime),家庭住址,email
    • 注意点,使用英文(),表的名称和字段尽量使用``括起来
    • AUTO_INCREMENT 自增
    • 字符串使用 单引号括起来!
    • 所有的语句后面加,(英文的),最后一个不用加
    • PRIMARY KEY主键,一般一个表只有一个唯一的主键!
    1. CREATE TABLE IF NOT EXISTS `student1`(
    2. `id` INT(4) NOT NULL AUTO_INCREMENT COMMENT '学号',
    3. `name` VARCHAR(30) NOT NULL DEFAULT '匿名' COMMENT '姓名',
    4. `pwd` VARCHAR(20) NOT NULL DEFAULT '123456' COMMENT '密码',
    5. `sex` VARCHAR(2) NOT NULL DEFAULT '女' COMMENT '性别',
    6. `birthday` DATETIME DEFAULT NULL COMMENT '出生日期',
    7. `address` VARCHAR(100) DEFAULT NULL COMMENT '家庭住址',
    8. `email` VARCHAR(50) DEFAULT NULL COMMENT '邮箱',
    9. PRIMARY KEY(`id`)
    10. )ENGINE=INNODB DEFAULT CHARSET=utf8

    格式:

    CREATE TABLE [IF NOT EXISTS] `表名`(

            '字段名' 列类型 [属性] [索引] [注释],

            '字段名' 列类型 [属性] [索引] [注释],

            ........

            '字段名' 列类型 [属性] [索引] [注释]

    )[表类型] [字符集设置] [注释]


    mylsam和innodb区别

    数据表的类型

    -- 关于数据库引擎

    /*

    INNODB 默认使用~

    MYISAM 早些年使用的

    */

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

    常规使用操作:

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

    在物理空间存在的位置 

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

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

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

     

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

    CHARSET=utf8
    • 不设置的话,会是mysql默认的字符集编码~(不支持中文!)
    • MySQL的默认编码是Latin1不支持中文
    • 在my.ini中配置默认的编码
    character-set-server=utf8
    1. -- 目标:创建一个school数据库
    2. -- 创建学生表(列,字段) 使用SQL创建
    3. -- 学号int 登录密码varchar(20)姓名,性别varchar(2),出生日期(datatime),家庭住址,email
    4. -- 注意点,使用英文(),表的名称和字段尽量使用``括起来
    5. -- AUTO_INCREMENT 自增
    6. -- 字符串使用 单引号括起来!
    7. -- 所有的语句后面加,(英文的),最后一个不用加
    8. -- PRIMARY KEY主键,一般一个表只有一个唯一的主键!
    9. CREATE TABLE IF NOT EXISTS `student1`(
    10. `id` INT(4) NOT NULL AUTO_INCREMENT COMMENT '学号',
    11. `name` VARCHAR(30) NOT NULL DEFAULT '匿名' COMMENT '姓名',
    12. `pwd` VARCHAR(20) NOT NULL DEFAULT '123456' COMMENT '密码',
    13. `sex` VARCHAR(2) NOT NULL DEFAULT '女' COMMENT '性别',
    14. `birthday` DATETIME DEFAULT NULL COMMENT '出生日期',
    15. `address` VARCHAR(100) DEFAULT NULL COMMENT '家庭住址',
    16. `email` VARCHAR(50) DEFAULT NULL COMMENT '邮箱',
    17. PRIMARY KEY(`id`)
    18. )ENGINE=INNODB DEFAULT CHARSET=utf8

    输出结果:

     


     

    修改和删除数据表字段

    修改

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

    删除

    1. -- 删除表的字段:ALTER TABLE 表名 DROP 字段名
    2. ALTER TABLE teacher1 DROP age1
    3. -- 删除表(如果表存在再删除)
    4. DROP TABLE IF EXISTS teacher1

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

    注意点:

    • ` `字段名,使用这个包裹!
    • 注释 --或/**/
    • sql关键字大小写不敏感,建议大家写小写
    • 所有的符号全部用英文!
    • IF EXISTS(判断)

    最终结论:

    • change用来字段重命名,不能修改字段类型和约束;
    • modify不用来字段重命名,只能修改字段类型和约束

  • 相关阅读:
    Centos nginx配置文档
    低代码发展趋势解读|低代码成为企业数字化转型“加速器”
    [Volo.Abp升级笔记]使用旧版Api规则替换RESTful Api以兼容老程序
    chosen.jquery.js 插件的使用和总结
    Appuploader 常见错误及解决方法
    公钥密码学中的简单数学基础
    探索数据库管理的利器 - PHPMyAdmin
    一款跳转警告HTML单页模板源码
    跳台阶算法
    [附源码]计算机毕业设计JAVA实践教学管理系统
  • 原文地址:https://blog.csdn.net/qq_46423017/article/details/126108629