三、数据库

数据库

数据库的基本概念

  • 数据库的英文单词:DataBase 简称:DB

  • 什么是数据库?

    • 用于存储和管理数据的仓库

  • 数据库的特点:

    • 持久化存储数据的。其实数据库就是一个文件系统

    • 方便存储和管理数据

    • 使用了统一的方式操作数据库 --SQL

  • 常见的数据库软件

    • MYSQL:开源免费的数据库,小型的数据库,已经被Oracle收购了.MySQL6.x版本也开始收费了

    • Oracle:收费的大型数据库,Oracle公司的产品。Oracle收购了SUN公司,收购了MYSQL

    • DB2:IBM公司的数据库产品,收费的。常用在银行系统中。

    • SQLServer:MicroSoft公司收费的中型数据库。C#、.net等语言常使用

    • SyBase:已经淡出历史舞台。提供了一个非常专业的数据建模的工具PowerDesigner

    • SQLite:嵌入式的小型数据库,应用在手机端

    • 常用数据库:MYSQL、Oracle

  • MySQL数据库软件

    • 安装

      • 找度娘

    • 卸载

      • 去mysql的安装目录找到my.ini文件

        • 赋值:datadir="C:/ProgramData/MySQL/MySQL Server 5.5/Data/"

      • 卸载mysql

      • 删除C:/ProgramData目录下的MySQL文件夹

    • 配置

      • MySQL服务启动

        • 右键此电脑---->单击服务和应用程序----->单击服务---->找到MySQL点击启动

        • cmd--->services.msc 打开服务器的窗口找到MySQL点击启动

        • 使用管理员权限打开cmd

          • net start mysql:启动mysql的服务

          • net stop mysql:关闭mysql的服务

      • MySQL登录

        • mysql -uroot -p密码

        • mysql -hip -u -p连接目标的密码

        • mysql --host=ip --user=root --password=连接目标的密码

      • MySQL退出

        • exit

        • quit

      • MySQL的目录结构

        • MySQL安装目录

          • 配置文件:my.ini

        • MySQL数据目录

          • 几个概念

            • 数据库:文件夹

            • 表:文件

            • 数据:存放的数据

SQL

  • 什么是SQL?

    • Structured Query Language:结构化查询语言

    • 其实就是定义了操作所有关系型数据库的规则。每一种数据库操作的方式存在不一样的地方,称为”方言“

  • SQL通用语法

    • SQL语句可以单行或多行书写,以分号结尾

    • 可使用空格和缩进来增强语句的可读性

    • MySQL数据库的SQL语句不区分大小写,关键字建议使用大写

    • 3中注释

      • 单行注释:--空格注释内容 或 #空格(可要可不要)注释内容(mysql 特有)

      • 多行注释:/* 注释内容 */

  • SQL分类

    • DDL(Data Definition Language)数据定义语言

      • 用来定义数据库对象:数据库、表、列等。

      • 关键字:create, drop, alter等

    • DML(Data Manipulation Language)数据操作语言

      • 用来对数据库中表的数据进行增删改。

      • 关键字:insert, delete, update 等

    • DQL(Data Query Language)数据查询语言

      • 用来查询数据库中表的记录(数据)

      • 关键字:select, where 等

    • DCL(Data Control Language)数据控制语言(了解)

      • 用来定义数据库的访问权限和安全级别,及创建用户

      • 关键字:CRANT , REVOKE 等

