MySQL数据库实验:任务一 创建数据库和表
任务一 创建数据库和表
@
| 班级 | 姓名 |
|---|---|
| 软件工程16-9班 | 洪燕妮 |
【实训目的与要求】
1、安装MySQL系统,了解MySQL环境;
2、利用MySQL命令行窗口创建数据库及表;
3、利用界面工具创建数据库及表;
4、完整性约束设计。
【实训原理】
DBMS环境的使用
【实训步骤】
一、熟悉MySQL环境
1.检查软硬件配置是否达到MySQL的安装要求。
(1)硬件
(2)软件
2.安装数据库管理系统MySQL服务器。

3.练习用不同的方法启动MySQL服务。
(1).通过Windows服务管理器启动MYSQL服务

(2).通过DOS命令启动MYSQL服务

4.登录MySQL服务器。

5.认识MySQL界面工具:Navicat for MySQL客户端工具


6.利用MySQL客户端访问数据库
(1)使用SHOW语句查看系统中已有的数据库:
命令:show databases;

(2)使用USE语句选择MySQL数据库为当前数据库:
命令:use mysql;

(3)使用SHOW TABLES语句查看当前数据库中的表:
命令:show databases;

二、利用MySQL命令行窗口创建数据库及表
1.使用命令行方式创建数据库SM
以管理身份登录MySQL客户端,使用CREATE语句创建SM数据库。
命令:

2.建表结构并设计完整性
SM数据库中包含3个数据表:学生表(student)、课程表(course)、学生选课表(SC)。 各表的结构分别如下:
- student表结构:
| 字段名称 | 数据类型 | 是否允许空值 | 约束 | 说明 |
|---|---|---|---|---|
| SNo | char(8) | × | 主键 | 学号 |
| SName | varchar(8) | × | 唯一值 | 姓名 |
| SSex | char(2) | × | 检查约束 | 性别(男或女) |
| SBir | datetime | √ | 出生日期 | |
| Scredits | int | √ | 总学分 |
- course表结构:
| 字段名称 | 数据类型 | 是否允许空值 | 约束 | 说明 |
|---|---|---|---|---|
| CNo | char(5) | × | 主键 | 课程编号 |
| CName | varchar(30) | × | 唯一值 | 课程名称 |
| CPno | char(5) | √ | 外码 | 先修课程 |
| CTime | decimal(3,0) | √ | 总学时 | |
| CCredits | int | √ | 默认值4 | 学分 |
| CTerm | char(1) | × | 学期 |
- SC表结构:
| 字段名称 | 数据类型 | 是否允许空值 | 约束 | 说明 |
|---|---|---|---|---|
| SNo | char(8) | × | 外码 | 学号 |
| CNo | char(5) | × | 外码 | 课程编号 |
| Score | decimal(3,1) | √ | 0~100 | 成绩 |
(1)创建student表
命令:
mysql> create table student
-> (
-> SNo char(8) NOT NULL PRIMARY KEY,
-> SName varchar(8) NOT NULL UNIQUE,
-> SSex char(2) NOT NULL CHECK(SSex IN('男','女')),
-> SBir datetime,
-> Scredits int
-> );
截图:


(2)创建course表
命令:
mysql> CREATE TABLE course
-> (
-> CNo char(5) NOT NULL PRIMARY KEY,
-> CName varchar(30) NOT NULL UNIQUE,
-> CPno char(5),
-> CTime decimal(3,0),
-> CCredits int DEFAULT 4,
-> CTerm char(1),
-> FOREIGN KEY (CPno) REFERENCES course(CNo)
-> );
截图:


(3)创建SC表
命令:
mysql> CREATE TABLE SC
-> (
-> SNo char(8) NOT NULL,
-> CNo char(5) NOT NULL,
-> Score decimal(3,1) CHECK(Score>=0 AND Score<=100),
-> PRIMARY KEY(SNo,CNo),
-> FOREIGN KEY(SNo) REFERENCES student(SNo),
-> FOREIGN KEY(CNo) REFERENCES course(CNo)
-> );
截图:


三、利用界面工具创建数据库及表
利用Navicat for MySQL客户端工具创建数据库SM1,并根据上面给出的表结构在SM1中创建各表。
1.建库SM1
截图:

2.建表
(1)创建student表
截图:

(2)创建course表
截图:

(3)创建SC表
截图:


