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(即偏移量,表示从第几个开始返回), 第二个参数为记录数(即返回数据的个数)。
select xxx from aaa limit m,n;
过滤重复数据?
SELECT DISTINCT <字段名> FROM <表名>;
模糊查询?
select xxx from aaa where bbb 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分

考点:建库,建表,查询

参考:所有作业练习
例:

建库:
--- 建立一个叫test_db的数据库
CREATE DATABASE test_db;
创建表

要会拼写的关键字:

  • 主键、primary key
  • 自增、auto_increment
  • 非空、not null
  • 唯一、unique
  • 日期类型、datetime

注意考外键的可能性是极大的,所以一定要会写!!
外键:

[CONSTRAINT <外键名>] FOREIGN KEY 字段名 [,字段名2,…]
REFERENCES <主表名> 主键列1 [,主键列2,…]

例子1:常用的表创建

-- 创建
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
)

例子2:引用表一的值来当外键

create table scoreInfo(
	scoreId int primary key auto_increment,
	stuId int,
	score int not null,
	constraint scoreInfo_stuInfo_fk foreign key(stuId) references stuInfo(stuId),
)
查询

查询是重中之重,作业中的查询五花八门,不过波哥考的不会太为难我们。所以时间不够的情况下,直接记一个万金油公式

select distinct * from '表名' where '限制条件'  group by '分组依据' having '过滤条件' order by  limit '展示条数'
执行顺序
from       -- 查询
where      -- 限制条件
group by   -- 分组
having     -- 过滤条件
order by   -- 排序
limit      -- 展示条数
distinct   -- 去重
select     -- 查询的结果

直接把这条语句记住,然后考试的时候题目需要哪项就填哪项!

当然,也有可能考一些其他的东西查询。所以常用的一些基本的写法要清楚

集合查询函数:max 、min 、avg 、sum 、count 、group_concat 。
内连接:select aaa from bbb inner join ccc on bbb.xxx = ccc.xxx
左连接:select aaa from bbb left join ccc on bbb.xxx = ccc.xxx
右连接:select aaa from bbb right join ccc on bbb.xxx = ccc.xxx
全连接: select aaa from bbb union ccc on bbb.xxx = ccc.xxx 
插入

当然,也不是我不信波哥。但是我还是觉得复习了保险些。
插入的内容很少也很简单

-- 插入
insert into stuInfo(stuName, stuAge, stuSex)
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');

注意,如果这个表中的某个值是自增的,那么这个表后面的括号就可以不加它。就像这个例子,创建的时候有stuId的,由于设置的是自增,所以这儿就把它省略了

修改表

哈哈,反正插入表都复习了,就看全套吧。这里只给出了一个大致的例子。

-- 修改
UPDATE table_name SET field1=new-value1, field2=new-value2
[WHERE Clause]
删除表

同上理由

-- 删除
DELETE FROM table_name [WHERE Clause]

以波哥的重点为主,所以就是创建数据库,然后创建表和查询为主。其实平时的练习已经足够了,所以就只要关键时刻记得关键词怎么写就没问题了。

  • 9
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值