目录
第一章:数据库设计
第三章:逻辑设计
第五章:关系型数据库体系结构p52
第六章数据库的创建与管理盘P70
第八章表数据的创建与维护p97
1.插入数据:
2.查看表的数据:
3.修改数据:
4.删除数据:
5.完整性约束p109
第九章数据查询
1查询操作的五种基本操作为:
2运算的三大操:
3查询:
4查询消除重复行:
5group by:
6order by/asc/desc:
7having
8limit
9多表连接:
10子查询:
第十一章锁和事务
1排它锁(X锁):
2.共享锁(S锁):
3.2事务(Transact)
第十三章备份与恢复
第十四章索引
第十五章视图
第一章:数据库设计
1.数据库设计的步骤:需求分析,概念结构设计,逻辑结构设计,物理结构设计,数据库实施,数据库运行和维护。
概念模型是现实世界到机器世界的一个中间层次,是现实世界的第一个层次抽象,是用户与设计人员之间进行交流的语言。
1、需求分析:了解用户的数据需求、处理需求、安全性及完整性要求; 2、概念设计:通过数据抽象,设计系统概念模型,一般为E-R模型; 3、逻辑结构设计:设计系统的模式和外模式,对于关系模型主要是基本表和视图; 4、物理结构设计:设计数据的存储结构和存取方法,如索引的设计; 5、系统实施:组织数据入库、编制应用程序、试运行; 6、运行维护:系统投入运行,长期的维护工作。
第三章:逻辑设计
概念模型向关系模型的转换p27
E-R概念设计步骤
第五章:关系型数据库体系结构p52
- 数据:是数据库中存储的基本单元,是一种描述事物的符号。例如:数字、文字、图案、视频等信息,都可以称为数据。
- 数据库(DB):是长期存储在计算机内、有组织的、可共享的、统一管理的数据的集合。
- 数据库管理系统(DBMS):是位于用户应用程序与操作系统之间的一层数据管理软件,是数据库系统的核心组成部分。它为用户或应用程序提供访问数据库的方法,包括数据库的建立、查询、更新以及各种数据控制。
第六章数据库的创建与管理盘P70
- 创建数据库:create database 库名;
- 查看数据库:show databases;
- 选择数据库:use 库名;
- 删除数据库:drop database 库名;
- 表的创建与管理盘P76
- 查看MySQL数据库支持的存储引擎类型:show engines;
- 创建表:create table 表名(........);P90
例如:CREATE TABLE dept (
dept_id int(11) NOT NULL AUTO_INCREMENT,
dname varchar(22) DEFAULT NULL,
PRIMARY KEY (dept_id),
UNIQUE KEY dname (dname)
);
- 查看表结构:desc 表名;
- 查看表的详细结构:show create table 表名;
- 修改表名:alter table 旧表名 rename 新表名;
- 修改字段的数据类型:alter table 表名 modify 属性名 数据类型;
- 修改字段名及数据类型:alter table 表名 change 旧属性名 新属性名 新数据类型;
- 增加字段:alter table 表名 add 属性名 数据类型;
- 删除字段:alter table 表名 drop 属性名;
- 更改表的存储引擎:alter table 表名 engine=存储引擎;
- 删除表:drop table 表名;
1.插入数据:
1.1.按顺序插入数据:insert into 表名[列名1,列名2,列名3,列名4....]values(值1,值2,值3....)(值与列名一一对应)
1.2不指定字段名,按默认顺序插入数值:insert into 表名values(值1,值2,值3....);
2.查看表的数据:
select * from 表名;
3.修改数据:
update 表名 set 字段名1=修改后的值1[字段名2=修改后的值2,...] where 条件表达式;
4.删除数据:
4.1删除指定行:delete from 表名 where 条件表达式;
4.2删除所有行:delete from 表名;(复制表:create table 新表名 like 旧表名;
5.完整性约束p109
5.1主键约束:primary key
5.2唯一性约束:unique key
5.3外键约束:foreign key ....references
5.4默认值约束:defalut
5.5自动增长:auto_increment
第九章数据查询1查询操作的五种基本操作为:
选择、投影、并、差、笛卡尔积
2运算的三大操:
运算对象、运算符、运算结果
3查询:
select * from 表名;
4查询消除重复行:
select distinct 属性名 from 表名;
5group by:
依据字段对行分组统计,因此同类汇总成为一行。
6order by/asc/desc:
可以保证结果中的行按一定顺序排列;ASC:升序排列;DESC:降序排列;
7having
hanving与where相似,而having用来在group by子句后选择行;
例如:选修了1门课以上课程的学生学号:select s_no from score group by s_no having count(s_no)>1;
8limit
limit{【偏移量,】行数|行数offset偏移量};
limit 5:返回select语句的结果集中最前面的5行;limit 3,5:从第4行开始返回9行。
9多表连接:
select 表1的属性名,表2的属性名 from 表1,表2 where 表1的某属性=表2的某属性;
10子查询:
SELECT s_ no,S. name FROM students WHEREEXISTS(SELECT* FROM score
WHERE students.s_ no-score.s. no AND report<60) ;p136
1排它锁(X锁):
当数据对象被加上排他锁,其他事务不能对它进行读取和修改
2.共享锁(S锁):
共享锁的数据对象可以被其他事务读取,但不能修改。
3.1行级共享锁(读锁)的演示:
3.1.1查看提交方式:show variables like 'autocommit';
3.1.2若为自动提交,修改:set autocommit=0;关闭自动提交
3.1.3窗口A给的一条记录上读锁:select * from student where sno=’101’ lock in share mode;
3.1.4打开另外一个窗口B,进行写操作:update student set address=address where sno=’101’;
3.1.5窗口A提交查询结束:commit;
3.1.6窗口执行。
3.2事务(Transact)
是指一个逻辑单元的工作,要么全部执行要么全部不执行,这是一个不可分割的工作单位。
3.2.1事务的特性:原子性、一致性、隔离性、持久性。
3.2.3开启事务:start transaction;
3.2.4 修改账户余额:update account set balance=balance-500 where id=1;
3.2.5查询数据:select * from account;
3.2.6提交事务:commit;
3.2.7.回滚事务:rollback;
4.ER图
第十三章备份与恢复1.1备份一个:>mysqldump -u root -h localhost -p 189000216 scmdb>D:\copy\scmdb.sql
1.2备份几个库:>mysqldump -u root -h localhost -p 189000216 --databases
student emp>D:\copy\studentandemp.sql
1.3数据库恢复: MySQL - u 主机名 -p 登陆密码 数据库名<备份文件
1.3.1例子:mysql -u root -p 189000216 scmdb<D:\copy\scmdb_new.sql
1.4备份一个库:mysqldump -u root -h -p 数据库>路径.文本.sql
1.5备份多个库: ..... databases 1,2,......
1.6备份所有数据库 ......all -databases ...........
1.7备份表?: 数据库 tabel
表的导出和导入
2.1 select [列名] from table
索引是对数据库表中一列会多列的值进行排列的一种结构,使用索引可提高数据库中特定数据的查询速度。
第十五章视图视图是从一个或多个表中导出来的表,是一种虚拟的表。(不储存数据,只储存对表的定义)