1.使用SQL创建数据库,数据库名:studentDB,如果数据库studentDB已存在,那么,先删除再创建。

DROP DATABASE IF EXISTS StudentDB ;-----如果存在数据库StudentDB则删除数据库StudentDB;

CREATE DATABASE StudentDB ----创建数据库StudentDB

CHARACTER SET utf8 ;---数据库字符集。设置数据库的默认编码为utf8,utf8中间不要"-";

2.在数据库studentDB中,使用SQL创建student、course和score等3个表,表结构分别如下:

(1)表 1:学生表(t_student)

(2)表2:课程表(t_course)

(3)表 3:成绩表(t_score)

--(1)表1:学生表(t_student)

DROP TABLE t_student IF EXISTS t_student ;

CREATE TABLE t_student(

studentNo NVARCHAR(11) NOT NULL,

studentName NVARCHAR(20) NOT NULL,

loginPwd VARCHAR(20) NOT NULL,

sex CHAR(2) NOT NULL,

birthday DATETIME

);

--(2)课程表(t_course)

CREATE TABLE t_course(

courseID INT AUTO_INCREMENT PRIMARY KEY,---一般会配置自增长属性的字段作为主键

courseName NVARCHAR(20) NOT NULL,

clasHour INT NOT NULL,

credit INT NOT NULL

);

--(3)表3:成绩表(t_score)

CREATE TABLE t_score(

studentNo NVARCHAR(11) NOT NULL,

courseID INT NOT NULL,

score INT NOT NULL

);

3. 数据约束操作

(1)为t_student表(第一个字段)添加主键约束。

ALTER TABLE t_student

ADD CONSTRAINT pk_studentNo PRIMARY KEY(studentNo);

(2)为t_course表(第一个字段)添加主键,其在创建表时已经指定第一个字段为主键约束。

(3)为t_score表(第一和第二个字段)分别添加主键约束。

ALTER TABLE t_score

ADD CONSTRAINT pk_sNO_cID PRIMARY KEY(studentNo,courseID);

(4)为t_score表添加外键约束。

ALTER TABLE t_score

ADD CONSTRAINT fk_stuNo FOREIGN KEY(studentNo) REFERENCES t_student(studentNo);

ALTER TABLE t_score

ADD CONSTRAINT fk_courseID FOREIGN KEY(courseID) REFERENCES t_course(courseID);

(5)为t_student表的sex列添加默认约束,默认值为’男’。

ALTER TABLE t_student

ADD CONSTRAINT df_sex DEFAULT('男') FOR sex ;

(6)为t_course表的courseName添加唯一键约束,要求课程名是唯一的。

ALTER TABLE t_course

ADD CONSTRAINT uq_courseName UNIQUE(courseName) ;

(7)为t_score表的score列添加检查约束,要求成绩在[0,100]之间。

ALTER TABLE t_course

ADD CONSTRAINT ck_score CHECK(score>=0 AND score<=100) ;

4.数据更新操作

(1)插入数据

t_student表数据:

INSERT INTO t_student

VALUES ('13601260101','丁亮','123456','男','1993-2-24'),

('13601260102','李连杰','123456','男','1993-3-25'),

('13601260103','李刚','123456','男','1993-5-25'),

('13601260104','凌洋','123456','女','1993-9-15'),

('13601260105','刘雪琼','123456','女','1992-12-25') ;

t_course表数据:

INSERT INTO t_course(courseName,clasHour,credit)

VALUES('使用SQL Server管理和查询数据',56,3),

('网站前台开发技术',56,2),

('面向对象程序设计(Java)',88,5) ;

t_score表数据:

INSERT INTO t_score

VALUES ('13601260101','1',75),

('13601260102','1',65),

('13601260103','1',85),

('13601260104','1',95),

('13601260105','1',55),

('13601260101','2',77),

('13601260102','2',69),

('13601260103','2',45),

('13601260104','2',95),

('13601260105','2',85),

('13601260101','3',90),

('13601260102','3',60),

('13601260103','3',75),

('13601260104','3',95),

('13601260105','3',55) ;

(2)使用SQL更新学生表,将‘丁亮’的学生名字,修改为“丁文亮”。

UPDATE t_student

SET studentName='丁文亮'----修改结果

WHERE studentName='丁亮' ;----修改条件

(3)使用SQL删除成绩表中的“13601260104”的学生成绩记录。

DELETE FROM t_score

WHERE studentNo='13601260104' ;

5.数据查询操作

(1)找出姓李的学生信息,字段名用别名命名

SELECT studentNo AS 学号, studentName AS 姓名, sex AS 性别, birthday AS 出生日期

FROM t_student

WHERE studentName LIKE '李%' ;----模糊查询:单个用'_',多个用'%'

(2)求每门课的最高分、最低分、平均分

SELECT t_course.courseID AS 课程编号, MAX(score) AS 最高分, MIN(score) AS 最低分, AVG(score) AS 平均分

FROM t_course, t_score

WHERE t_course.courseID = t_score.courseID

GROUP BY 课程编号 ;-----分组

(3)查询不及格的学生姓名,课程名称,考试成绩。

SELECT studentName AS 姓名, courseName AS 课程名, score AS 分数

FROM t_student AS st,t_course AS c, t_score AS sc

WHERE st.studentNo=sc.studentNo AND c.courseID=sc.courseID AND score<60 ;

(4)查找没有考试成绩的学生的信息

SELECT studentNo AS 学号, studentName AS 姓名, sex AS 性别, birthday AS 出生日期

FROM t_student

WHERE studentNo NOT IN (

SELECT DISTINCT studentNo

FROM t_score

);

