文章目录

  • SQL基本学习信息
  • 一、数据库是什么?
    • 1.关系型数据库的主要产品:
    • 2.关系型数据库核心元素
  • 二、SQL的使用
    • 1.终端使用数据库
    • 2.数据库的基本使用
    • 3.数据表的基本操作
      • 3.1表的查询
      • 3.2 创建表
      • 3.3修改表
      • 3.4 删除表
      • 4.增删改查
      • 4.1查询
      • 4.2 删除数据
  • 总结

SQL基本学习信息

这两天看了一下数据库的学习内容,主要包括数据库的安装、数据库的查增删改的基本操作,最后就是在python编译器里使用python语言进行交互。

一、数据库是什么?

1.数据库就是一种特殊的文件,其中存储着需要的数据
2.当前主要使用两种类型的数据库:关系型数据库、非关系型数据库
3.所谓的关系型数据库RDBMS,是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法4.来处理数据库中的数据

1.关系型数据库的主要产品:

oracle:在以前的大型项目中使用,银行,电信等项目
mysql:web时代使用最广泛的关系型数据库
ms sql server:在微软的项目中使用
sqlite:轻量级数据库,主要应用在移动平台

2.关系型数据库核心元素

·数据行(记录)
·数据列(字段)
·数据表(数据行的集合)
·数据库(数据表的集合)

二、SQL的使用

1.终端使用数据库

#登录数据库
mysql -uroot -p
#回车后输入密码,当前设置的密码为mysql#退出数据库
#方法一:
exit;
#方法而:
quit;

2.数据库的基本使用

#查看当前存在的数据库
show databases;#使用其中的一个数据库
use 库名;#查看当前使用的数据库
select database();#创建数据库
create database 数据库名 charset = uft8;

#删除数据库(谨慎使用)
drop database 数据库名;

3.数据表的基本操作

3.1表的查询

# 查看当前数据库中所有表
show tables;#查看表结构
desc 表名;

3.2 创建表

#创建表
create table 表名(
column1 datatype contrai,
column2 datatype,
column3 datatype,.....
columnN datatype,
);#示例 创建一个班级
#auto_increment 自动增长 primary key设置为主键  not null字段不能为空
create classes(
class_id int unsigned auto_increment primary key not null,
name varchar(10)
);

3.3修改表

#修改表-添加字段
--alter table 表名 add 列名 类型;#修改表-修改字段:重命名版
--alter table 表名 change 原名 新名 类型及约束;#修改表-修改字段:不重命名版
--alter table 表名 modify 列名 类型及约束;
alter table students modify birth date not null;#修改表-删除字段
--alter table 表名 modify 列名 类型及约束;
alter table students modify birthday date;

3.4 删除表

#删除表
--drop table 表名;
drop table classes;

4.增删改查

--在表中插入信息
#在student表中插入一个学生信息
insert into students values(2,"小姜",20,173.22,"女",1);#部分属性的插入
--insert into 表名(列1,。。。) values(值1,。。。);
insert into students (name,gender) values("曹操",2);#多行插入
--insert into 表名(列1,。。。) values(值1,。。。),(值1,。。。);
insert into students (name,gender) values("大桥",2),("孙尚香",2);
insert into students values(null,"妲己",22,173.22,"女",1),(null,"钟无艳",18,173.22,"女",1);#修改
--update 表名 set 列1=值1,列2=值2。。。 where 条件;---部分修改
update students set name="小明" where id = 3;
update students set name="小刚",high = 197.33 where id = 4;--update 表名 set 列1=值1,列2=值2...;  --则表示那一列的内容全部修改成指定的值(全部修改)

4.1查询

--查询所有列
select * from 表名;--带有条件的查询
--select * from 表名 where 列1 = 值1;
select * from students  where name = "小姜";    --查询name是小姜的所有信息
select * from students  where id>3;  --查询id大于3的所有数据信息--查询指定列
--select 列1,列2 from 表名;
select name,gender from students;--查询指定列,同时给列名起个外号
--select 字段1 as 别名1,字段2 as 别名2 from 表名 where...;
select name as "姓名",gender as "性别" from students; --姓名在前,性别在后--修改字段的顺序
select gender as "性别",name as "姓名" from students;  --性别在前,姓名在后-- 排序
--select * from 表名 order by 列1 asc|desc ,列2 asc|desc,... # 默认asc从低到高 desc从高到低排序
#将行数据按照列1进行排序,如果某些行列1的值相同时,则按照列2排序,以此类推
#默认按照列值从小到大排列(asc)--聚合函数
--总数
-查询学生总数
--select count(*) from students;--最大值
--max(列)表示求此列的最大值
--查询女生的编号最大值
select max(id) from students where gender=2;-- 求和
select sum(age) from students where gender=1;-- 平均值
-- avg(列)表示求此列的平均值
select avg(id) from students where is_delete=0 and gender=2;--分组
--group by的含义:将查询结果按照1个或多个字段进行分组,字段值相同的为一组
-- 以性别分组
select gender from students group by gender;-- group by + group_concat()
-- group_concat(字段名)可以作为一个输出字段来使用,表示分组之后,根据分组结果,使用group_concat()来放置每一组的某字段的值的集合
select gender,group_concat(name) from students group by gender;-- group by + having
-- having 条件表达式:用来分组查询后指定一些条件来输出查询结果
-- having作用和where一样,但having只能用于group by
select gender,count(*) from students group by gender having count(*)>2;-- group by + with rollup
-- with rollup的作用是:在最后新增一行,来记录当前列里所有记录的总和
select gender,count(*) from students group by gender with rollup;-- 获取部分行
-- select * from 表名 limit start,count  #从start开始,获取count条数据
-- 查询前3行男生信息
select * from students where gender=1 limit 0,3;-- 连接查询
-- mysql支持三种类型的连接查询,分别为:
-- 内连接查询:查询的结果为两个表匹配到的数据
-- 右连接查询:查询的结果为两个表匹配到的数据,右表特有的数据,对于左表中不存在的数据使用null填充
-- 左连接查询:查询的结果为两个表匹配到的数据,左表特有的数据,对于右表中不存在的数据使用null填充
-- select * from 表1 inner或left或right join 表2 on 表1.列 = 表2.列

