MySQL数据库 课件 2.1 数据库的创建与数据表的开发_第1页
MySQL数据库 课件 2.1 数据库的创建与数据表的开发_第2页
MySQL数据库 课件 2.1 数据库的创建与数据表的开发_第3页
MySQL数据库 课件 2.1 数据库的创建与数据表的开发_第4页
MySQL数据库 课件 2.1 数据库的创建与数据表的开发_第5页
已阅读5页,还剩55页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

主讲教师:姜云桥任务2.1数据库的创建与数据表的开发子项目2数据库基础开发任务背景学校要建立一个教学管理系统。根据需求分析,要求创建学生、课程、教师和系部等数据表来存储数据。接下来,要建立数据库,设计数据表的结构,并初始化相关表数据。任务目标1.能创建和管理数据库2.能创建和管理表知识目标1.掌握创建数据库方法2.掌握管理数据库的方法3.掌握创建数据表的方法4.掌握管理数据表的方法能力目标任务要求本任务将学习创建和管理数据库、创建和管理表。在任务实施过程中,要特别注意表的规范化,要注意数据类型的正确选择,还要注意数据库和数据表字符集的统一问题。任务必备知识想一想MySQL创建数据库的语句?任务必备知识2.1.1创建与管理数据库使用CREATEDATABASE或CREATESCHEMA命令可以创建数据库。其语法结构如下:create{database|schema}[ifnotexists]db_name[charactersetcharset_name][collatecollation_name]任务必备知识2.1.1创建与管理数据库CREATEDATABASE[IFNOTEXISTS]test1;CREATEDATABASEtest1;【任务2.1.1】创建数据库test1任务必备知识mysql>createdatabasetest2->charactersetgb2312->collategb2312_chinese_ci;2.1.1创建与管理数据库【任务2.1.2】创建数据库test2库,并指定字符集为gb2312任务必备知识(1)DEFAULTCHARACTERSET:指定数据库的默认字符集(Charset),charset_name为字符集名称。COLLATE:指定字符集的校对规则,collation_name为校对规则名称。(2)创建数据库时最好指定字符集。(3)IFNOTEXISTS:如果已存在某个数据库,再来创建一个同名的库,这时会出现错误信息。为避免错误信息,可以在建库前加上这一判断,只有该库目前尚不存在时才执行CREATEDATABASE操作。分析与讨论任务必备知识想一想MySQL中如何查看库?任务必备知识2.1.2查看库用SHOWDATABASES命令查看,输出结果如图所示。任务必备知识mysql>showdatabases;2.1.1创建与管理数据库【任务2.1.3】查看MySQL中存在的所有数据库任务必备知识mysql>showcreatedatabasetest2\G***************************1.row***************************Database:test2CreateDatabase:CREATEDATABASE`test2`/*!40100defaultCHARACTERsetgb2312*//*!80016defaultENCRYPTION='N'*/2.1.1创建与管理数据库【任务2.1.4】查看数据库test2的定义任务必备知识想一想如何选定并使用数据库?任务必备知识2.1.3选定并使用数据库创建完数据库并不表示选定并使用它,必须明确地用命令指定,可通过use命令完成。【任务2.1.5】将当前的数据库切换为test2mysql>Usetest2;任务必备知识想一想如何修改库字符集?任务必备知识2.1.4修改库数据库创建后,如果需要修改数据库的参数,可以使用ALTERDATABASE命令。语法格式如下:alterdatabasedb_namecharactersetcharset_namecollatecollation_name任务必备知识mysql>alterdatabasetest2->charactersetutf8mb4->collateutf8mb4_0900_ai_ci;【任务2.1.6】将test2库修改字符集为utf8mb4,校对规则为utf8mb4_0900_ai_ci2.1.4修改库任务必备知识想一想如何删除数据库?任务必备知识当数据库不再需要时,我们可以使用dropdatabase命令删除。语法格式如下:dropdatabase[ifexists]db_name2.1.5删除库任务必备知识mysql>dropdatabasetest1;删除数据库的时候,如果希望数据库存在则删除,不存在则忽略,需要添加ifexists:mysql>dropdatabaseifexiststest1;【任务2.1.7】删除test1库2.1.5删除库任务必备知识数据库创建之后,数据库是空的,是没有表的,可以用SHOWTABLES命令查看。表决定了数据库的结构,表是存放数据的地方,一个库需要什么表,各数据库表中有什么样的列,是要合理设计的。任务必备知识2.1.6创建数据表创建教师表teacher,结构如表所示【任务2.1.8】创建教师表teacher任务必备知识2.1.6创建数据表mysql>createtableifnotexiststeacher->(->t_no char(6)primarykeycomment'教师编号',->t_name varchar(20) comment'教师姓名',->d_no char(4) comment'院系编号'->);【任务2.1.8】创建教师表teacher任务必备知识(1)char和varchar都用来表示字符串类型,那这两者有何区别,应该如何选择?(2)主键primarykey如何设置?分析与讨论任务必备知识2.1.6创建数据表创建院系表department,结构如表所示【任务2.1.9】创建院系表department任务必备知识2.1.6创建数据表mysql>createtableifnotexistsdepartment->(->d_no char(4)primarykey comment'院系编号',->d_name varchar(20)notnulluniquecomment'院系名称'->);【任务2.1.9】创建院系表department任务必备知识2.1.6创建数据表创建课程表course,结构如表所示【任务2.1.10】创建课程表course任务必备知识2.1.6创建数据表mysql>createtableifnotexistscourse->(->c_no char(4) primarykey comment'课程号',->c_name varchar(20) notnull comment'课程名',->c_periodtinyintunsignednotnull comment'学时',->c_credittinyintunsigned notnull comment'学分',->c_typeenum('必修课','选修课')default'必修课'comment'课程类型'->);【任务2.1.10】创建课程表course任务必备知识2.1.6创建数据表创建表student,结构如表所示【任务2.1.11】创建表student任务必备知识2.1.6创建数据表mysql>createtableifnotexistsstudent->(->s_no char(6) primarykey comment'学号',->s_name varchar(20) notnull comment'姓名',->s_sex enum('男','女')notnulldefault'男' comment'性别',->s_birth date notnull comment'出生日期',->s_address varchar(50) notnull comment'家庭地址',->s_phone char(11) comment'联系电话',->s_photo blob comment'照片',->d_no char(4) comment'系部编号',->foreignkey(d_no)referencesdepartment(d_no)->);【任务2.1.11】创建表student任务必备知识2.1.6创建数据表创建成绩表score,结构如表所示【任务2.1.12】创建表score任务必备知识2.1.6创建数据表mysql>createtableifnotexistsscore->(->s_no char(4) notnull comment'学号',->c_no char(4) notnull comment'课程号',->mark decimal(4,1) comment'成绩',->->primarykey(s_no,c_no),->foreignkey(s_no)referencesstudent(s_no),->foreignkey(c_no)referencescourse(c_no)->);【任务2.1.12】创建表score任务必备知识2.1.6创建数据表创建成绩表teach,结构如表所示【任务2.1.13】创建授课表teach任务必备知识2.1.6创建数据表mysql>createtableifnotexiststeach->(->id intunsignedprimarykeyauto_incrementcomment'标识',->t_nochar(8) NOTnull comment'教师编号',->c_nochar(4) comment'课程编号'->);【任务2.1.13】创建授课表teach任务必备知识想一想如何查看表?表结构?任务必备知识2.1.7查看表mysql>showtables;输出结果如图所示。【任务2.1.14】查询已创建的表创建了数据表后,现在能用SHOWTABLES查询已创建的表的情况。任务必备知识2.1.7查看表mysql>descteacher;【任务2.1.15】查看teacher表的结构任务必备知识2.1.7查看表mysql>showcreatetableteacher\G***************************1.row***************************Table:teacherCreateTable:CREATETABLE`teacher`(`t_no`char(8)NOTnullCOMMENT'教师编号',`t_name`varchar(20)DEFAULTnullCOMMENT'教师姓名',`d_no`char(4)DEFAULTnullCOMMENT'院系编号',PRIMARYKEY(`t_no`))ENGINE=InnoDBDEFAULTCHARset=utf8mb4COLLATE=utf8mb4_0900_ai_ci【任务2.1.16】查看teacher的定义任务必备知识想一想如何修改表?(增加或删减列、重新命名列或表,修改默认字符集)?任务必备知识2.1.8修改表mysql>altertablestudentrenamestudent_new;altertable用于更改原有表的结构,包含重命名、增加、删除、修改等。【任务2.1.17】将表student重名为student_new【任务2.1.18】将student表中的s_birth字段重命名为s_s_birthmysql>altertablestudentrenamecolumns_birthtos_s_birth;任务必备知识2.1.8修改表mysql>altertablestudent->add‘入学日期’datenotnulldefault'2014-9-1'afters_sex;【任务2.1.19】给student表的s_sex列后增加一列“入学日期”,并定义其默认值为'2014-9-1'任务必备知识2.1.8修改表mysql>altertableteachaddforeignkey(t_no)referencesteacher(t_no);【任务2.1.20】为表teach的t_no字段添加外键,其参考表teacher的t_no字段任务必备知识2.1.8修改表mysql>altertablescoreaddcheck(markbetween0and100);【任务2.1.21】为score表中的mark字段添加检查约束(mark大于等于0小于等于100)任务必备知识2.1.8修改表mysql>altertablestudent2dropcolumn‘入学日期’【任务2.1.22】删除student表中的“入学日期”字段任务必备知识2.1.8修改表首先通过showcreatetable命令查看约束名称:mysql>showcreatetablescore\G***************************1.row***************************Table:scoreCreateTable:CREATETABLE`score`(`s_no`char(4)NOTnullCOMMENT'学号',`c_no`char(4)NOTnullCOMMENT'课程号',`mark`decimal(4,1)DEFAULTnullCOMMENT'成绩',PRIMARYKEY(`s_no`,`c_no`),【任务2.1.23】删除score表中的check约束任务必备知识2.1.8修改表KEY`c_no`(`c_no`),CONSTRAINT`score_ibfk_1`FOREIGNKEY(`s_no`)REFERENCES`student`(`s_no`),CONSTRAINT`score_ibfk_2`FOREIGNKEY(`c_no`)REFERENCES`course`(`c_no`),CONSTRAINT`score_chk_1`CHECK((`mark`between0and100)))ENGINE=InnoDBDEFAULTCHARset=utf8mb4COLLATE=utf8mb4_0900_ai_ci查询到约束的名称为score_chk_1,通过该名称删除约束:mysql>altertablescoredropcheckscore_chk_1;【任务2.1.23】删除score表中的check约束任务必备知识2.1.8修改表mysql>altertablestudentmodifys_sexenum('男','女')default'女';【任务2.1.24】修改表student的s_sex列的默认值为女任务必备知识2.1.8修改表mysql>altertablestudent1modifys_nochar(8);【任务2.1.25】修改student表中字段s_no的数据类型为char(8)任务必备知识2.1.9复制表可以通过createtable命令复制表的结构和数据,语法格式:createtable[ifnotexists]tbl_name[likeold_tbl_name|asselect_statement];mysql>createtableteacher_newliketeacher;【任务2.1.26】基于teacher表创建teacher_new表,其结构和teacher表相同任务必备知识mysql>createtableteacher_copyasselect*fromteacher;【任务

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论