首页 > 数据库 >MySql -基础学习2- 创建数据库表

MySql -基础学习2- 创建数据库表

时间:2022-11-07 22:58:38浏览次数:58  
标签:COMMENT VARCHAR DEFAULT 创建 数据库 -- MySql TABLE NULL

CREATE TABLE IF NOT EXISTS `stdent`(
`id` INT(4) NOT NULL AUTO_INCREMENT COMMENT '学员id',
`name` VARCHAR(30) NOT NULL DEFAULT '匿名' COMMENT '姓名',
`paw` VARCHAR(20) NOT NULL DEFAULT '123456' COMMENT '密码',
`sex` VARCHAR(2) NOT NULL DEFAULT '女' COMMENT '性别',
`birthday` DATETIME DEFAULT NULL COMMENT '出生日期',
`addreess` VARCHAR(100) DEFAULT NULL COMMENT '地址',
PRIMARY KEY(`id`)
)ENGINE=INNODB DEFAULT CHARSET=utf8

一.注意点:

  • 创建好一个数据库表以后,里面的字段都需要用英文的()括起来
  • 表的名称和字段尽量都用  `  `  括起来,此符号在左边tab键的上方不是英文半角
  • auto_increment   自增
  • 数据字段的所有字符串都用英文半角  '   '  括起来
  • 所有语句的后面都需要加上  ,  (英文的)  ,最后一个可以不用加
  • primary  key  主键,一般一个表只有一个主键

格式:

create  table 【if not exists 】 表名(

`字段名`   字段类型(列类型)  【属性】  【索引】  【注释】

.....

)【表的类型】 【字符集设置】  

ENGINE=INNODB      DEFAULT CHARSET=utf8

常用命令:

show  create  database school        --查看创建数据库的语句

show   create  table    student         --查看student数据表的定义语句

desc  student                                  --显示表的结构

二.关于数据库的引擎

InnoDB  默认使用

MyISAM    早期使用的

  MYISAM INNODB
事务支持 不支持 支持
数据行锁定  不支持 支持
外键约束 不支持 支持
全文索引 支持 不支持
表空间大小 较小

较大,

约为MYISAM2倍

 

  • MYSIAM:节约空间,速度快
  • INNODB:安全性高(关键),事务的处理,多表用户操作

三.在物理空间存在的位置

所有的数据库文件都在data目录下;

数据库本质的保存都是以文件存储的,只是这个文件有特定的格式

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

四.设置数据库的字符集编码

chaeset=utf8

不设置的话,会是mysql的默认字符集编码~(不支持中文)

MySQL的默认编码是Latin1,不支持中文

改变方式:

1.创建表的时候就可以在 最后自己改变编码为:chaeset=utf8(推荐使用)

2.在my.ini(MySQL的核心配置文件)中配置默认编码

五.修改和删除数据表(表操作)

1.修改表:

-- 修改表名
ALTER TABLE  student RENAME AS student1
--  添加表的字段
ALTER  TABLE student1 ADD age1 INT(4)
-- 修改表的字段 -> 修改约束
ALTER TABLE student1 MODIFY age1 VARCHAR(12)
-- 修改字段名
ALTER TABLE student1 CHANGE age1 age  INT(4)
-- 删除表的字段
ALTER TABLE student1 DROP age

公式:

  • alter  table  旧表名  rename  as  新表名
  • alter  table  表名      add   字段名  列属性[  ]
  • alter  table   表名     moddify   字段名   被修改的约束
  • alter  table   表名     change     旧表名    新表名  列属性[  ]
  • alter table    表名     drop         待删除字段

2.删除表:

-- 删除表
DROP TABLE IF EXISTS student1

公式:

drop  table  if  exists    待删除表名

所有创建和删除操作都尽量加上判断(if  exists),以免报错

六.外键(物理外键)

 

