当前位置:网站首页 > SQL数据库编程 > 正文

sql的数据文件是什么(sql文件是什么数据库)



目录

基本概念

数据库(Database)

数据库管理系统(DBMS)

数据库基本数据类型

 数据库操作

数据库操作

 1、查询数据库

 2、创建数据库​

​ 3、使用数据库

 4、删除数据库

表 

1、创建表

 2、察看表结构

3、删除表

4 、插入记录

5 、查找

 6、指定字段起别名

 7、去重

 8、排序(对临时表的排序)

9、条件查询

 10、分页查询

 11、添加字段

12、修改字段数据类型

 13、删除字段

约束 

实体之间的关系

一对一

一对多

多对多

聚合查询

分组查询 

联合查询

内连接

外连接

自连接

子查询

标量子查询:子查询的结果为单值

列子查询:子查询的结果为单列

行子查询:子查询的结果为单行

表子查询:子查询的结果为多行多列

合并查询 ---union,union all

 mysql的内置函数

字符串函数

​ 数值函数

日期函数

流程控制函数


数据库是存储各种数据的软件:一个购物网站,商品的各种信息,对应评论……这些各种信息就是数据,数据库用于存储这些大量的数据。 

简称DB,是长期存储在计算机内,有组织的,可共享的大量数据的集合。

基本特征

 数据库的信息存储:

 数据库的数据存储在硬盘上存储,也就是存放在外存,数据断电后不会消失

操作和管理数据库的软件

  • 关系型数据库:建立在关系模型的基础上,由多张相互联系的二维表所构成

什么是二维表:

通过表格来记录信息,一个表存储学生信息,其中存储了学号,又可以通过学号来查找对应学生的成绩,关系型数据库就是由多张相互联系的二维表所构成。

 常用的关系型数据库软件:

 

  • 非关系型数据库NoSQL):例如键值Key-Value存储数据库,列存储数据库,文档型数据库,图形Graph数据库 ……。一般不借用SQL语言实现
  • SQL-操作关系型数据库的语言

 例如:89.8,就是decimal(3,1),3表示有效数字的个数,1表示小数位数

char (1)表示字符串输入1个字符,长度不可变

varchar(10) ,表示字符串最多输入10个字符

varchar和char的区别:varchar通过计算输入长度来判断是否超过指定长度,长度可变

 1、查询数据库

 2、创建数据库

字符集:使用数字来表示汉字,从而形成的对应关系表格,例如utf-8

数据库也可使用utf8mb4,比utf-8表示的内容多一些

 3、使用数据库

 4、删除数据库

1、创建表

create table 表名(列表1,列表2……)

 2、察看表结构

desc 表名

3、删除表

drop table [表名]

4 、插入记录

insert (into) 表名 values(……)

into 可省略 

插入日期:两种方式,字符串插入和借助now()函数 

指定某列插入

 多行插入

一个表的查找内容插入另外一个表

insert 目标表 select (来源表的列) from 来源表

5 、查找

全列查找

select * from 表名

数据库存放在硬盘中,也就是在外存,但是 select得到的表格是在内存中,所以select得到的是临时表,打印后就消失了,不会影响硬盘中的数据。

 指定列查找

select  列名 from 表名

 指定列为表达式(列和列的计算)

 6、指定字段起别名

select 列名 as 新的别名 from 表名

 7、去重

select distinct 列名 from 表名

 8、排序(对临时表的排序)

select 列名 from 表名 order by 列名 asc/desc

asc表示升序,desc表示降序

 多个列排列

9、条件查询

=表示相等,但是null=null的结果是null,结果假

<=>表示相等,null<=>null的结果是null,结果真

select  列名 from 表名 where 条件

< <= > >= 小于,小于等于,大于,大于等于 in (a,b……) 是a,b……中的人任意一个就是真 like 模糊匹配 A and  B A B同时为真 A or B A B之间有一个为真

 and的优先级高于or

  • 小于 

  •  and

  • in 

  • like 

   李%: 表示name必须是“李……”的格式,其中……可以是空,类似于李a,李an这种形式

   %李%:表示name必须是“……李……”的格式,其中……可以是空(必须包含一个“李”字)

_ 李%  :第二个字是李,不要求字数

_ 李  :第二个字是李,且只会有两个字

_ _李%  :第三个字是李,不要求字数

_ _李  :第三个字是李,且只会有三个字

李_ :只会有两个字,第一个字是李

李_% :第一个字是李,不要求字数

  • null空值比较

 10、分页查询

数据过多,一页显示不全就会使用分页查询

 11、添加字段

12、修改字段数据类型

 13、删除字段

 14、修改内容

 例如:将总成绩前三名的数学成绩+10分

 修改所有人的数学成绩*2

15、删除数据

delete from 表名 where……

  •  查询用户

  •  创建用户
 
   

  • 修改用户密码
 
   
  • 删除用户
 
   

创建好的用户没有权限,需要给定权限

  •  查询权限
 
   

  •  授予权限
 
   

  • 撤回权限
 
   

对数据库数据的限制性要求

  • not null :数据不为空

  • unique:数据唯一