DDL:操作数据库、表

  • 操作数据库:CRUD

    • C(Create):创建

      • 创建数据库:

        • create database 数据库名称;

      • 创建数据库,判断不存在,在创建:

        • create database if not exists 数据库名称;

      • 创建数据库,并指定字符集

        • create database 数据库名称 character set 字符集名称;

      • 练习:创建db2数据库,判断是否存在,并指定字符集为GBK

        • create database if not exists db2 character set gbk;

    • R(Retrieve):查询

      • 查询所有数据库的名称:

        • show databases;

      • 查询某个数据库的字符集:查询某个数据库的创建语句

        • show create database 数据库名称;

    • U(Update):修改

      • 修改数据库的字符集

        • alter database 数据库名称 character set 字符集名称;

    • D(Delete):删除

      • 删除数据库

        • drop database 数据库名称;

      • 判断数据库存在,存在才删除

        • drop database if exists 数据库名称;

    • 使用数据库

      • 查询当前正在使用的数据库名称

        • select database();

      • 使用数据库

        • use 数据库名称;

  • 操作表

    • C(Create):创建

      • 语法:

        • create table 表名(

          • 列名1 数据类型1,

          • 列名2 数据类型2,

          • ……

          • 列名n 数据类型n);

          • 注意:最后列名的数据类型后不需要加逗号(,)

        • 数据库类型:

          • int:整数类型

            • age int,

          • double:小数类型

            • score double(5,2)

          • date:日期,只包含年月日,yyyy-MM-dd

          • datetime:日期,包含年月日时分秒,yyyy-MM-dd HH:mm:ss

          • timestamp:时间戳类型,包含年月日时分秒,yyyy-MM-dd HH:mm:ss

            • 如果将来不给这个字段赋值,或赋值为null,则默认使用当前的系统时间,来自动赋值

          • varchar:字符串

            • name varchar(20):姓名最大20个字符

            • zhangsan 8个字符 张三 2个字符

        • 复制表:

          • create table 表名 like 被复制的表名;

    • R(Retrieve):查询

      • 查询某个数据库中所有的表名称

        • show tables;

      • 查询表结构

        • desc 表名;

    • U(Update):修改

      • 修改表名

        • alter table 表名 rename to 新的表名;

      • 修改表的字符集

        • alter table 表名 character set 字符集名称;

      • 添加一列

        • alter table 表名 add 列名 数据类型;

      • 修改列名称 类型

        • alter table 表名 change 列名 新列名 新数据类型;

        • alter table 表名 modify 列名 新数据类型;

      • 删除列

        • alter table 表名 drop 列名;

    • D(Delete):删除

      • drop table 表名;

      • drop table if exists 表名;

客户端图形化工具:SQLYog

  • 找度娘

DML:增删改表中数据

  • 添加数据:

    • 语法:

      • insert into 表名(列名1,列名2,……,列名n) values(值1,值2,……,值n);

    • 注意:

      • 列名和值要一一对应

      • 如果表名后,不定义列名,则默认给所有列添加值

        • insert into 表名 values(值1,值2,……,值n);

      • 除了数字类型,其他类型需要用引号(单双都可以)引起来

  • 删除数据:

    • 语法:

      • delete from 表名 [where 条件]

    • 注意:

      • 如果不加条件,则删除表中所有记录

      • 如果要删除所有记录

        • delete from 表名;----不推荐使用。有多少条记录就会执行多少次删除操作

        • TRUNCATE TABLE 表名;----推荐使用,效率更高,先删除表,然后在创建一张一样的空表

  • 修改数据:

    • 语法:

      • update 表名 set 列名1 = 值1,列名2 = 值2,……[where 条件];

    • 注意:

      • 如果不加条件,则会将表中所有记录全部修改

DQL:查询表中的记录

  • select * from 表名

  • 语法:

    • select

      • 字段列表

    • from

      • 表名列表

    • where

      • 条件列表

    • group by

      • 分组字段

    • having

      • 分组之后的条件

    • order by

      • 排序

    • limit

      • 分页限定

  • 基础查询

    • 多个字段的查询

      • select 字段名1,字段名2,…… from 表名;

      • 注意:

        • 如果查询所有字段,则可以使用*来替代字段列表

    • 去除重复

      • distinct

    • 计算列

      • 一般可以使用四则运算计算一些列的值。(一般只会进行数值的计算)

      • ifnull(表达式1,表达式2):null参与的运算,计算结果都为null

        • 表达式1:哪个字段需要判断是否为null

        • 表达式2:如果该字段为null后的替换值

    • 起别名

      • as:as也可以省略

  • 条件查询

    • where子句后跟条件

    • 运算符

      • 大于(>)、<、<=、>=、=、<>

      • between……and

      • in(集合)

      • like:模糊查询

        • 占位符:

          • _:单个任意字符

          • %:多个任意字符

      • is null

      • and 或 &&

      • or 或 ||

      • not 或 !

posted @   遨游JAVA的大叔  阅读(69)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示