Web学习历程记录(一)——数据库

这篇博客是作者Web学习历程的第一部分,主要介绍了数据库的基本概念,如DB和DBMS,以及数据库表的结构。文章详细讲解了SQL语言,包括其通用语法、分类(DDL, DML, DQL, DCL)以及各分类的具体操作,如创建、查看和删除数据库,表的操作,列的操作等。此外,还涉及了SQL约束,如数据完整性、主键约束、自动增长列、非空约束和唯一约束。最后,讨论了数据库的备份与恢复以及SQL查询的高级技巧,如分组、排序和聚合函数。" 133594329,19453730,Python获取服务器制造商与型号,"['Python', '服务器管理', '系统信息']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Web学习历程记录(一)

数据库

数据库(DB): 就是存储数据的仓库,本质是一个文件系统
数据库管理系统(DBMS): 指一种操作和管理数据库的大型软件
数据库表: 数据库中以表为组织单位存储数据。表中有行和列,我们叫做字段和记录

SQL语句

介绍

SQL全称结构化查询语言,是数据库的代码

通用语法

SQL语句可以单行或者多行书写,以分号结尾
可使用空格和缩进
SQL语句不区分大小写
可以使用/**/、#、- -完成注释
常使用数据类型 int(整型)、double(浮点型)、varchar(字符串)、date(日期)

分类

数据定义语言:DDL,用来定义数据库中的对象:数据库,表,列等
数据操作语言:DML,用来对数据库中表的记录进行更新
数据控制语言:DCL,用来定义数据库的访问权限和安全级别及创建用户
数据查询语言:DQL,用来查询数据库中表的记录

DDL

创建数据库
create database 数据库名 character set 字符集

查看数据库
show databases
show create database 数据库名

删除数据库
drop database 数据库名称

切换数据库
select database
use 数据库名


表操作

创建表
create table 表名( 字段名 类型(长度)[约束], 字段名 类型(长度)[约束]);

查看表
查看数据库中的所有的表
show tables;
查看表结构,查看表中的列
desc 表名;

删除表
drop table 表名;

修改表
rename table 表名 to 新表名;


列操作

主要是操作表中的列

添加
alter table 表名 add 列名 类型(长度)[约束];

删除
alter table 表名 drop 列名

修改列名
alter table 表名 change 旧列名 新列名 类型(长度)[约束];

修改列的类型长度及约束
alter table 表名 modify 列名 类型(长度) 约束;

修改表的字符集
alter table 表名 character set 字符集;

DML

插入表记录:insert
insert into 表(字段1,字段2...) values(值1,值2...),(值1,值2...)...;
insert into 表 values(值1,值2...),(值1,值2...)...;
insert into 表 value (值1,值2...)

注意:
值与字段必须对应,个数相同,类型相同
值的数据大小必须在字段的长度范围内
除了数值类型外,其他的字段类型的值必须使用引号
如果要插入空值,可以不写字段,或者插入null

INSERT INTO category(cid,cname) VALUES('c001','食品');
INSERT INTO category VALUES('c002','首饰'),('c003','日用品');
INSERT INTO category VALUE(NULL,'','');

更新表记录:update
update 表名 set 字段名 = 值,字段名 = 值,.. where 条件

删除表记录:delete

一条一条删,不清空auto_increment
delete from 表名 where 条件;
直接将表删除,重新建表,auto_increment清零
truncate table 表名;

中文乱码问题
set names gbk

DQL

select *|列名1,列名2 from 表 where 条件;

distinct 去掉重复值
select distinct 列名 from 表 where 条件;

别名查询
select * from 表名 as 别名;
select 列名 as 别名 from 表名;

条件查询

运算符名称运算符
算数运算符+,-,*,/
比较运算符=,<,>,<=,>=
集合运算符in,not in(判断一个值在不在集合里)
范围判断符between…and…
模糊匹配like(?或_ 任意一个字符,*或%任意多个字符)
测试空值is[not]null
字符串连接符&
取模运算符mod
SQL语句查询

排序
通过order by语句,可以将查询出的结果进行排序。放置在select语句的最后

ASC 升序(默认)
DESC 降序
select * from 表名 order by 排序字段 ASC|DESC

聚合
对查询后的结果的列进行计算,然后返回一个单一的值

count:统计指定列不为null的记录行数
sum:计算指定列的数值和,如果指定列类型不是数值类型,那么计算返回结果为0
max:计算指定列的最大值,如果指定列是字符串类型,那么使用字符串排序运算
min:计算指定列的最小值
avg:计算指定列的平均值,如果不是数值类型,那么计算结果为0

分组
使用group by对查询信息进行分组
select 字段 from 表名 group by 分组字段 having 分组条件;

having和where的区别
having是在分组后对数据进行过滤
where是在分组前对数据进行过滤
having后面可以使用统计函数过滤数据
where后面不可以使用统计函数

分组查询
m表示从第几条索引开始,计算方式(当前页 - 1)* 每页显示条数
n表示查询多少条数据
select 字段 from 表明 limit m,n;

数据库的备份与恢复

备份数据库

mysqldump -u用户名 -p 数据库名字 > 数据文件的位置

恢复数据库

mysql -u用户名 -p 数据库名字 < 数据文件的位置
source 数据文件的位置

SQL约束

数据完整性

添加数据完整性 = 添加表约束
分类
实体完整性:对数据进行约束,比如主键约束,唯一约束
域完整性:对数据列的约束,比如该列的数据类型,默认约束,非空约束
引用完整性:外键约束

主键约束

primary key 约束唯一标识数据库表中的每条记录
主键必须是唯一的值
主键列不能是null
每个表都应该有且只有一个主键

添加主键约束

创建表时,在字段描述外,声明指定字段为主键
id int primary key;

创建表时,在constraint的约束区域,声明指定字段为主键
constraint 名称 primary key (字段列表)
constraint 可以省略
字段列表需要使用小括号括住,如果有多字段需要使用逗号隔开,声明两个以上字段为主键,称为联合主键
constraint id primary key(fid,lid);

创建表之后,通过修改表结构,声明指定字段为主键
alter table 表名 add (constraint 名称) primary key(字段列表)

删除主键约束

alter table 表名 drop primary key

自动增长列

auto_increment
默认开始值是1,如果希望修改起始值
alter table 表名 auto_increment = 数字

非空约束

not null
ip int not null;

唯一约束

unique 约束唯一标识数据库中每条记录
每个表可以有多个unique约束

默认约束
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值