id 被unique约束,那么赋值时已经出现过的id就不能继续插入

  • default:设置默认值

  • primary key:主键约束(完整性约束),not null和unique的结合

任何一张表有且只有一个主键

 主键的用法:字段唯一且不为空,可以实现序号增加(1,2,3……),称之为自增主键

mysql中设置了自增主键

  • foreign key:外键约束

 
   

 成绩表依赖于信息表,两张表的学号相关联,借助学号将两个表进行关联:

父表中关联的字段设置为主键约束,子表中关联的字段设置外键约束

 子表插入信息: 

成绩表依赖于信息表,子表中依赖于父表的信息必须在父表存在

例如:成绩表中插入学号99999,父表中不存在这个学号,就会出错

父表删除信息:

 成绩表依赖于信息表,子表中依赖于父表的信息必须在父表存在,所以父表不能删除/修改已经被子表使用的信息

 如何正确对外键约束进行删除或者更新

 

  •  默认使用no action 或者restrict方式

  • cascade方式

在创建表时增设条件

 
   
 
   

一个人只有一个成绩,一个成绩对应了一个人

 创建方式:

一个学生只能有一个班级,一个班级有多个学生

创建方式 

一个学生可以选多门课,一个课可以有多个学生

 创建方式:

将表的行相关联

常见的聚合函数:

1、 count函数

null不计算

 

2、max---找到行的最大值

null不计算

 3、min---某一行的最小值

null不计算

4、sum---行求和

null不计算

注意: 字符串类型 不能求和

  5、avg---平均值 

求和中null不计算,行数null也不计算

分组之前的结果进行筛选,需要使用where; 分组之后的结果进行筛选,需要使用having 

分组查询一般和聚合函数相关联

 1、 按照性别分组,查看男,女各有多少人

 分析:按照性别分组,会划分为两组:

对于分组查询,查找除了聚合函数以外的字段没有任何实际意义,例如打印姓名,只会分别打印两个组的第一个人的信息,没有任何实际意义

 2、-- 按照性别分组,查看平均年龄

 3、-- 年龄小于50的人中,按照性别分组,查看在西安的人数

  4、年龄小于50的人中,按照地址分组,获取所在地址处员工人数超过1的地址

将两个表结合起来---使用笛卡尔积

 创建结果:新表的行数=两表行数乘积,新表的列数=两表列数之和

select (列) from 第一个表名,第二个表名 where 条件

或 select (列) from 第一个表名 join 第二个表名 on 条件

 但是这些内容有的是并不匹配的

增设where条件筛选正确信息 

 创建表:

 1、查询java101所有学生选的课程

java101:在班级表里,学生课程在学生选课表里,两个表可以通过学生表连接

 
   

或者:使用join on 

 
   

2、统计男生选了多少门课,女生选了多少门课

 
   

3、统计每一个人选了多少门课

 
   

内连接:取两个表的公共部分

 
   

 相当于取两个集合的交集:取绿色部分

 还有一种内连接的写法:使用join on

 
   

分为左外连接和右外连接

 左外连接:保留全部左边的信息,对于左边独有的信息,右边自动补null

 
   

  右外连接:保留全部右边的信息

 
   

自连接可以是内连接也可以是外连接

一张表和自己连接

内连接:

 
   

左外连接:

 
   

标量子查询:子查询的结果为单值

 
   

列子查询:子查询的结果为单列

 
   

行子查询:子查询的结果为单行

 
   

表子查询:子查询的结果为多行多列

 
   

 
   

 union :拼接出来的表,不会重复某一行

 union  all:直接拼接,不去重

 
   

select 函数

字符串函数

select concat("hello","world");

select upper("Hello");

select lpad("hello",9,"_");-- 使用_左填充字符串hello,填充完之后一个是9个长度

 select trim(" hell o ");-- 去除前后空格

 select substring("hello",1,3);

 数值函数

 

生成六位随机验证码:

 
   

日期函数

 
   
 
   
 
   

流程控制函数

 
   
 
   

 对于成绩表操作

 
   

 
   

到此这篇sql的数据文件是什么(sql文件是什么数据库)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • pymysql详解(pymysql whl)2025-07-24 21:18:06
  • plsql注册码永久 12(plsql注册码永久2024)2025-07-24 21:18:06
  • mysql主键可以为空吗(mysql的主键可以是varchar类型吗)2025-07-24 21:18:06
  • sql循环语句的作用是什么(sqlserver循环语句)2025-07-24 21:18:06
  • mysql主键重复会覆盖还是?(mysql主键重复报错1062)2025-07-24 21:18:06
  • sqlloader 字符集(sqluldr2 字符集)2025-07-24 21:18:06
  • mysql主键(mysql主键用自增还是用uuid)2025-07-24 21:18:06
  • mysql查询锁表日志(mysql怎么看锁表)2025-07-24 21:18:06
  • mysql查询锁表进程(mysql查看锁表进程)2025-07-24 21:18:06
  • MySQL增删改查(MySQL增删改查数据库日志)2025-07-24 21:18:06
  • 全屏图片