以下问题都需要熟练写出来
数据结构化 ,数据之间具有联系,面向整个系统;数据的共享性高,冗余度低,易扩充;数据独立性高。
MySQL、SQL Server、Oracle、Hadoop等
早期比较流行的数据库模型有三种,分别为
而在当今的互联网中,最常用的数据库模型主要是两种,即
DDL(Data Definition Language)数据定义语言
用来定义数据库对象:数据库,表,列等。关键字:create,drop,alter 等
DQL(Data Query Language)数据查询语言
用来查询数据库中表的记录(数据)。关键字:select等
DML(Data Manipulation Language)数据操作语言
用来对数据库中表的数据进行增删改。关键字:insert,delete,update 等.
名称 | 功能 |
---|---|
AVG() | 返回某字段的平均值 |
COUNT() | 返回某字段的行数 |
MAX() | 返回某字段的最大值 |
MIN() | 返回某字段的最小值 |
SUM() | 返回字段的和 |
limit m,n;
SELECT DISTINCT <字段名> FROM <表名>;
[NOT] LIKE '字符串
LIKE 关键字支持百分号“%”和下划线“_”通配符。
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,就不在说了