数据库知识整理

数据库知识整理

什么是数据库
用于存储和管理数据的仓库

数据库特点
1.持久化存储数据;
2.方便存储和管理数据;
3.使用了统一的方式操作数据库–SQL。

SQL的概念:
结构化查询语言(Structured Query Language)简称SQL,是一种数据库查询语言。

MYSQL
是一个关系型数据库管理系统。

数据库三大范式
第一范式:每个列都不可再拆分。
第二范式:在第一范式的基础上,非主键完全依赖于主键,而不是只依赖一部分。
第三范式:在第二范式的基础上,非主键只依赖于主键,二部依赖于其他非主键。

在设计数据库时,尽量遵守三大范式,如果不遵守,要有足够的理由,比如性能。

数据类型
1.整数类型:int:整数(32位二进制);smallint:小的整数(16位二进制)。
2.小数类型:double:双精度浮点数;float 单精度浮点数。
3.日期: date:只包含年月日,yyyy-MM-dd
datetime:包含年月日时分秒,yyyy-MM-dd HH:mm:ss
timestamp:尽量使用timestamp,空间效率高于datetime。
4.字符串类型:char(定长)、varchar(存储可变长字符串)。

DDL操作数据库和表
1.创建:
创建数据库:

create database 数据库名称;

创建表:

 create table 表名(
 列名1 数据类型1,
 列名2 数据类型2,
 ...
 列名n 数据类型n
 );

2.查询
查询所有数据库名称:

show database;

查询某个库中所用表的名称:

show tables;

查询表结构:

 desc 表名;

3.修改
修改数据库的字符集

alter database 数据库名称 character set 字符集名称;

修改表名

alter table 表名 rename to 新的表名;

添加一列:

alter table 表名 add 列名 数据类型;

删除一列:

alter table 表名 drop 列名;

4.删除
删除数据库:

drop database 数据库名;

删除表:

drop table 表名;

5.使用数据库
查询当前正在使用的数据库名称

select database();

使用数据库

use 数据库名称;

DML数据操纵语言
1.添加数据

insert into 表名(列名1,列名2,...列名n) values (值1,值2,...值n);

1).列名和值要一一对应。

2).如果表名后,不定义列名,则默认给所有列添加值。

insert into 表名 values(值1,值2,...值n);

2.删除数据

delete from 表名 (where 条件);

3.修改数据

update 表名 set 列名1 = 值1,列名2 = 值2,...(where 条件);

DQL数据库查询语言
语法:
select
  字段列表
from
  表名列表
where
  条件列表
group by
  分组字段
having
  分组之后的条件
order by
  排序
limit
  分页限定
  
1.查询表中所有内容

select * from 表名;

2.基础查询
1)多字段查询

select 字段名1,字段名2...from 表名;

2)去除重复

distinct

3.条件查询
where子句后跟条件。

4.排序查询

order by 排序字段1 排序方式1,排序字段2 排序方式2... 

ASC:升序,默认的
DESC:降序

5.聚合查询:将一列数据作为一个整体,进行纵向的计算。一般选择非空的列
count 计算个数
max:计算最大值
min:计算最小值
sum:计算和
avg:计算平均值

select 属性1,count(*) from 表名;

6.分组查询

语法:group by 分组字段

where 和 having的区别?

where 在分组之前进行限定,如果不满足条件,则不参与分组。having在分组之后进行限定,如果不满足结果,则不会被查询出来。
where 后不可以跟聚合函数,having可以进行聚合函数的判断。

7.分页查询
语法:limit开始的索引,每页查询的条数;

公式:开始的索引 = (当前的页码 - 1) * 每页显示的条数
–每页显示3条记录

SELECT * FROM student LIMIT 0.3; --第1页
SELECT * FROM student LIMIT 3.3; --第2页
SELECT * FROM student LIMIT 6.3; --第3页

约束
对表中的数据进行限定,保证数据的正确性、有效性和完整性。

1.主键约束:primary key :用于控件字段内容不能重复,但它在一个表只允许出现一个。
2.非空约束:not null
3.唯一约束:unique: 控件字段内容不能重复, 一个表允许有多个 Unique 约束。
4.外键约束:foreign key

自动增长:auto_increment

create table stu(
  id int primary key auto_increment,
  name varchar(20)
);

子查询
1.条件:一条SQL语句的查询结果做为另一条查询语句的条件或查询结果

