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

下载本文档

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

文档简介

教案首页课程名称MySQL数据库开发本节课题任务2.1数据库的创建与数据表的开发授课方式理实一体化教学参考及教具姜云桥主编.MySQL数据库开发.临科院:教务处,2023计算机MySQL数据库软件多媒体教学系统资料包教学目标及基本要求掌握创建数据库方法掌握管理数据库的方法掌握创建数据表的方法掌握管理数据表的方法能创建和管理数据库能创建和管理表培养学生表达能力教学重点教学难点创建数据库、创建数据表、管理数据库、管理数据表创建和管理表教学小结作业及要求按照任务书做好预习任务创建和管理表教后反思

教案用纸教学内容、方法和过程附记任务2.1数据库的创建与数据表的开发导入:学院的教学系统,可以查到那些数据?我们根据需求分析,要求创建学生、课程、教师和系部等数据表来存储数据。【任务背景】 S学校要建立一个教学管理系统。根据需求分析,要求创建学生、课程、教师和系部等数据表来存储数据。接下来,要建立数据库,设计数据表的结构,并初始化相关表数据。【任务要求】本任务将学习创建和管理数据库、创建和管理表。在任务实施过程中,要特别注意表的规范化,要注意数据类型的正确选择,还要注意数据库和数据表字符集的统一问题。【任务必备知识】2.1.1创建数据库的语句 使用CREATEDATABASE或CREATESCHEMA命令可以创建数据库。 其语法结构如下。CREATEDATABASE[IFNOTEXISTS]db_name;【任务2.1】创建数据库test1。mysql>CREATEDATABASE[IFNOTEXISTS]test1;【任务2.2】创建数据库test2库,并指定字符集为gb2312。mysql>CREATEDATABASETEST2。 DEFAULTCHARACTERSETgb2312。 COLLATEgb2312_chinese_ci。分析与讨论(1)DEFAULTCHARACTERSET:指定数据库的默认字符集(Charset),charset_name为字符集名称。COLLATE:指定字符集的校对规则,collation_name为校对规则名称。(2)创建数据库时最好指定字符集。(3)IFNOTEXISTS:如果已存在某个数据库,再来创建一个同名的库,这时会出现错误信息。为避免错误信息,可以在建库前加上这一判断,只有该库目前尚不存在时才执行CREATEDATABASE操作。2.1.2查看库用SHOWDATABASES命令查看,输出结果如图2.1所示。图2.1运行结果创建数据库并不表示选定并使用它,必须明确地操作。为了使test1成为当前的数据库,使用如下命令。 mysql>Usetest1;2.1.3修改库数据库创建后,如果需要修改数据库的参数,可以使用ALTERDATABASE命令。【任务2.3】将test1库修改字符集为gb2312,校对原则为gb2312_chinese_cimysql>ALTER

DATABASE

test1

DEFAULT

CHARACTER

SET

gb2312

COLLATE

gb2312_chinese_cimysql>ALTER

DATABASE

jxgl

DEFAULT

CHARACTER

SET

gb2312

COLLATE

