mysql创建表跟数据_MySQL:创建数据库和数据表操作

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

);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值