2.嵌套:多条SQL语句嵌套使用,内部的SQL查询语句称为子查询。

三种情况
1.子查询是单行单列的情况:结果集是一个值,父查询使用:=、 <、 > 等运算符

-- 查询工资最高的员工是谁? 
select  * from employee where salary=(select max(salary) from employee);   

2.子查询是多行单列的情况:结果集类似于一个数组,父查询使用:in 运算符

 -- 查询工资最高的员工是谁? 
select  * from employee where salary=(select max(salary) from employee);    

3.子查询是多行多列的情况:结果集类似于一张虚拟表,不能用于where条件,用于select子句中做为子表

-- 1) 查询出2011年以后入职的员工信息
-- 2) 查询所有的部门信息,与上面的虚拟表中的信  息比对,找出所有部门ID相等的员工。
select * from dept d,  (select * from employee    where join_date > '2011-1-1') e where e.dept_id =  d.id;    

– 使用表连接:
select d., e. from dept d inner join employee e on d.id = e.dept_id where e.join_d

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
2008数据库实验 1.SQL SEVER 2000的系统工具、使用交互方式建库、建表 2.T—SQL的简单查询、连接查询 3.子查询及组合 4.数据控制、数据导入/导出、数据备份和恢复 实验1 SQL SEVER 2000的系统工具、使用交互方式建库、建表实验 实验目的和要求:了解SQL SEVER 2000的功能及组成,熟练掌握利用SQL SEVER 2000企业管理器和查询分析器创建数据库、表、索引和修改表结构及向数据库输入数据、修改数据和删除数据的操作方法和步骤,掌握定义数据约束条件的操作。 实验内容和步骤: (1)熟悉SQL SEVER 2000的界面和操作。 (3)熟悉企业管理器和查询分析器的界面和操作。 (3)创建数据库和查看数据库属性。 (4)创建表、确定表的主码和约束条件。 (5)查看和修改表的结构。 (6)向数据库输入数据,观察违反列级约束时出现的情况。 (7)修改数据。 (8)删除数据,观察违反表级约束时出现的情况。 实验2 T—SQL的简单查询、连接查询 实验目的和要求:,了解SQL语句的数据定义与数据更新功能,了解SQL语句的查询功能,掌握SQL中的数据定义语句的用法,熟练掌握SQL中的插入、修改和删除语句的操作,熟练掌握使用SQL语句进行数据库的简单查询、连接查询。 实验内容和步骤: (1)在SQL SEVER 2000的查询分析器里,用SQL语句建库、建表并插入记录。 (2)修改表结构,包括修改属性列的数据类型,增加新的属性列,删除已有的属性列。 (3)使用单个元组和多元组插入。 (4)简单查询操作,包括投影、选择、数据排序、模糊匹配查询等。如果结果不正确,要进行修改,直至正确为止。 (5)连接查询操作,包括等值连接、自然连接、一般连接、自身连接、外连接。 实验3 子查询及组合 实验目的和要求:了解SQL语句的查询功能,理解视图的概念。熟练掌握使用SQL语句进行数据库的嵌套查询及组合查询的操作;掌握视图创建语句和视图的使用方法,加深对视图作用的理解。 实验内容和步骤: (1)在DBMS的交互式环境里,用SQL语句建库、建表并插入记录。 (2)使用In、比较符和Exists操作符进行嵌套查询操作。 (3)分组查询,包括分组条件表达、选择组条件表达的方法。 (4)集合查询。 (5)使用视图创建语句建视图,通过视图查询数据 (6)带子查询的修改和删除 (7)通过视图修改和删除数据 实验4 数据控制、数据的导入/导出、数据库备份和恢复 实验目的和要求:掌握数据控制(安全性)的方法,了解SQL SEVER 2000的数据备份和恢复机制,掌握SQL SEVER 2000中数据库备份和恢复的方法。 实验内容和步骤: (1)使用SQL对数据进行安全性控制,包括授权和权利收回。 (2)查看授权和权利收回后的结果 (3)SQL SEVER 2000工具对表中的数据导出到其它格式的文件。 (4)将其它格式的文件数据导入到数据库中。 (5)使用SQL SEVER 2000工具创建一个数据库的备份(海量备份、增量备份)。 (6)使用SQL SEVER 2000工具及所创建的数据库备份恢复这个数据库

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值