数据库学习入门数据库基础Word下载.docx
- 文档编号:5739297
- 上传时间:2023-05-05
- 格式:DOCX
- 页数:28
- 大小:32.03KB
数据库学习入门数据库基础Word下载.docx
《数据库学习入门数据库基础Word下载.docx》由会员分享,可在线阅读,更多相关《数据库学习入门数据库基础Word下载.docx(28页珍藏版)》请在冰点文库上搜索。
DDL:
createtable//创建表
alter//修改表
droptable//删除表
create index//创建索引
dropindex//删除索引
createview //创建视图
dropview //删除视图
DCL:
grant//授权
revoke //撤销授权
set//设置
2、不同数据库得独特管理方式
.DBA(DatabaseAdministrator)
SQL(结构化查询语言)
2、不同数据库得独特管理方式
3、数据库得调优
4、精通数据库得备份、回复机制
—---———-—---—-——-—--——-—--——-
MYSQL得安装与配置
—-————----——-—---———---——---
安装:
选择普通安装类型
、配置
1、选择配置类型:
Detailed Configuration
2、选择服务器类型:
DeveloperMachine
3、选择数据库得就是使用情况:
——多功能数据库(MultifunctionalDatabase)
——只就是事务处理数据库(TransactionalDatabaseOnly)
--只就是非事务处理数据库(Non—TransactionalDatabaseOnly)
4、InnoDB表空间文件存储得盘符,默认在c:
\
5、数据库并发连接数配置:
Decisionsupport
6、MYSQL服务器端口:
默认:
3306
7、EnableStrict Mode:
就是否允许严格样式检查:
取消
8、选择字符编码:
手工选择:
gb2312,windows下中文支持
9、服务器默认安装到windows系统服务中,默认服务自启动,选择自动配置环境变量
10、填写数据库管理系统得管理员密码
—-在mySQL中数据库管理员得用户名为:
root
11、就是否允许使用root用户远程登录数据库
12、测试配置就是否正确c:
\>
c:
\mysql\bin\mysqlshow
-—---——---——---—-——--—-—
MYSQL得登录
-—--—-——---—--——-—--—---
、开始--运行--cmd
.输入:
mysql-uroot-p,然后输入密码
。
或者:
mysql -uroot—p密码
、退出quit或者\q
——不必全在一个行内给出一个命令,较长命令可以输入到多个行中。
mysql通过寻找终止分号而不就是输入行得结束来决定语句在哪儿结束
—〉等待多行命令得下一行
'>
等待下一行,等待以单引号开始得字符串结束
如果您决定不想执行正在输入过程中得一个命令,输入\c取消它
能够以大小写输入关键词,结果就是等价得
-—-————----—--—-—-——
基本得SQL语句
----———-----—----—--
创建数据库-——create databaseschool;
查瞧有哪些数据库-—showdatabases;
删除数据库--—drop databaseschool;
——-——---—--—-——-——----—---
向数据库中存储数据
——---—----—-—--—---—---—-—
1、首先进入数据库usedbname;
use类似quit,不需要一个分号,写也无碍
use必须在一个单行上给出
2、查瞧数据库中得表show tables;
3、在数据库中创建表create tablestudent
(name varchar(20),ageint,sexchar
(2));
4、向表中插入数据—-—insertintodbnamevalues(‘张三'
18,‘男’);
5、查瞧表中所有得数据—-select* fromstudent;
只查瞧姓名与年龄---selectname,age fromstudent;
—-—---—--—---—--——-—
常用得数据类型
-----——-—---—-----——
char(M)固定长度字符
用来表示固定长度字符串,字符串得长度就是1-255
VARCHAR(M)可变长度字符
具有灵活性得字符数据类型,范围:
1-255
处理char类型得数据比varchar类型得数据要快,有时会快50%(char类型存储得数据得长度就是声明变量时得固定长度,而不管数据得实际长度,varchar存储得就是按数据得实际长度,从而减小了数据文件得大小)
int整数 有符合得范围:
-2147483648到2147483647,无符号范围:
0到4294967295
--—-—--------—--—-——---——-
其她常用得数据类型
-------——-----——-——-------
DATE—-—日期类型,显示‘YYYY—MM-DD’
DATETIME--日期与时间得组合,显示‘YYYY-MM—DD HH:
MM:
SS’
TEXT/BLOB 文本与大对象
TEXT可以保存字符串得长度在255-65535字节内。
BLOB就是一个能保存二进制数据得大对象,区别就是TEXT不区分大小写,而BLOB区分大小写。
SQL语句得导入
1、编写SQL脚本(.sql)
2、导入mysql-uusername -p<
***。
sql
&练习:
&
老师表:
teacher
&姓名,性别,年龄,课程
导出sql脚本--—mysqldumpstu-uroot—p〉abc。
sql
查瞧表得结构-————-desc tablename
修改表中得数据---updatetablenamesetcolname=value where条件
删除数据-—---deletefromteacherwhereage=?
删除表中所有数据—--delete fromteacher;
删除表-——drop tabletablename
根据条件进行过滤查找-—-select*fromtablenamewhere 条件
查找出版社为“清华出版社”得所有书籍---select*from books where pub=‘清华出版社’;
查找出库存大于50得所有书籍—-—select*from bookswherestore〉50;
查找出“西游记"
得库存量---selecttitle,storefrom bookswheretitle=‘西游记’;
SQL运算符
〉大于<
小于 >
=大于等于 <=小于等于!
=,<
>
不等于
查瞧数据库得信息----\s
-—-—-———-——-—-—-——-
mysql常用函数
------—---————-—---
1、查瞧数据库版本-——selectversin();
计算机得时间就是存在BIOS()
2、查瞧当前数据库得日期-—--selectcurrent_date();
3、查瞧当前数据库时间-——-selectnow();
4、查瞧当前连接数据库得用户---selectuser();
localhost:
代表就是本机
createtable user(idint,namevarchar(20),birdate,deadatetime);
insertintouservalues(1,'
zhangsan',now(),now());
or与and查询
or(满足一个条件)
and(都需要满足)
查找学生EQ为80分或90分得学生
select*fromstu whereEQ=80orEQ=90;
查找学生EQ为90分并且性别为女得学生
select*from stu whereEQ=90andsex='
女';
in(x,x)返回条件中得记录与or作用相似
select *fromtablenamewhere条件in(,);
between‘’and‘’返回两者之间得记录
查询年龄在20-30之间得所有学生
select *fromstuwhereagebetween 20and30;
like与通配符(%)一起使用,模糊查询
查找出姓张得学生
select *fromstuwherenamelike ‘张%’;
查询出使用163邮箱得所有学生
select *fromstuwhere email like‘3。
com’;
查询出邮箱里面含有a得所有学生
select* fromstuwhereemaillike ‘%a%’;
order by实现排序(从小到大)—-asc
将学生得年龄从高到低排列
select*fromstu orderbyagedesc;
(降序)
将学生得年龄从低到高排列
select* fromstu orderbyageasc;
(升序)
数据默认为升序(从低到高)
select *fromstu orderbyage;
as为查询得列起别名
1、查询所有学生只列出姓名,年龄,性别
selectnameas'
姓名’,ageas'年龄'
sexas ’性别'
fromstu;
groupby对于查询出得数据结果进行分类(分组)
2、将学生按性别进行分类
select* fromstugroupby sex;
将学生按年龄进行分类
select* fromstugroupbyage;
3、having子查询:
对于where查询出得结果再次进行查询
查找出年龄大于20岁学生,并且在其中找出姓名等于xxx得学生
select* fromstuwhereage 〉20havingname=’xxx'
或
select* from stuwhereage〉20and name='xxx'
4、distinct过滤查询得重复型记录,只显示唯一得记录
将学生性别过滤
select distinct(sex)fromstu;
count查瞧表中有几条数据
selectcount(*)fromstu;
selectcount(distinct(sex))fromstu;
limit 限制查询结果得输出数量同时也可以实现数据得分页
查询EQ前三名得学生
select * fromstu orderbyEQdesclimit3;
实现查询记录得分页
select*fromstu limit0,3;
select* fromstulimit3,3;
约束—-—-定义了表级得强制规则、数据得完整性
非空约束(not null) createtable test(id intnotnull);
insert intotestvalues();
innodb 会报错,myISAM会整形默认以0填充
唯一约束(UNIQUE) 不允许列中得数据重复
createtabletest(id int,unique(id));
insertinto test values
(1);
默认约束(default)createtable test(idintnotnulldefault'111111'
);
insertintotest values();
主键约束(primarykey)就是一个字段或一组字段(组合键),用于唯一标识表中得记录,它可以 确保每个记录就是唯一得。
createtabletest(idint,primarykey(id));
insert intotestvaluse
(1);
id主键自增,减
create table test(idint,namevarchar(20),primary key(id));
insertintotestvalues(1,'张安');
auto_increment得特点----—-—自增值当删除某一值时,她不会自动填充,而就是继续自增1
createtabletest(idintnot nullauto_increment,namevarchar(20),primarykey(id));
insertinto test(name)values('
xxx'
创建一个有合理约束得表
createtable people(id int notnullauto_increment,namevarchar(20) notnull,ageintnot null,sexchar
(2)notnull,pcode varchar(50),telvarchar(50),emailvarchar(50),primarykey(id));
insert intopeople(name,age,sex,email)values('
张三',‘28’,‘男'
''
查询出所有学生得档案信息
select*fromstudent,schoolwherestudent.daih=school、id;
select*from studentasa,schoolasbwherea。
daih=b.id;
查询所有学生档案信息 只需显示:
学生姓名,年龄。
毕业学校,学校地址
selectstudent。
name,student、age,school、name,school。
address from student, schoolwherestudent.daih=school、id;
selecta。
name,a.age,b、name,b。
address fromstudentasa, school asb where a。
daih=b.id;
外键约束( foreignkey)
如何创建外键
foreignkey:
定义子中得列为外键
references:
标记外键所要参考得父表与列
on deletecascade:
允许在删除父表得列得同时,删除子表得列//在InnoDB中支持
createdatebasefordb;
use fordb;
创建父表
create tableschool(idintnotnullauto_increment,namevarchar(20),primarykey(id))engine=innodb;
insertintoschool(name) values('紫琅学院’);
创建子表
createtablestudent(idint notnullauto_increment,namevarchar(20),schoolidint,primarykey(id),foreignkey(schoolid)referencesschool(id) ondeletecascade);
insert into student(name,schoolid)values('张三'
1);
E-R模型
概述:
设计数据库时,通常采用"
实体关系模型“—-E—R模型
软件开发流程:
需求调研(设计功能,收集数据)
与最终用户进行确定
数据库得设计
控制多余数据
那么在最后,数据库设计者确定表、不同表之间得关系以及每个表之间得关系,通常使用”E-R模型“,它将整个系统瞧作彼此相关得实体组成
实体:
通常用于表示能够被清晰识别得人、地点、事物、对象、事件
实体关系图:
如果需要 基于‘E-R'
模型建立数据库模型,需要标识实体,实体得属性、以及实体之间得关系。
那么通常用‘E-R’图来表示
实体之间得三种类型:
1:
11:
N或N:
1M:
N
数据库设计员确定得实体被转换为表,而其属性则成为相应表中得字段(列)
如何控制冗余数据:
一般来说通过数据库得范式理论
设计数据库得范式来 控制冗余
共有五个范式,一般达到第三范式即可
第一范式:
对于表中得每一行,必须且仅仅有唯一得行值,在一行中得每一列仅有唯一得值并且具有原子性
第二范式:
要求非主键列就是主键得子集,非主键列活动必须完全依赖整个主键。
主键必须有唯一性得元素,一个主键可以由一个或更多得组成唯一值得列组成、一旦创建 ,主键无法改变,外键关联一个表得主键、主外键关联意味着一对多得关系、
第三范式:
要求非主键列互不依赖
第四范式:
禁止主键列与非主键列一对多关系不受约束
第五范式 :
将表分割成尽可能小得块,为了排除在表中所有得冗余
MYSQL得聚合函数
1、最大值
找出EQ最高得学生
selectname,eqfromstudentwhere eq=(selectmax(EQ)fromstudent);
SELECT MAX(article)AS articleFROMshop;
2、最小值
找出EQ最低得学生
selectname,min(EQ)fromstudent;
count()//统计查询出得记录总数
3、查询出学生得总条数
selectcount(name)from student;
avg()//求平均值
4、查询学生EQ得平均值
selectavg(EQ)fromstudent;
sum()//求与
5、查询学生EQ得总与
selectsum(EQ)from stu;
修改字段类型
alter table studentmodify sex char(5);
增加列
altertablestudent add addressvarchar(50);
删除列
altertablestudent drop address;
修改列得名称
alter tablestudent changenamenamesvarchar(20);
修改表得名字
renametablestudent tostu;
MYSQL 之表连接
内链接(innerjoin):
又为等值连接,因为她将两个表中得公共字段有相等得值(记录)连接起来,这就是最常用得连接。
一个表引用还被称为
查询显示:
订单编号,顾客姓名,物品名称
selectcases.id,user。
name,goods、name fromcases,user,goodswherecases.user_id=user.idandcases、goods_id=goods、id;
selectcases。
id,user、name,goods、namefromcasesinner join(user,goods)on(user。
id=cases。
user_idandgoods。
id=cases。
goods_id);
select cases、id,user、name,goods.namefrom(casesinner join useroncases。
user_id=user、id) innerjoingoodson cases。
goods_id=goods。
id;
selectcases、id,user.name,goods、namefromuserinnerjoin(casesinnerjoingoodsoncases、goods_id=goods。
id)on user.id=cases.user_id);
左连接:
显示sql语句中left join左边表中得所有记录,即使在leftjoin右边得表中没有满足连接条件得数据也被显示。
当满足连接条件时,leftjoin右边得表中得相应得记录与leftjoin左边表中得相应记录结合显示、
查询出:
学生得编号,学生姓名,学生学校
select student.name,student.id,school、name fromstudentleftjoinschoolonstudent.school_id=school。
右连接:
与左连接相对应,她显示sql语句中rightjoin
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 学习 入门 基础