4.2 删除数据

-- 物理删除
-- delete from 表名 where 条件...;
delete from students; ---整个数据表中的内容全部删除
delete from students where name = "小李飞刀";  --name为小李飞刀的数据删除-- 逻辑删除
-- 用一个字段来表示,这条信息是否已经不再使用
-- 给students表添加一个is_delete字段 bit 类型
alter table students add is_delete bit default 0;
update students set is_delete=1 where id=9;

总结

上述的内容只是学习中按照案例总结的一些知识,有些创建的表没有完全展示出来,因此参考的时候可以把所有的表抽象出来,比如students表什么的,不用在意。

Mysql基础学习内容相关推荐

  1. MySQL基础学习③数据库准备工作,导入官方employees数据库

    文章目录 1.前言 2.构建步骤 2.1 测试数据库文件下载 2.2 在test_db文件里打开cmd 2.3 导入成功 3. employees数据库 -- 职工雇佣信息 3.1 employees ...

  2. Mysql基础学习Day01

    Mysql基础学习Day01 1.SQL语言的分类 2.注释 3.基本的select语句 4.显示表结构 5.过滤数据 突然发现java基础内容学的差不多了 就又开一个mysql基础学习 1.SQL语 ...

  3. MySQL基础学习——Day5

    文章目录 MySQL基础学习--Day5 索引 1.什么是索引? MySQL在查询方面主要就是两种方式: 2.索引的实现原理? 1.索引的实现原理: 2.添加索引的条件 3.索引的创建和删除? 1.创 ...

  4. MySQL基础学习笔记(带目录)

    MySQL学习笔记 MySQL产品的介绍和安装 MySQL服务的启动和停止 MySQL服务的登陆和退出 MySQL的常见命令 MySQL的语法规范 MySQL基础查询 1.起别名 2. 去重disti ...

  5. MySQL基础-学习笔记

    MySQL基础 一.DQL语言的学习 1.基础查询 /* 语法: select 查询列表 from 表名特点: 1-查询的结果集是一个虚拟表 2-select类似于System.out.printIn ...

  6. MySQL基础学习2

    MySQL 基础 2.1 MySQL 基础 (二)- 表操作 作业 项目三:编写一个 SQL 查询,列出所有超过或等于5名学生的课 项目四:交换工资 项目五:有趣的电影 2.2 MySQL 基础 (三 ...

  7. MySQL基础学习笔记

    一.数据库基本概念 1.1 数据库 - Database 从字面意思看,数据库就是一个存储数据的仓库.从计算机的角度来讲,数据库(Datebase)是按照数据结构来组织.存储和管理数据的仓库. 简单来 ...

  8. MySQL基础学习——第一篇

    目录 MySQL定义 MySQL的安装 MySQL打开 MySQL常用数据类型 一,数值类型 二,日期和时间类型 三,字符串类型 MySQL基础命令 一,关于库的内容 1,怎创建数据库 2,删除数据库 ...

  9. MySQL基础学习笔记(持续更新中)

    一.MySQL基础 1. 数据库概念 1.1 为什么要学MySQL 个人理解:随着互联网的发展,数据变得烦杂,冗余,量大,为了保证数据的持久性以及健壮性等等,同时也为了方便人们很好的处理数据,这就发明 ...

最新文章

  1. Hibernate与 MyBatis的比较
  2. mysq对存在null值的字段排序
  3. 为什么 kubernetes 天然适合微服务
  4. 来来来,一起五句话搞定JavaScript作用域
  5. Android 换肤demo,轻量快捷接入集成,判断是否夜间模式
  6. Metasploit
  7. 淘宝端智能演进和思考
  8. 【LeetCode】【数组】题号:*661,图片平滑器
  9. js 使用Math函数取得数组最大最少值
  10. 还在忍受磁力搜索网站不忍直视的广告么?18年最新最好用的bt磁力搜索网站介绍
  11. 优锘科技:ThingStudio森工厂掀起数字孪生龙卷风暴
  12. iptables中DNAT、SNAT和MASQUERADE的原理
  13. Win1903下,如何简单的附加dnf
  14. 联想电脑阻止c语言运行,联想电脑运行程序打不开怎么解决
  15. JavaScript根据开始时间和结束时间计算具体礼拜几
  16. layui 动态表格 合并单元格
  17. Mathematica训练课(29)-对数函数相关操作
  18. Rosalind第68题:Counting Optimal Alignments
  19. 华为存储OceanStor 5110V5 CA证书即将过期告警处理
  20. [npm]npm包删除善后

热门文章

  1. Matlab 求方程的根
  2. Quartus || 13.1安装
  3. 怎样知道别人的WiFi密码?
  4. xshell5之ssh隧道连接
  5. java基础之集合篇
  6. 安装docker桌面版(Windows)
  7. R语言文本主题模型之潜在语义分析(LDA:Latent Dirichlet Allocation)
  8. chown: changing ownership of ‘/var/lib/mysql/‘: Permission denied
  9. CCleaner的命令行参数教程
  10. 知乎高赞:有哪些高逼格的公众号值得推荐