创建mysql数据库 表_MySQL:创建数据库和数据表操作相关推荐

  1. mysql 快速复制_MySQL中快速复制数据表方法汇总

    本文将着重介绍两个MySQL命令的组合,它将以原有数据表为基础,创建相同结构和数据的新数据表. 这可以帮助你在开发过程中快速的复制表格作为测试数据,而不必冒险直接操作正在运行 的数据表. 示例如下: ...

  2. mysql repair 索引_mysql 创建索引、重建索引、查询索引、删除索引 转自:http://www.phpernote.com/mysql/942.html...

    本篇文章主要是对MySQL索引操作方法做了一下总结,包括创建索引.重建索引.查询索引.删除索引的操作.以下所列示例中中 `table_name` 表示数据表名,`index_name` 表示索引名,c ...

  3. mysql字段命名_Mysql 01—数据库表字段的命名规则

    摘要:当前测试工作为自研数据库测试,同时需要为自动化执行处理入库数据表,为让自己看起来专业些,特查找资料学习数据库的各种规范使用. 本文是一篇包含了数据库命名.数据库表命名.数据库表字段命名及SQL语 ...

  4. mysql数据库视图重命名_数据表和视图:修改数据表

    在MySQL中,ALTER 语句用来修改数据表名称或者数据表字段名称.也可以用来添加或者删除数据表字段. ALTER 语句经常和"ADD", "DROP" an ...

  5. mysql设置外键并一键生成数据表关系图

    文章目录 1.概念 2.理解 3.添加外键时需要注意的规则 4.navicat for mysql中设置外键 5.数据表关系图的创建 1.概念 主键是能确定一条记录的唯一标识. 外键用于与另一张表的关 ...

  6. mysql 热备份 数据一致性_MySQL 使用 XtraBackup 进行数据热备份指导 [全量+增量]

    背景 最近一直涉猎 MySQL 数据库的操作.集群部署 注意到,为保证数据安全,掌握数据备份是极为重要的 相比小型服务的冷备份而言 在此推荐并整理更受推崇的 XtraBackup 下的热备份技巧 ☞ ...

  7. web元件库、axure元件库、通用元件库、常用web组件、常用表单、框架、数据表单、导航栏、边框、图标、列表、日期时间选择器、评分组件、穿梭框、输入框、步骤条、图表组件、数据可视化、后台模板、时间轴

    web元件库.axure元件库.通用元件库.常用web组件.常用表单.框架.数据表单.导航栏.边框.图标.列表.日期时间选择器.评分组件.穿梭框.输入框.步骤条.图表组件.数据可视化.后台模板.时间轴 ...

  8. web元件库、axure元件库、元件库、web组件、控件、表单、框架、数据表单、导航栏、边框、图标、列表、日期时间选择器、评分组件、穿梭框、输入框、步骤条、图表组件、数据可视化、后台模板、时间轴

    web元件库.axure元件库.通用元件库.web组件.控件.表单.框架.数据表单.导航栏.边框.图标.列表.日期时间选择器.评分组件.穿梭框.输入框.步骤条.图表组件.数据可视化.后台模板.时间轴. ...

  9. 菜鸟教程mysql创建表_MySQL 创建数据库 | 菜鸟教程

    MySQL 创建数据库 使用 mysqladmin 创建数据库 使用普通用户,你可能需要特定的权限来创建或者删除 MySQL 数据库. 所以我们这边使用root用户登录,root用户拥有最高权限,可以 ...

  10. mysql创建数据库选择_mysql创建、选择并使用数据库

    假定在你的家(你的"动物园")中有很多宠物,并且你想跟踪关于它们各种类型的信息.你可以通过创建表来保存你的数据并根据所需要的信息装载他们,然后你可以从表中检索数据来回答关于动物不同 ...

最新文章

  1. gif 图片制作和拆解
  2. 实现O(1)时间复杂度带有min和max 函数的栈
  3. Cmd使用方式--命令行运行程序
  4. centos下搭建网站服务器,Centos7搭建web服务器
  5. S/4HANA extension field search的SQL语句是在什么地方生成的
  6. 机器学习笔记(六):正则化
  7. 评:我从编程中悟出八个字(不算原创,不过希望让大家能看看)
  8. 从零基础入门Tensorflow2.0 ----四、17.生成tfrecords文件
  9. java voip 的sip服务器搭建_SIP服务器,搭建自己的VoIP平台 | 学步园
  10. 世界各国国家代码简称
  11. python 实现 责任链模式
  12. 三进制与八进制相互转换
  13. win10磁盘占用100%
  14. android 存储盘 dcim,DCIM是个啥?安卓图片存储位置指南
  15. nvidia控制面板点了没反应win7_WIN7nvidia控制面板点击没反应 - 卡饭网
  16. Zoom视频会议软件使用
  17. HDMI转MIPICSI,东芝转换芯片,TC358743XBG/TC358749XBG
  18. 1930年经济大萧条
  19. 学生狗租房舒舍给你详解
  20. 机器学习新-统计机器学习第二版

热门文章

  1. notepad++ 编辑内容加 单引号 和 逗号
  2. mac安装git的时候踩过的坑
  3. 准备安装Ubuntu 10.04系统
  4. 电竞陪玩app定制开发业务是怎样满足市场需求的?
  5. sourceInsight4破解笔记
  6. 如何解析json并展示到html页面中,js解析json并生成html页面
  7. cpufreq schedutil调频机制解析
  8. oracle如何将表数据求和,我想把另外一张表格相同的数据求和显示在另外 – 手机爱问...
  9. 桌面没有输入法的解决方案
  10. js返回到上一个页面刷新与不刷新的写法