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

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)去实现

导出数据库(控制面板):mysqldump -uroot qlogin>C:\\qlogin.sql -p

posted @ 2022-11-07 22:43  回忆也交给时间  阅读(115)  评论(0编辑  收藏  举报