数据库基础

数据库基本概念

数据模型的三要素:数据结构、数据操作、数据约束
数据库(DB)
数据库管理员(DBA)
数据库管理系统(DBMS)
数据库系统(DBS)=DB+DBMS+DBA+应用程序

数据库的发展阶段

人工管理——>文件系统——>数据库系统

数据库系统的特点

数据结构化
数据安全性和完整性保障
数据的高独立性
数据由DBMS统一管理和控制
易于使用
便于扩展

LAMP

LAMP即linux操作系统+apacheHTTP服务器+Mysql数据库+php/perl/python,一般用来建立web应用平台
在这里插入图片描述

数据库在web中的风险

弱密码

在这里插入图片描述

sql注入攻击

sql注入攻击的影响:
1.非法读取、篡改、添加、删除数据库中的数据
2.通过修改数据库来修改网页内容;私自添加或删除账号
3.植入木马

sql语言

包含四个部分:

DQL:数据查询语言
DML:数据操纵语言
DDL:数据定义语言
DCL:数据控制语言

DDL的关键字

create table:创建数据库表
alter table:更改表结构、添加修改列长度
drop table:删除表
create index:在表上创建索引
drop index:删除索引
drop database:删除库

DCL的关键字

grant:授予访问权限
revoke:撤销访问权限
commit:提交事务
roolback:回退事务

DML的关键字

insert:添加数据到数据库中
updata:修改数据库中的数据
delete:删除数据库中的数据

DQL的关键字

select:查询数据库中的数据

常用数据库

在这里插入图片描述

oracle数据库

使用PL/SQL语言执行各种操作
默认端口号:1521

SQL server数据库

微软开发的大型关系数据库系统
默认端口号:1433

优点:

功能全面,效率高
可与windows系统紧密集成,开发速度与运行速度高

缺点:

只能在windows下运行

MySQL数据库

默认端口号:3306

特点

开源,无需付费
可在多个系统上运行,并支持多种语言

PostgreSQL

默认端口号:5432

DB2数据库

IBM公司开发
默认端口号:5000

特点

较好的可伸缩性
可支持从大型机到单用户环境
应用于unix、linux、windows等平台下

Access数据库

小型桌面数据库
可供个人管理或小型企业使用

特点

完善管理各种数据库对象
强大的数据处理功能
方便的生成各种数据对象,利用存储的数据建立窗体和报表
与office集成
能利用web检索和发布数据,实现与internet的链接

MongoDB数据库

非关系型数据库
默认端口号:27017

在这里插入图片描述

MySql使用

登录

参数描述
-u用户名
-p密码
-P端口号
-h主机地址

初始账户和密码都为:root

常用命令

mysql初始自带四个数据库,分别为:mysql、information_schema、test、performance_schema。

information_schema主要存储数据库对象相关概要(schema)信息

在这里插入图片描述
Mysql在linux中严格区分大小写。Windows中不区分大小写
查看信息:

show databases:查看有哪些数据库
use information_schema:进入information_schema数据库
show tables:查看数据库中的表
select database():查看当前所在的数据库
select version():查看数据库版本
select now():查看当前日期和时间
select user():查看当前用户
desc 表名:查看表中列的数据类型

对数据库操作

操作数据库:

创建数据库:create database 数据库名 charset 字符集;
删除数据库:drop database 数据库名;
修改数据库:alter database 数据库名 键值

字符串类型
在这里插入图片描述
整形的类型
在这里插入图片描述
浮点数、定点数
在这里插入图片描述
创建数据表:

create table 表名(
列名1 数据类型
列名2 数据类型
表级约束条件
);

枚举:“单选题”

enum(’男‘,’女‘);

集合:“多选题”

set(’选项1‘,’选项2‘,’选项3‘,…);

约束类型

约束类型非空约束主键约束唯一约束默认约束外键约束
关键字not nullprimary keyuniquedefaultforeign key

对表操作

修改表添加列:

alter table reader add email varchar(30);

在已存在的表中添加列,指定位置:

alter table 表名 add 新列名 数据类型 [约束条件] [first|after 列名];

修改列名:

alter table 表名 change 旧列名 新列名 新数据类型;

修改列的数据类型:

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

修改列的排列位置:

alter table 表名 modify 列名1 数据类型 first|after 列名2;

删除列:

alter table 表名 drop 列名;

修改表名:

alter table 旧表名 rename [to] 新表名;

删除表:

drop table 表名1,表名2;

插入数据:

指定列插入数据:
insert into 表名(列1,列2…)values(值1,值2…);
直接插入数据:
insert into 表名 values(值1,值2…);

对表中的数据操作

删除数据:

删除表中所有数据:delete from 表名;
删除符合条件的数据:delete from 表名 [where 条件];

更改数据:

update 表名 set 字段名=字段内容 [where 条件];

更改结构:

增加字段:alter table 表名 add 字段名 字段约束条件
删除字段:alter table 表名 drop 字段名
修改字段:alter table 表名 change 字段名 新字段名 字段约束条件
修改字段约束条件:alter table 表名 modify 字段名 字段约束条件

查询数据

select 列名 from 表名;

运算符
在这里插入图片描述
逻辑运算符
在这里插入图片描述

子查询

带in的子查询

例:select name from student where dept in (select dept from depts where name = ‘zhangsan’);

模糊查询:
1.% 代表零或多个字符,可用于定义通配符(模式中缺少的字母)
2._ 代表一个字符
去除重复列: distinct

常用函数

名称描述
avg()返回某列的平均值
count()返回某列的行数
max()返回某列的最大值
min()返回某列的最小值
sum()返回某列的和
ceil()返回大于x的最小整数值
floor()返回小于x的最大整数值
round(x)返回最接近于x的整数
round(x,y)返回最接近于x的数,保留到小数点后y位
truncate(x,y)返回被舍去至小数点后y位的数字x。若y=0,则为整数。
mod(x,y)返回x被y除后的余数
concat(s1,s2,s3…)连接参数产生的字符串,若任意参数为null则返回为null
concat(x,s1,s2…)以x为分隔符连接其他字符串,若x为null返回值也为null
lower(str)将str中的大写字母转换为小写
upper(str)将str中的小写字母转换为大写
length(str)返回字符串长度
ltrim(s)返回s,删除字符串左侧空格
rtrim(s)返回s,删除字符串左侧空格
trim(s)返回s,删除字符串两侧空格
substring(s,n,len)从s返回len长度的数据,以n为启示
left(s,n)返回字符串最左边的n个字符
right(s,n)返回字符串最右边的n个字符
curdate()返回当前时间
datediff(date1,date2)返回date1和date之间的天数
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值