CREATE TABLE IF NOT EXISTS `grade`(
`gradeid` INT(10) NOT NULL COMMENT '年纪id',
`gradename` VARCHAR(50) NOT NULL COMMENT '年纪',
PRIMARY KEY(`gradeid`)
)ENGINE=INNODB DEFAULT CHARSET=utf8
CREATE TABLE IF NOT EXISTS `stdent`(
`id` INT(4) NOT NULL AUTO_INCREMENT COMMENT '学员id',
`name` VARCHAR(30) NOT NULL DEFAULT '匿名' COMMENT '姓名',
`paw` VARCHAR(20) NOT NULL DEFAULT '123456' COMMENT '密码',
`sex` VARCHAR(2) NOT NULL DEFAULT '女' COMMENT '性别',
`birthday` DATETIME DEFAULT NULL COMMENT '出生日期',
`addreess` VARCHAR(100) DEFAULT NULL COMMENT '地址',
`gradeid` INT(10) NOT NULL COMMENT '学生年纪',
PRIMARY KEY(`id`)

)ENGINE=INNODB DEFAULT CHARSET=utf8

 

ALTER TABLE `stdent`
ADD CONSTRAINT `FK_gradeid` FOREIGN KEY(`grade`) REFERENCES `grade`(`gradeid`);

以上的操作都是物理外键,是数据库级别的,不建议使用

想要删除一张表由于外键的原因,会导致删除不了,发生混乱

理想的数据库表,只用来存数据,只有行和列

如果想要实现数据表的连接,我们后期会使用程序(java)去实现

标签:COMMENT,VARCHAR,DEFAULT,创建,数据库,--,MySql,TABLE,NULL
From: https://www.cnblogs.com/5ran2yl/p/16867804.html

相关文章

  • Linux-安装MySQL
    一、卸载系统自带的mariadb1、查看系统自带的mariadbrpm-qa|grepmariadb   2、卸载rpm-e--nodeps mariadb-libs-5.5.68-1.el7.x86_64二、mysql安装1、从官网下载M......
  • 创建两个分线程
    publicclassThreadTest{publicclassvoidmain(String[]args){3.//创建Thread类的子类的对象MyThreadm1=newMyThread1();MyT......
  • Mysql-DML操作数据
    写插入语句--给指定列添加数据INSERTINTOstu(id,username)values(1,"张三")Mysql中关于错误1366-Incorrectstringvalue:####'\xE5\xBC\xA0\xE4\xB8\x89'for......
  • 多线程的创建
    1.继承Thread2.重写Thread的run()方法-->将此线程执行的操作声明在run()中3.创建Thread类的子类的对象4.调用此对象调用start 例如:classMyThread extendsThr......
  • Wdf框架中WdfDriverGlobals对象的创建
      前面写过一篇<WDF基本对象和句柄定义>,反响一般,不过这不会成为阻挡我继续写下去的绊脚石~本篇我们继续来分析Wdf框架。   WdfDriverGlobals对象的身影活跃在wdf框......
  • 爱国者256G加密U优盘二次恢复之解密及财务账套sybase数据库修复
    ​这是今年以来难度最大的U盘数据恢复案例,U盘是爱国者256G的,联系我们之前已经被多家公司处理过,据说还刷过固件,但最终都恢复失败。爱国者这种128、256G的大容量U盘我们有很多......
  • 爱国者256G加密U优盘二次恢复之解密及财务账套sybase数据库修复
    这是今年以来难度最大的U盘数据恢复案例,U盘是爱国者256G的,联系我们之前已经被多家公司处理过,据说还刷过固件,但最终都恢复失败。爱国者这种128、256G的大容量U盘我们有很多......
  • MySQL聚合函数
    AVG()                   平均值COUNT()            计数MAX()                  最大值MIN()          ......
  • MySQL信息函数
    CONNECTION_ID()              连接ID,返回ID号,也是线程的IDDATEBASE()                          当前数据库LAST_INSERT_ID()......
  • MySQL比较运算符和函数
    本文重点是三个比较运算符1,[NOT[BETWEEN...AND...2 , [NOT]IN()3 , IS[NOT]NULL例1:BETWEEN...AND..如果数字A在设定范围之内,返回TRUE,否则返回FAUSEmysql>SE......