【实训总结】
1.初期时在安装老师给的MYSQL5.5时出现问题,安装成功但不能通过DOS命令行启动,然后通过同学的帮忙,安装了MYSQL5.0并成功启动。
2.在创建表时,对表的完整性约束条件表达不够清楚,通过查阅书籍逐渐尝试而建表成功。
主码PRIMARY KEY
唯一值UNIQUE
不为空NOT NULL
外码FOREIGN KEY
默认值DEFAULT
取值范围CHECK(Score>=0 AND Score<=100)
3.使用Navicat时不够熟练,要多加练习,遇到问题要及时解决,并从中吸取经验。
MySQL数据库实验:任务一 创建数据库和表的更多相关文章
- 跟我学Windows Azure 二 使用SQL Azure创建数据库服务器,创建数据库,创建表
登陆Windows Azure门户 输入我们上一节课所注册的帐号及密码,点击登陆. 选择SQL 数据库,选择服务器 选择创建数据库服务器 设置访问数据库服务器的登陆帐号及密码 点击确定完成数据库服务器 ...
- 《Oracle Database 12c DBA指南》第二章 - 安装Oracle和创建数据库(2.1 安装Oracle数据库软件和创建数据库概览)
当前关于12c的中文资料比较少,本人将关于DBA的一部分官方文档翻译为中文,很多地方为了帮助中国网友看懂文章,没有按照原文句式翻译,翻译不足之处难免,望多多指正. 2.1 安装Oracle数据库软件和 ...
- mysql命令行下创建数据库,创建表,插入数据,查询数据
1.创建数据库 mysql> create DATABASE booktik -> ;Query OK, 1 row affected (0.02 sec) 2.创建表 mysql> ...
- mysql cmd命令行 创建数据库 表 基础语句
一.连接MYSQL 格式: mysql -h主机地址 -u用户名 -p用户密码 1. 连接到本机上的MYSQL. 首先打开DOS窗口,然后进入目录mysql\bin,再键入命令mysql -u roo ...
- mysql中如何在创建数据库的时候指定数据库的字符集?
需求描述: 在创建DB的时候指定字符集. 操作过程: 1.使用create database语句创建数据库 mysql> create database if not exists test03 ...
- (笔记)Mysql命令create:创建数据库
create命令用于创建数据库. create命令格式:create database <数据库名>; 注意:创建数据库之前要先连接Mysql服务器. 1) 建立一个名为xhkdb的数据库 ...
- Oracle数据库实验一建立数据库
实验日期: 2019 年 09 月 24 日 实验报告日期: 2019 年 09 月 28 日 一. 实验目的 熟悉oracle环境: 熟练掌握和使用PL-SQL建立数据 ...
- MySQL学习笔记(4) - 创建数据库
1.建立一个简单的数据库 CREATE DATABASE t1: 图中如果未打:号,系统会等待直到用户输入结束符才会之行语句. 2.查看当前服务器下数据库列表 SHOW DATABASES; 必须是D ...
- shell安装mysql,连接数据库,创建数据库
https://blog.csdn.net/yhflyl/article/details/83061126 https://blog.csdn.net/wyl9527/article/details/ ...
随机推荐
- java笔记-修改javadoc为中文API信息
Eclipse 默认的Javadoc API是英文版的,修改成中文版本的API步骤为: --如果朋友您想转载本文章请注明转载地址"http://www.cnblogs.com/XHJT/p/ ...
- winform ComboBox控件反选
winform ComboBox控件反选:int index = comboBox1.FindString(textBox2.Text); comboBox1.SelectedIndex = inde ...
- Python学习---重点模块的学习【all】
time [时间模块] import time # print(help(time)) # time模块的帮助 print(time.time()) # 时间戳 print(time.cloc ...
- [EffectiveC++]item23:Prefer non-member non-friend functions to member functions
99页 导致较大封装性的是non-member non-friend函数,因为它并不增加“能否访问class内之private成分”的函数数量.
- 在Android Studio2.3中配置OpenCV4Android SDK
在Android Studio2.3中配置OpenCV4Android SDK 一,OpenCV4Android下载地址 [2.4.11]http://onhdz331f.bkt.clouddn.co ...
- BZOJ 1002 轮状病毒 矩阵树定理
题目链接: https://www.lydsy.com/JudgeOnline/problem.php?id=1002 题目大意: 给定n(N<=100),编程计算有多少个不同的n轮状病毒 思路 ...
- 【[国家集训队]Crash的数字表格 / JZPTAB】
这道题我们要求的是 \[\sum_{i=1}^N\sum_{j=1}^Mlcm(i,j)\] 总所周知\(lcm\)的性质不如\(gcd\)优雅,但是唯一分解定理告诉我们\(gcd(i,j)\time ...
- 笔试面试之C++
7 类B是类A的公有派生类, 类A和类B中都定义了虚函数func(), p 是一个指向类A对象的指针,则p->A::func()将() A 调用类A中的函数 B 调用类B中的函数 C 根据p所指 ...
- C/C++——存储
关于各内存空间: 栈(stack):变量,数组.栈的大小是2M(也有的是1M),反正不大,一般递归写错了,没有出口,都会报错stack overflow. 全局区(静态区):全局变量.数组,静态变量. ...
- [转载] MySQL数据库5.X版本基本手工注入总结
MySQL数据库5.X版本基本手工注入总结 根据我对MySQL的认识,注入时,基本可以通过爆.盲注.报错三种方式获得用户名和密码,在权限足够的情况下,还可以直接通过SQL语句插入并导出我们的一句话we ...