gb2312_chinese_ci2.1.4删除库已经创建的数据库,如果需要删除,可使用DROPDATABASE命令。语法格式: DROPDATABASE[IFEXISTS]db_name【任务2.4】删除test1库。mysql>DROPDATABASEtest1;特别要注意,删除了数据库,数据库里的所有表也同时被删除。因此,最好先对数据库做好备份,然后再执行删除操作。学习行动1创建数据库JXGL设置库字符集为gb2312校对原则为gb2312_chinese_ci查看mysql>CREATEDATABASEJXGL DEFAULTCHARACTERSETgb2312 COLLATEgb2312_chinese_ci2.2创建与管理表数据库创建之后,数据库是空的,是没有表的,可以用SHOWTABLES命令查看。mysql>SHOWTABLES; Emptyset(0.00sec)2.2.1创建表表决定了数据库的结构,表是存放数据的地方,一个库需要什么表,各数据库表中有什么样的列,是要合理设计的。创建表的语法如下。教学示例数据库为学生管理系统(JXGL),在这个库中要设计6张表:STUDENTS(学生信息表)、course(课程表)、score(成绩表)、departments(院系单位表)、teachers(教师表)和teach(讲授表)。【任务2.5】创建表teachers。表2.5teachersmysql>createtableifnotexiststeacher->(->t_no char(6)primarykeycomment'教师编号',->t_name varchar(20) comment'教师姓名',->d_no char(4) comment'院系编号'->);分析与讨论(1)关于设置主键。PRIMARYKEY表示设置该字段为主键。如在STUDENTS表中,PRIMARYKEY(s_no)表示将s_no字段定义为主键。(2)添加注释。COMMENT'学号'表示对“s_no”字段增加注释为“学号”。(3)如果没有指定是NULL或是NOTNULL,则列在创建时假定为NULL。【任务2.6】创建表departments。mysql>CREATETABLEIFNOTEXISTSdepartments D_NOchar(8)NOTNULLCOMMENT'院系编号', D_NAMEchar(8)NOTNULLCOMMENT'院系名称', PRIMARYKEY(D_NO) ENGINE=InnoDBDEFAULTCHARSET=gb2312;【任务2.7】创建表STUDENTS。mysql>CREATETABLEIFNOTEXISTSSTUDENTS s_nochar(4)NOTNULLCOMMEN'学号', s_namechar(4)NOTNULLCOMMENT'姓名',sexENUM('男','女')DEFAULT'男'COMMENT'性别', birthdaydateNOTNULLCOMMENT'出生日期', d_novarchar(4)NOTNULLCOMMENT'所在系部',addressvarchar(20)NOTNULLCOMMENT'家庭地址', phonevarchar(12)NOTNULLCOMMENT'联系电话', photoblobCOMMENT'照片', PRIMARYKEY(s_no)ENGINE=InnoDBDEFAULTCHARSET=gb2312;【任务2.8】创建表course。mysql>CREATETABLEIFNOTEXISTScourse c_nochar(4)NOTNULL, c_namechar(10)NOTNULL, d_nochar(10)NOTNULL,hoursint(11)NOTNULL, creditint(11)NOTNULL, typeEMUN('必修课','选修课')DEFAULT'必修课', PRIMARYKEY(c_no) ENGINE=InnoDBDEFAULTCHARSET=gb2312;【任务2.9】创建表score。mysql>CREATETABLEIFNOTEXISTSscore s_nochar(8)NOTNULL, c_nochar(4)NOTNULL, reportfloat(3,1)DEFAULT0, PRIMARYKEY(s_no,c_no)ENGINE=InnoDBDEFAULTCHARSET=gb2312;【任务2.10】创建表teach。mysql>CREATETABLEIFNOTEXISTSteach t_novarchar(8)NOTNULL, c_novarchar(8)NOTNULL, KEYt_no(t_no), KEYc_no(c_no)ENGINE=InnoDBDEFAULTCHARSET=gb2312;分析与讨论(1)关于设置主键。PRIMARYKEY表示设置该字段为主键。如在STUDENTS表中,PRIMARYKEY(s_no)表示将s_no字段定义为主键。在score表中,PRIMARYKEY(s_no,c_no)表示把s_no、c_no两个字段一起作为复合主键。(2)添加注释。COMMENT'学号'表示对“s_no”字段增加注释为“学号”。(3)字段类型的选择。SEXENUM('男','女')表示sex字段的字段类型是ENUM,取值范围为'男'和'女'。对于取值固定的字段可以设置数据类型为ENUM。例如,在course表的type字段表示的是课程的类型,一般是固定的几种类型。因此,可以把该字段的定义写成:typeENUM('必修课',‘选修课')DEFAULT'必修课'。(4)默认值的设置。DEFAULT'男'表示默认值为“男”。(5)设置精度。Score表中的reportfloat(5,1)表示精度为6,小数位1位。(6)“ENGINE=InnoDB”表示采用的存储引擎是InnoDB,InnoDB是MySQL在Windows平台默认的存储引擎,所以“ENGINE=InnoDB”可以省略。(7)DEFAULTCHARSET=gb2312表示表的字符集是gb2312。(8)如果没有指定是NULL或是NOTNULL,则列在创建时假定为NULL。(9)设置自动增量。一个整数列可以拥有一个附加属性AUTO_INCREMENT。AUTO_INCREMENT序列从一般1开始,也可以自定义开始值。这样的列必须被定义为一种整数类型。可以通过AUTO_INCREMENT属性为新的行产生唯一的标识。2.2.2查看表创建了数据表后,现在再用SHOWTABLES查询已创建的表的情况。mysql>SHOWTABLES; 输出结果如图2.2所示。图2.2运行结果用命令查看teachers的结构。 mysql>DESCteachers; 程序执行结果如图2.2.3修改表ALTERTABLE用于更改原有表的结构。例如,可以增加或删减列、重新命名列或表,还可以修改默认字符集。【任务2.12】在STUDENTS表的photo列后面增加一列speciality。mysql>ALTER

TABLE

STUDENTS ADD

speciality

VARCHAR(5)

NOT

NULL

AFTER

photo;【任务2.13】给STUDENTS表的birthday列后增加一列“入学日期”,并定义其默认值为'2015-9-11'。mysql>ALTERTABLESTUDENTS ADD`入学日期`dateNOTNULLDEFAULT'2015-9-11'AFTERbirthday;mysql>ALTERTABLESTUDENTSADD入学日期dateNOTNULLDEFAULT'2015-9-11'AFTERbirthday【任务2.14】修改表STUDENTS的sex列的默认值为女。mysql>altertablestudentschangesex`性别`char(2)notnulldefault'女';altertablestudentschangesexsexchar(2)notnulldefault'女';altertablestudentschangesex`性别`char(2)notnulldefault'女';【任务2.15】删除STUDENTS表的入学日期列的默认值。ALTERTABLESTUDENTSALTER`入学日期`DROPDEFAULT;ALTERTABLESTUDENTSALTER`入学日期`DROPDEFAULT;【任务2.16】将表STUDENTS重名为学生表。mysql>ALTERTABLESTUDENTSrename‘学生表’;ALTERTABLESTUDENTSrename‘学生表’【任务2.17】修改course表的字符集为utf8。altertablecourseconverttocharactersetutf8collateutf8_general_cialtertablecourseconverttocharactersetutf8collateutf8_general_ci2.2.4复制表可以通过CREATETABLE命令复制表的结构和数据。语法格式: CREATE[TEMPORARY]TABLE[IFNOTEXISTS]tbl_name [()LIKEold_tbl_name[]] |[AS(select_statement)] ;【任务2.18】创建一个表STUDENTS的附表STUDENTS1。mysql>CREATETABLESTUDENTS1LIKE学生表;CREATETABLESTUDENTS1LIKE学生表【任务2.19】用命令查看STUDENTS1的结构。 mysql>DESCSTUDENTS1; 程序执行结果如图【任务2.20】复制表STUDENTS的结构和数据,

温馨提示

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

评论

0/150

提交评论