本帖最后由 dcs68李文辉 于 2021-11-21 20:37 编辑
数据库(Database)简称DB,是指存放数据的仓库
数据库管理员(Database administrator)DBA数据库管理员,是负责对数据进行规划,设计,协调,维护和管理的人员。
数据库管理系统(Database Management System)DBMS是指数据库系统中对数据进行管理的软件系统,是数据库系统的核心。
数据库系统(Database System DBS)用来操纵和管理DB的软件用于简历,使用和维护DB
人工管理数据很难被永久保存,很难管理,文件系统程序和数据都具有了独立性,有文件系统来长期保存。
数据库技术正是在人们对数据管理技术提出更高需求的基础上发展起来的。
关系型数据库:SQL 是建立在关系模型的基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据
非关系型数据库:NoSQL 使用键值对存储数据,是一种数据结构化的存储方法的集合
关系型数据库有:Oracle:甲骨文公司开发,作为大型企业的数据库。 端口号为1521
SQL Server:微软公司开发,作为中型企业的数据库 端口号为1433
PostgreSQL: 加州大学伯利克分校计算机系开发 端口号:5432
DB2:由IBM公司开发,适用于IBM硬件平台信息化项目 端口号:5000
mysql:由mysql AB公司开发,被oracle公司收购
非关系型数据库:MongoDB 默认端口号:27017 是一个基于分布式文件存储的数据库,由C++语言编写
Redis:默认端口号:6379 是一个由Salvatore Sanfilippo 写的,通常被称为数据结构服务器非关系型数据库优点:高可扩展性,分布式计算,低成本,没有复杂的关系,架构的灵活性,半结构化数据,读写性能好
缺点:有限的查询功能,不支持SQL,没有标准华,功能不够完善。
DDL:数据定义语言
create:创建
alter:更改结构
drop:删除
DCL:数据库控制语言
grant:授予访问权限
revoke:撤销访问权限
commit:提交事务
DML:数据库操纵语言
insert:添加数据到数据库中
update:修改数据库中的数据
delete:删除数据库中的数据
DQL:数据查询语言
select:查询数据库中的数据
数据库在web中的风险
1.非法读取,篡改,添加,删除数据库中的数据
2.通过修改数据库来修改网页上的内容;私自添加或删除账号
3.注入木马,提取权限。
常见的登录参数
参数 描述 -u 用户名 -p 密码 -P 端口号 -h 主机地址(服务器名称) -D 指定数据库 表权限:'select', 'insert', 'update', 'delete', 'create', 'drop', 'grant', 'references', 'index', 'alter' 列权限:'select' 'insert', 'update', 'references' 过程权限:'execute', 'alter routine' 'grant' 只备份数据库,不备份表,并恢复 备份:mysqldump -u 数据库名 -p 密码 数据库名>存储路径 恢复:mysql -u 数据库名 -p 密码 数据库名 < 存储路径 注意:恢复是确保指定数据库数已存在的 查询所有数据库名 show databases; 查询所有的表名: show tables; 同时增加多个字段 alter table 表名称 add (字段1,字段2); 删除指定的单个字段或者多个字段 alter table 表名称 drop 字段名称; #单个 alter table xiaoli drop id; alter table 表名称 drop 字段名称,drop 字段名称;#多个 alter table xiaoli drop id,drop name; drop table 表名称 drop table xiaoli;删除xiaoli这个表 删除后当前xiaoli表不存在 创建表增加主键和自增长约束 create table dcs68(id int(4)primary key auto_increment,name char(10),scroe int(4)); 给没有主键的表增加主键和自增长 alter table xiaoli change id id int(5)primary key; alter table xiaoli change id id int(5)auto_increment; 删除主键和自增长 如果你要删除主键必须要先删除自增长约束 alter table xiaoli change id id int(5);删除id中的自增长 alter table xiaoli drop primary key;删除主键 创建一个表 creat table 表名称(字段 约束); create table dcs(id int(3),name char(10),age int(4));#创建一个表名称dcs 查询表结构 desc +表名 creat table 表名称(字段 约束); create table dcs(id int(3),name char(10),age int(4));#创建一个表名称dcs insert into 插入数据 select * from 表; 查询 delete from 表 删除 表中增加数据: 结构:id ,name ,age ,scroe insert into stu(id,name,age,scroe)values(1,'zhang',20,89); #增加一行数据 insert into stu values(2,'wang',19,100),(3,'lisi',20,99);#增加多行数据 insert into xiaoqian(name,age)values('zng',22),('ang',21),('wang',31);#自增长和主键同时插入多行数据 查询数据 select * from 表名称 查询所有数据 删除表的数据 delete from stu where id=4;#删除表中id=4的这一行的数据 delete from stu;删除整个表中的所有数据 备注:delete只能删除表数据,不能删除表结构,如需要删除表结构需要用drop table 删除整个表的数据: truncate xiaoli; 备注:truncate只能删除表数据,不能删除表结构,如需要删除表结构需要用drop table 修改表数据: update 表名称 set 修改的值 where 条件指定; update xiaoli set name='zhang' where id=1;#把id=1这一行的姓名改为zhang update xiaoli set name='xiaoqian';#把所有的姓名都改为xiaoli 查询所有: select * from 表名称; select * from stu;查询stu表中的所有内容 通过条件查询某个条件的值: select * from 表名称 where 条件; select * from stu where name='xiaoqian';查询姓名是xiaoqian的所有内容 通过条件查询满足几个条件的内容: select * from 表名称 where 条件 and 条件; select * from stu where name='qian' and age=20;查询满足姓名是qian年纪是20的数据 大于> select * from stu where scroe>60; 大于60分所有信息 小于> select * from stu where scroe<60;小于60分所有信息 等于= select * from stu where scroe=60;等于60分所有信息 大于等于>= select * from stu where scroe>=60;大于等于60分所有信息 小于等于<= select * from stu where scroe<=60;小于等于60分所有信息 不等于!= select * from stu where scroe !=60;不包含60分的所有信息 in指定具体的值 select * from stu where scroe in(60,88,99);指定的值有就显示,没有就不显示 查询张三的信息,告诉张三的年纪的多少? select * from stu where name='张三'; select age from stu where name='张三';
类型 大小 用途
char 0-255字节 定长字符串
varchar 0-65535字节 定长字符串
tinyblob 0-255字节 不超过255个字符的二进制字符串
tinytext 0-255字节 短文本字符串
blob 0-65535字节 二进制长文本字符串
text 0-65535字节 长文本数据
还有float,double,decimal的单双精度的小数格式
还有日期类型的date,time,year,datetime,timestamp
整体性约束条件
约束是一种限制,他通过对表的行或者列的数据做出限制,确保表的数据的完整性,唯一性。
primary key 主键约束 说明:非空,唯一,用于唯一标识对应的记录。类似身份证。
foreign key 外键约束 说明:用于表与表建立关系模型,使表与表紧密的结合起来。
not null 非空约束 说明:字段值不能为Null
default 默认值约束 说明:默认给字段指定默认值
auto_increment 自增约束 说明:作用在整数类型,字段默认从1开始自增
表名称:dcs
序列号,姓名,年纪,性别,班级
create table dcs(id int(4),name char(8),age int(3),sex char(2),class int(4));
查看表结构:desc dcs;查看表结构
表结构的增删改查:
查询:desc +表名称;(查询表结构)
创建:create table(创建表结构)
改表名称:alter table dcs rename xiaoqian;(把表dcs名称改为xiaoqian)
改表字段名称:alter table dcs change id s_id int(4);(把dcs表中的id字段名称改为s_id名称)
增加字段:alter table dcs add class int(4);(给dcs增加一个表字段class默认放在末尾)
增加字段放在最前面:alter table xiaoqian add id int(4)first;
增加字段放在某个字段的后面:alter table xiaoqian add sex char(2)after age;
查数据表:select字段名1,字段名2,..... from 表名;
消除值重复行
select distinct 字段名 from 表名
查询经计算的值
select 经过计算的列名 from 表名;
运算符:> < >= <= = != IS(NOT)NULL判断一个值是否为空或者不为空
BETWEEN ...AND 判断一个值是否在两个值之间
(NOT)IN 判断一个值是否是IN列表中的值
LIKE 通配符匹配
名称 描述
asb() 返回数值的绝对值
floor() 返回不大于数值的最大整数
acos() 返回参数的余弦值
asin() 返回数值的正弦值
pow(x,y) 返回x的Y次方
round() 返回离参数最近的证书
ranb() 返回0-1的随机数
聚合函数
名称 描述
avg() 返回某列的平均值
count() 返回某列的行数
max() 返回某列的最大值
min() 返回某列的最小值
sum() 返回某列的和
|