数据库操作

这篇博客深入探讨了数据库操作,包括SQL语言的DDL、DML、DCL和DQL,重点讲解了SQL语句的分类与使用。文章详细阐述了数据完整性,如实体完整性、域完整性、引用完整性的概念和实现,以及主键、唯一约束、非空约束等。此外,还介绍了多表查询,包括不同类型的连接查询和子查询。最后,讨论了数据库优化和事务处理,包括事务的特性、隔离级别以及并发问题。
摘要由CSDN通过智能技术生成

一、数据库

概述

数据库(DataBase,DB):指长期保存在计算机的存储设备上,按照一定规则组织起来,可以被各种用户或应用共享的数据集合。

数据库管理系统(DataBase Management System,DBMS):指一种操作和管理数据库的大型软件,用于建立、使用和维护数据库,对数据库进行统一管理和控制,以保证数据库的安全性和完整性。

用户通过数据库管理系统访问数据库中的数据。

数据库软件应该为数据库管理系统,数据库是通过数据库管理系统创建和操作的。

数据库:存储、维护和管理数据的集合。

三大范式

什么是三大范式:

第一范式:无重复的列。当关系模式R的所有属性都不能在分解为更基本的数据单位时,称R是满足第一范式的,简记为1NF。满足第一范式是关系模式规范化的最低要求,否则,将有很多基本操作在这样的关系模式中实现不了。

第二范式:属性完全依赖于主键 [ 消除部分子函数依赖 ]。如果关系模式R满足第一范式,并且R得所有非主属性都完全依赖于R的每一个候选关键属性,称R满足第二范式,简记为2NF。第二范式(2NF)是在第一范式(1NF)的基础上建立起来的,即满足第二范式(2NF)必须先满足第一范式(1NF)。第二范式(2NF)要求数据库表中的每个实例或行必须可以被唯一地区分。为实现区分通常需要为表加上 一个列,以存储各个实例的唯一标识。这个唯一属性列被称为主关键字或主键、主码。

第三范式:属性不依赖于其它非主属性 [ 消除传递依赖 ]。设R是一个满足第一范式条件的关系模式,X 是R的任意属性集,如果X非传递依赖于R的任意一个候选关键字,称R满足第三范式,简记为3NF. 满足第三范式(3NF)必须先满足第二范式(2NF)。第三范式(3NF)要求一个数据库表中不包含已在其它表中已包含的非主关键字信息。

注:关系实质上是一张二维表,其中每一行是一个元组,每一列是一个属性

第二范式(2NF)和第三范式(3NF)的概念很容易混淆,区分它们的关键点在于,2NF:非主键列是否完全依赖于主键,还是依赖于主键的一部分;3NF:非主键列是直接依赖于主键,还是直接依赖于非主键列。

二、SQL语言

1. 概述

SQL:Structure Query Language(结构化查询语言),SQL被美国国家标准局(ANSI)确定为关系型数据库语言的美国标准,后来被国际化标准组织(ISO)采纳为关系数据库语言的国际标准。

各数据库厂商都支持ISO的SQL标准,普通话

各数据库厂商在标准的基础上做了自己的扩展,方言

SQL 是一种标准化的语言,它允许你在数据库上执行操作,如创建项目,查询内容,更新内容,并删除条目等操作。

Create, Read, Update, and Delete 通常称为CRUD操作。

2.SQL语句分类

- DDL(Data Defifinition Language):数据定义语言,用来定义数据库对象:库、表、列等。

- DML(Data Manipulation Language):数据操作语言,用来定义数据库记录(数据)增删改。

- DCL(Data Control Language):数据控制语言,用来定义访问权限和安全级别。

- DQL(Data Query Language):数据查询语言,用来查询记录(数据)查询。

注意:sql语句以;结尾

mysql中的关键字不区分大小写

3.DDL操作数据库

1 创建

CREATE DATABASE语句用于创建新的数据库:

//create database 数据库名 
CREATE DATABASE mydb1; 
​
//create database 数据库名 character set 编码方式 
CREATE DATABASE mydb2 character SET GBK; 
​
//create database 数据库名 set 编码方式 collate 排序规则 
CREATE DATABASE mydb3 character SET GBK COLLATE gbk_chinese_ci;

2 查看数据库

查看当前数据库服务器中的所有数据库

show databases;

查看前面创建的mydb2数据库的定义信息

//show create database 数据库名; 
Show CREATE DATABASE mydb2;

3 修改数据库

查看服务器中的数据库,并把mydb2的字符集修改为utf8;

alter database 数据库名 character set 编码方式
ALTER DATABASE mydb2 character SET utf8;

4 删除数据库

 drop database 数据库名

5 其他语句

查看当前使用的数据库

Select database();

切换数据库:

use  数据库名

4.DDL操作表

创建新表

CREATE TABLE 表名( 
列名1 数据类型 [约束], 
列名2 数据类型 [约束], 
列名n 数据类型 [约束] 
);

说明:表名,列名是自定义,多列之间使用逗号间隔,最后一列的逗号不能写

[约束] 表示可有可无

示例:

CREATE TABLE Employees( 
id INT , 
age INT , 
first VARCHAR(255), 
last VARCHAR(255) 
);

常用数据类型:

int:整型

double:浮点型,例如double(5,2)表示最多5位,其中必须有2位小数,即最大值为

999.99;默认支持四舍五入

char:固定长度字符串类型; char(10) 'aaa ' 占10位

varchar:可变长度字符串类型; varchar(10) 'aaa' 占3位

text:字符串类型,比如小说信息;

blob:字节类型,保存文件信息(视频,音频,图片);

date:日期类型,格式为:yyyy-MM-dd;

time:时间类型,格式为:hh:mm:ss

timestamp:时间戳类型 yyyy-MM-dd hh:mm:ss 会自动赋值

datetime:日期时间类型 yyyy-MM-dd hh:mm:ss

删除表

 drop table 表名;

展示当前数据库中的所有表

 show tables;

查看表的字段信息

 desc 表名;

增加列

 alter table 表名 add 新列名 新的数据类型

修改列

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

删除列,一次只能删一列

 alter table 表名 drop 列名

修改表名

alter table 旧表名 rename 新表名; 

查看表格的创建细节

show create table 表名; 

修改表的字符集为gbk

 alter table 表名 character set 编码方式

5

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值