Mysql大三期末复习

大三期末复习

以下问题都需要熟练写出来

数据库的特点?

数据结构化 ,数据之间具有联系,面向整个系统;数据的共享性高,冗余度低,易扩充;数据独立性高。

有哪些数据库?

MySQL、SQL Server、Oracle、Hadoop等

数据库的种类包括?

早期比较流行的数据库模型有三种,分别为

  • 层次式数据库
  • 网络式数据库
  • 关系型数据库

而在当今的互联网中,最常用的数据库模型主要是两种,即

  • 关系型数据库
  • 非关系型数据库。

DDL、DQL、DML是什么?

  1. DDL(Data Definition Language)数据定义语言
    用来定义数据库对象:数据库,表,列等。关键字:create,drop,alter 等

  2. DQL(Data Query Language)数据查询语言
    用来查询数据库中表的记录(数据)。关键字:select等

  3. DML(Data Manipulation Language)数据操作语言
    用来对数据库中表的数据进行增删改。关键字:insert,delete,update 等.

有哪些约束?他们分别的含义为?

  1. 主键约束:primary key
  2. 非空约束:not null
  3. 唯一约束:unique
  4. 外键约束:foreign key

数据库系统的组成?

  • 数据库
  • 计算机硬件
  • 计算机软件
  • 数据库用户

函数有哪些?

名称 功能
AVG() 返回某字段的平均值
COUNT() 返回某字段的行数
MAX() 返回某字段的最大值
MIN() 返回某字段的最小值
SUM() 返回字段的和

分页查询?

  • 如果只给定一个参数,表示记录数。
  • 两个参数,第一个参数表示offset, 第二个参数为记录数。
limit m,n;

过滤重复数据?

SELECT DISTINCT <字段名> FROM <表名>;

模糊查询?

[NOT] LIKE  '字符串
  • NOT :可选参数,字段中的内容与指定的字符串不匹配时满足条件。
  • 字符串:指定用来匹配的字符串。“字符串”可以是一个很完整的字符串,也可以包含通配符。

LIKE 关键字支持百分号“%”和下划线“_”通配符。

varchar 和char的区别?

char的长度是不可变的,而varchar的长度是可变的,也就是说,定义一个char[10]和varchar[10],如果存进去的是‘csdn’,那么char所占的长度依然为10,除了字符‘csdn’外,后面跟六个空格,而varchar就立马把长度变为4了,取数据的时候,char类型的要用trim()去掉多余的空格,而varchar是不需要的。

再者,char的存储方式是,对英文字符(ASCII)占用1个字节,对一个汉字占用两个字节;而varchar的存储方式是,对每个英文字符占用2个字节,汉字也占用2个字节。

新建视图、删除视图语句?

新建视图:

create view 视图名字 as select 语句;

删除视图:

drop view 视图名字;

重点看:数据库.md、数据定义语言(DDL).md的笔记

最后一道大题30分

考点:建库,建表,查询

参考:所有作业练习
例:

-- 创建
create table stuInfo(
	stuId int primary key auto_increment,
	stuName varchar(10) not null,
	stuAge int not null,
	stuSex int not null check(stuSex = 0 or stuSex = 1),
	time datetime
)
create table courseInf(
	courseId int primary key auto_increment,
	courseName varchar(10) not null,
	courseMarks int not null
)

create table scoreInfo(
	scoreId int primary key auto_increment,
	stuId int,
	courseId int,
	score int not null,
	constraint scoreInfo_stuInfo_fk foreign key(stuId) references stuInfo(stuId),
	constraint scoreInfo_courseInf_fk foreign key(courseId) references courseInf(courseId)
)
-- 插入
insert into stuInfo()
values
(default,'Tom',19,1,null),
(default,'Jack',20,0,null),
(default,'Rose',21,1,null),
(default,'Lulu',19,1,null),
(default,'Lili',21,0,null),
(default,'adc',20,1,'2007-01-07 01:11:36.590');


insert into courseInf()
values
(default,'JavaBase',4),
(default,'HTML',2),
(default,'JavaScript',2),
(default,'SqlBase',2);

insert into scoreInfo()
values
(default,1,1,80),
(default,1,2,85),
(default,1,4,50),
(default,2,1,75),
(default,2,3,45),
(default,2,4,75),
(default,3,1,45),
(default,4,1,95),
(default,4,2,75),
(default,4,3,90),
(default,4,4,45);
-- 查询出每个学生所选修的课程的数量和所选修的课程的考试的平均分
select count(courseId),avg(score)
from scoreInfo
group by stuId;
-- 修改
UPDATE table_name SET field1=new-value1, field2=new-value2
[WHERE Clause]
-- 删除
DELETE FROM table_name [WHERE Clause]

提醒:如果认真看完做完作业的同学,最后一道大题肯定会拿满分,dddd,就不在说了

你可能感兴趣的:(其他)