MySQL——基本概念、环境安装、分类、语法(增删改查)以及内置数据库与基本函数

news2024/11/16 5:46:14

目录

一、数据库的概念

二、数据库的分类

关系型数据库:

非关系型数据库:

三、数据库系统

四、安装数据库

配置数据库的环境变量

五、MySQL的登录命令

六、SQL

DDL

DML

DQL

DCL

七、创建数据库

八、增删改查数据库

增加数据

删除数据

逻辑删除

修改数据

查询(重点)

投影查询

限制查询(重中之重)

条件查询

模糊查询

排序查询

子查询

联合查询

九、内置数据库

十、内置函数

查看数据库版本

获取数据库路径

获取数据库名

获取用户名

获取组合数据

获取字节长度

字符截取

睡眠/延时函数

判断


一、数据库的概念

什么是数据库?为什么要学数据库?

数据库: 存放数据的仓库

学习数据库的作用:

  1. 学习SQL注入漏洞(漏洞之王)
  2. 所有的web系统--> 数据-->存放起来-->数据库里面

        前端 ------->后端 ------->数据库

编程相关的所有东西,都是来源于生活

现实生活种的仓库:

京东自建物流, 全国各地有很多很多仓库

京东买东西之后,就近原则在仓库里面直接出货

仓库里面要存放很多的东西, 这些东西必定是需要分类的, 分区域存放

理一个关系:

有一个大的京东仓库---------------------------------------------数据库管理系统( DBMS: database management system)

             仓库里面有不同的分区(A区,B区, C区)---------------------------具体的数据库(database)
 
             每个区有很多货架------------------------------------------------------表(table)
 
             每个货架又有很多层----------------------------------------------------行 (row)

每一层里面才是物品----------------------------------------------------列--物品 (column)

我们学习的东西就是DBMS

二、数据库的分类

数据库里面我们大概可以分为两种:

关系型数据库:
表格的形式
  • Oracle数据库: 全球排名第一的数据库,性能最牛逼(以前在银行里面用的很多),不开源,收费
  • MySQL数据库: 占有率相当高,Oracle青春版, 开源,免费, 性能也行----(DBA)
  • MSSQL数据库: 微软数据库, 也很优秀,很多政府项目用, ---》 .NET平台 (编程语言用C#, 操作系统也是微软的, 数据库也是微软),微软-->巨硬, 微软现在云服务做的很好
  • PGSQL数据库: 和MySQL感觉是孪生姐妹, MSF 里面
  • SQLITE数据库: 嵌入式数据库, 做工具, 做爬虫, 做POC校验, 做EXP验证等等, 需要存放很多===> 文件/SQLITE数据库里面
非关系型数据库:
图片、文件夹、视频、文档
  • Redis数据库: 缓存---> 数据库存在内存里面的, 减少数据库IO,增加系统的吞吐量, 后面会和SSRF漏洞进行结合
  • memecahce: 缓存
  • MongoDB: 真的很牛皮, 大数据库刚刚出来的时候,(一行数据,就可以把一个人的所有数据全部包含)

三、数据库系统

数据库系统是指在计算机系统中引入数据库后的系统。完整的数据库系统结构关系如图所示:

四、安装数据库

数据库安装方式有三种:

  1. 官网下载安装包,直接安装即可。
  1. 官网下载免安装包,绿色版,解压打开即可。
  1. 集成环境(WAMP) Windows Apache MySQL PHP

集成环境有很多种: XAMPP / WAMPSERVER / PHPstudy

PHPStudy =》 切换环境超级方便

安装基本就是傻瓜式安装,安装需要注意的东西:

1. 注意安装的盘符,尽量不要在C盘
2. 安装之前,将自己电脑上的MySQL数据库停止掉且删除服务
win+R
输入:services.msc
需要找到是否有MySQL的服务,有就停掉,且删除服务: sc delete 服务名字(进入cmd命令行删除)

配置数据库的环境变量

win+R--->CMD

这个时候是需要配置数据库的环境变量。

什么是环境变量: 方便操作系统快速的去找到对应软件的可执行文件。

配置的方式:

  1. 我的电脑-->右键-->属性
  1. 高级系统设置--->环境变量
  1. 系统变量-->双击Path
  1. 进入环境变量编辑页面--->新建-->输入mysql可执行文件路径(D:\phpstudy_pro\Extensions\MySQL5.7.26\bin)
  1. 后续就是全部确定即可

在任何路径下面输入mysql出现如下界面说明配置成功:

五、MySQL的登录命令

PHPstudy安装的MySQL默认的用户名和密码

用户名: root

密码: root

mysql -uroot -p 回车 =》 输入密码
mysql: mysql命令
-u : user 登录用户
-p : 指定密码
MySQL的默认端口是: 3306
mysql -uroot -h localhost -P 3306 -p
-u : 用户名
-h : 主机地址-->MySQL数据库安装的机器的ip地址(127.0.0.1: 回环ip, localhost: 本地主机)
-P : 端口号 默认是 3306 端口即服务
-p : 密码

六、SQL

SQL是什么?

结构化查询语言

SQL 是所有数据库查询语言的统称

后续操作数据库的主要工作内容: 就是写SQL

数据库就是根据所写的SQL来执行相关的命令(增删改查)

记住: 操作数据库的核心点=》 建库,建表, 数据的增删改查

DDL
  • 数据定义语言: Data Define Language这种语言主要用于: 建库,建表,修改表结构, 删除表,删除库
DML
  • 数据管理语言: Data Manager Language这种语言主要用于: 数据的增删改
DQL
  • 数据查询语言: Data Query Language这种语言主要用于: 数据查询
DCL
  • 数据控制语言: Data Control Language这种语言主要用于: 数据库的权限管理

七、创建数据库

# 展示所有的数据库
show databases;
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| admin              |
| connect            |
| db1                |
| information_schema |
| mysql              |
| performance_schema |
| phpmyadmin         |
| security           |
| sys                |
| test               |
| web2401            |
| zhoujielunyyds     |
+--------------------+
12 rows in set (0.01 sec)
# 创建数据库
# 关于数据库名字: 统一小写
create database 数据库的名字;
# 标准的创建数据库的语句
create database if not exists 数据库的名字;
# MySQL数据存放在什么地方的?
# 默认情况是存放在: MySQL安装目录/data目录下面
# 通过观察,MySQL的数据库,在文件系统中就是一个 : 文件夹而已
# 删除数据库
drop database 数据库名字;
# 标准的删除语句
drop database if exists 数据库名字

八、增删改查数据库

增加数据
# 语法
insert into 表名(字段名1, 字段名2, 字段名3....字段名n) values (值1,值2,值3....值n);

# 省略的字段中约束必须是null的,如果是not null 那就不能省略
mysql> insert into user(user_name,user_age) values('jack',18);
Query OK, 1 row affected (0.01 sec)

mysql> insert into user(user_name,user_age) values('rose',17);
Query OK, 1 row affected (0.00 sec)

mysql> select * from user;
+----+-----------+----------+-------------+--------------+-----------+
| id | user_name | user_age | user_gender | user_address | user_like |
+----+-----------+----------+-------------+--------------+-----------+
| 1 | jack | 18 | 1 | NULL | NULL |
| 2 | rose | 17 | 1 | NULL | NULL |
+----+-----------+----------+-------------+--------------+-----------+
2 rows in set (0.00 sec)
# 简写 => 全插入
# 必须写所有的字段值
# 自增ID可以写成null => MySQL的特性
insert into 表名 values(所有字段的值依次填写,用逗号隔开);
mysql> insert into user values(null,'lucy',14,2,'Beijing','rap');
Query OK, 1 row affected (0.00 sec)

mysql> select * from user;
+----+-----------+----------+-------------+--------------+-----------+
| id | user_name | user_age | user_gender | user_address | user_like |
+----+-----------+----------+-------------+--------------+-----------+
| 1 | jack | 18 | 1 | NULL | NULL |
| 2 | rose | 17 | 1 | NULL | NULL |
| 3 | lucy | 14 | 2 | Beijing | rap |
+----+-----------+----------+-------------+--------------+-----------+
3 rows in set (0.00 sec)

mysql> insert into user values(null,'lucy',14,2,'Beijing');
ERROR 1136 (21S01): Column count doesn't match value count at row 1

# 批量插入
insert into user(user_name, user_age) values('lucy', 20),('tom',19),('David',
22), ('Allen', 23);

删除数据
# 语法
delete from 表名 [where 条件]
mysql> delete from user where id=3;
Query OK, 1 row affected (0.01 sec)
mysql> select * from user;
+----+-----------+----------+-------------+--------------+-----------+
| id | user_name | user_age | user_gender | user_address | user_like |
+----+-----------+----------+-------------+--------------+-----------+
| 1 | jack | 18 | 1 | NULL | NULL |
| 2 | rose | 17 | 1 | NULL | NULL |
+----+-----------+----------+-------------+--------------+-----------+
逻辑删除

数据库里面的删除: delete => 直接将数据删除掉
在目前这种互联网时代 =》 数据是最重要的
很多时候在业务里面,我们是不会去直接将数据删除的, 而是要将数据保留下来,以备后续的数据分析
=》 溯源
这种情况就不能直接删除,而是逻辑删除
我们需要将这条数据加一个状态字段 =》 is_deleted 默认值 0 , 如果删除 将这个字段值设置 1
正常情况查询数据:
select * from student where is_deleted = 0;
所以所谓删除 =》 实际在数据库里面就是update
update student set is_deleted=1 where stu_code=?

修改数据
# 语法
update 表名 set 字段名1=字段值1,字段名2=字段值2....字段名n=字段值n [where 条件]
# 将jack的地址修改被成都
mysql> update user set user_address='成都' where id=1;
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0
mysql> select * from user;
+----+-----------+----------+-------------+--------------+-----------+
| id | user_name | user_age | user_gender | user_address | user_like |
+----+-----------+----------+-------------+--------------+-----------+
| 1 | jack | 18 | 1 | 成都 | NULL |
| 2 | rose | 17 | 1 | NULL | NULL |
+----+-----------+----------+-------------+--------------+-----------+

查询(重点)
投影查询
# 语法:* 代表所有字段(列)
select * from 表名;
## 按照字段进行查询
select user_name,user_gender from user;
限制查询(重中之重)
  • 关键字:limit
  • 方法一:限制条数 limit n
#只查2条数据
select * from user limit 2;
  • 方法2:分段查询 limit index,length
# index : 下标 从0开始
# length : 长度
# 下标从0开始 ,查询2条
select * from user limit 0,2;
# 定一个基调: 3条一页
# 第一页
select * from user limit 0,3;
# 第二页
select * from user limit 3,3;
# 第三页
select * from user limit 6,3;
# 分页有两个参数
# page 当前的页数
# pageSize 每页的条数
# 第一页: page=1&pageSize=60 ===> limit 0, 60
# 第二页: page=2&pageSize=60 ====> limit 60, 60
# 第三页: page=3&pageSize=60 ====> limit 120, 60
# 总结一下规律
# 页码: page
# 页容量: pageSize
limit (page-1)*pageSize, pageSize;
# 这个规律记下来,后面要用

如果有SQL注入漏洞: 我们的核心是啥?==》 查数据
通过注入漏洞去查询: 数据库,数据库中的表,表里面的字段,数据
条件查询
  • 关键字:where
  • 单条件:
select * from user where user_name="JACK";
  • 多条件:
#多条件 =》在JS中 多条件用的逻辑运算符: && || !
# 在数据库中对应: and or not
select * from user where user_name="ROSE" and user_age >20;
select * from user where user_age > 21 or user_gender="男";

# not 有几个组合
# 以某个字段值是否为空作为条件: is null/ is not null
select * from user where user_address is not null;
select * from user where user_address is null;

# not 还有一种情况 : 判断某个值是否在某个集合中
# in / not in
select * from user where user_age=20 or user_age=22 or user_age=23;
select * from user where user_name in("jack","rose",23);
select * from user where user_age between 20 and 30;
  • 比较
# >,>=,<,<= , != , between ...and..
# between ...and.. 等价于 >= and <=
  • 将条件,限制,投影 结合起来限制查询一定是放在SQL语句的最后
 select user_name,user_age from user where user_age >20 limit 1;
模糊查询
  • 关键字:like % _
  • 全模糊查询语法:select * from 表名 where 字段名 like "%条件值%";
#查询名字中间有k的同学的所有信息
select * from user where user_name like "%k%";
  • 半模糊%放在开头或结尾
  • 占位符_表示一个字符
#查询名字由三个字符组成且中间字母是c的学生信息
select * from user where user_name like "_o_";
  • 拓展:正则表达式查询,关键字:REGEXP
select * from user where user_name REGEXP 'ja.k';
排序查询

排序在实际的业务相当多

销量排行, 热歌榜, 成绩同级排名,热点话题排名。。。。。。

关键字 : order by

语法: order by 字段名 asc/desc

asc 升序 =》 默认值

desc 降序 =》 用的多

#通过年龄升序
select * from user order by user_age asc;
#通过年龄降序
select * from user order by user_age desc;
#通过年龄降序后,通过id降序
update user set user_age=22 where user_name="lucy";
select * from user order by user_age desc, id desc;

# 一定记住一点:
# 程序是从左到右,从上到下 依次扫描
# 和安全相关的排序:
select * from table order by 数字
数字: 代表的是第几列,就是第几个字段

子查询
# 子查询总的来说可以分成两大类:
# 1. where子查询
# where 字段 in | not in (子查询)
# where 字段= | > | >= | < | <= | !=(子查询)
select cat_id from goods order by shop_price desc limit 1;
select * from category where cat_id=(select cat_id from goods order by
shop_price desc limit 1);


# 2. from子查询
select * from goods order by goods_price desc limit 5;
select * from (select * from goods order by goods_price desc limit 5) as test;
联合查询
# union
# 他的作用:将两个查询的结果集 组合成一个结果集
# 语法: 查询语句 union 查询语句;
select goods_id,goods_name from goods
UNION
SELECT cat_id,cat_name from category;
# 需要注意: union前后的查询的字段数,必须是相等的(和内容无关),才能结合起来。
select goods_id,goods_name from goods
union
SELECT 1,2,3;
# union的结果集的结合的条件
# 条件就是:两次查询的结果的字段数必须一致
select * from t_class
union
select stu_id, stu_name from t_student;
# sql注入的地方
select * from t_class where class_id=-1
union
select 1,2;

九、内置数据库

  • MySQL 默认存在 4 个内置数据库
  • performance_schema
    • 主要用于收集数据库服务器性能参数。
  • sys
    • Sys 库所有的数据源来自:performance_schema。
    • 目标是把 performance_schema 的把复杂度降低,让 DBA 能更好的阅读这个库里的内容。
  • mysql
    • mysql 的核心数据库,类似于 sql server 中的 master 表,主要负责存储数据库的用户、权限设置、关键字等 mysql 自己需要使用的控制和管理信息。
select host,user,authentication_string from user;
  • information_schema(重点掌握)
    • information_schema 提供了访问数据库元数据的方式。
    • 元数据是关于数据的数据,如数据库名或表名,列的数据类型,或访问权限等。
    • 换句换说,information_schema 是一个信息数据库,它保存着关于 MySQL 服务器所维护的所有其他数据库的信息。
    • information_schema 有三张关键的表:schematatablescolumns
    • schemata

      • 提供了关于数据库中的库的信息。
      • 详细表述了某个库的名称,默认编码,排序规则。
      • 各字段说明如下:

字段

含义

schema_name

数据库名称

default_character_set_name

数据库编码

default_collation_name

数据库排序规则

select schema_name from information_schema.schemata;
    • tables

      • 提供了关于数据库中的表的信息(包括视图)。
      • 详细表述了某个表属于哪个schema,表类型,表引擎,创建时间等信息。
      • 各字段说明如下:

字段

含义

table_catalog

数据表登记目录

table_schema

数据表所属的数据库名

table_name

表名称

........

........

-- 所有数据库的表名
mysql> select table_name from information_schema.tables; 

-- 指定数据库的表名
mysql> select table_name from information_schema.tables where table_schema = 'student';
select column_name from information_schema.columns where table_schema = 'student' and table_name = 'users';
    • columns
      • 提供了关于表中的列的信息。
      • 详细表述了某个列属于哪个表。
      • 各字段说明如下:

字段

含义

table_schema

表所有者(对于schema的名称)

table_name

表名

column_name

列名

......

......

十、内置函数

查看数据库版本
select version();
select @@version;
获取数据库路径
#获取数据库数据存放的路径
select @@datadir;
#获取数据库路径
select @@basedir;
获取数据库名
select database();
获取用户名
select user();
获取组合数据
  • concat():用于将多个字符串连接成一个字符串,形成单独一列,可能有多行。
  • group_concat():返回一个字符串结果,该结果由分组中的值连接组合而成,形成单独一列,只有一行。
mysql> select concat(user_name,'-',user_age) from user;
+--------------------------------+
| concat(user_name,'-',user_age) |
+--------------------------------+
| jack-18                        |
| rose-17                        |
| lucy-22                        |
| tom-19                         |
| David-22                       |
| Allen-23                       |
+--------------------------------+
6 rows in set (0.00 sec)

mysql> select group_concat(user_name,'-',user_age) from user;
+--------------------------------------------------+
| group_concat(user_name,'-',user_age)             |
+--------------------------------------------------+
| jack-18,rose-17,lucy-22,tom-19,David-22,Allen-23 |
+--------------------------------------------------+
1 row in set (0.00 sec)
获取字节长度
mysql> select length('123456');
+------------------+
| length('123456') |
+------------------+
|                6 |
+------------------+
1 row in set (0.00 sec)

#获取字符的长度
mysql> select char_length('国科');
+-----------------------+
| char_length('国科')   |
+-----------------------+
|                     2 |
+-----------------------+
1 row in set (0.00 sec)
字符截取
  • substr():字符截取(重点)
  • left():从左开始字符截取
  • right():从右开始字符截取
mysql> select substr('yongz',1,1);
+---------------------+
| substr('yongz',1,1) |
+---------------------+
| y                   |
+---------------------+
1 row in set (0.00 sec)

mysql> select left('yongz',1);
+-----------------+
| left('yongz',1) |
+-----------------+
| y               |
+-----------------+
1 row in set (0.00 sec)

mysql> select right('yongz',1);
+------------------+
| right('yongz',1) |
+------------------+
| z                |
+------------------+
1 row in set (0.00 sec)
睡眠/延时函数
mysql> select sleep(3);
+----------+
| sleep(3) |
+----------+
|        0 |
+----------+
1 row in set (3.01 sec)
判断
mysql> select if(substr(database(),1,1)='s','是','不是');
+-----------------------------------------------+
| if(substr(database(),1,1)='s','是','不是')    |
+-----------------------------------------------+
| 是                                            |
+-----------------------------------------------+
1 row in set (0.00 sec)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2049985.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

进程间的通信2——有名管道、信号

通信方式&#xff1a;(1)单工&#xff1a;//广播&#xff1b;单一方向的数据通道&#xff1b; &#xff08;2&#xff09;半双工&#xff1a;//对讲机&#xff1b;同一时刻只能有一个方向&#xff1b; &#xff08;3&#xff09;全双工&#xff1a;//手机电话&#xff1b;同一时…

Selenium 自动化测试平台

1.介绍 Selenium 是一套 Web网站 的程序自动化操作 解决方案。 通过它&#xff0c;我们可以写出自动化程序&#xff0c;像人一样在浏览器里操作web界面。 比如点击界面按钮&#xff0c;在文本框中输入文字 等操作。 而且还能从web界面获取信息。 比如获取 火车、汽车票务信息…

Spark2.x 入门:套接字流(DStream)

Spark Streaming可以通过Socket端口监听并接收数据&#xff0c;然后进行相应处理。 新建NetworkWordCount.scala代码文件&#xff0c;请在该文件中输入如下内容&#xff1a; package org.apache.spark.examples.streaming import org.apache.spark._ import org.apache.spark…

图像数据处理9

二、灰度变换 2.3 非线性灰度变换 以下式子中使用 f 表示输入图像的像素值&#xff0c;g 表示输出图像的像素值 2.3.1伽马校正&#xff08;Gamma Correction&#xff09; γ 是伽马值&#xff0c;通常大于0。调整 γ 的值可以改变图像的亮度。当 γ<1 时&#xff0c;图像…

一个简单的Rtmp推流客户端(QT录音,OpenCV摄像,FFmpeg编码推流)

RTMP&#xff08;Real-Time Messaging Protocol&#xff09;是一种实时流媒体传输协议&#xff0c;常用于音视频直播。 RTMP推流客户端是一种能够将音视频数据推送到直播服务器的工具。QT录音是利用Qt库实现的录音功能。OpenCV摄像是利用OpenCV库实现的对摄像头的控制和图像处理…

Chrome书签搜索插件

效果展示 这是一个chroma插件&#xff0c;可以按住 ctrl/command B 进行搜索您的书签&#xff0c;并且点击打开您的书签。支持上下切换回车打开新页面。支持文件夹搜索。多层级文件夹使用 / 分割。如&#xff1a;文件夹1/文件夹2/标签1 扩展下载地址 bookmark-search 欢迎有…

小程序学习day09-WXS脚本、自定义组件-组件的创建、引用、组件与页面的区别、组件的样式隔离

39、WXS脚本&#xff08;小程序独有的一套脚本语言&#xff09; &#xff08;1&#xff09;作用&#xff1a;结合WXML&#xff0c;可以构建出页面结构 &#xff08;2&#xff09;应用&#xff1a;在小程序中充当过滤器。&#xff08;wxml无法调用在页面的.js中定义的函数&…

DNS in Kubernetes

DNS in Kubernetes 对象分配的名称Service DNS 记录Pod DNS 记录 Cluster DNS参考 DNS for Services and Pods 这里主要讨论集群内不同对象之间的DNS解析 默认情况下&#xff0c;创建集群时&#xff0c;k8s会部署内置的DNS服务器&#xff0c;在集群内&#xff0c;我们不关注…

spring-boot-3.2.6+spring-security-6.2.4+oauth2整合github示例

一、添加依赖 在 pom.xml 中添加如下依赖 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"h…

<数据集>航拍路面病害识别数据集<目标检测>

数据集格式&#xff1a;VOCYOLO格式 图片数量&#xff1a;3151张 标注数量(xml文件个数)&#xff1a;3151 标注数量(txt文件个数)&#xff1a;3151 标注类别数&#xff1a;7 标注类别名称&#xff1a;[Longitudinal crack, Transverse crack, Alligator crack, Oblique cr…

腾讯 图标点选 分析

声明: 本文章中所有内容仅供学习交流使用&#xff0c;不用于其他任何目的&#xff0c;抓包内容、敏感网址、数据接口等均已做脱敏处理&#xff0c;严禁用于商业用途和非法用途&#xff0c;否则由此产生的一切后果均与作者无关&#xff01; 有相关问题请第一时间头像私信联系我…

Element UI中报dateObject.getTime is not a function解决方法~

1、错误信息。 2、该报错原因是Element UI中日期组件的校验规则是type: "date",而一般我们从后台拿到的数据是字符串型的&#xff0c;不满足预期&#xff0c;就会报错。 3、解决方法。 去掉日子组件中的type: "date"校验规则即可。 rules: {newName: [{…

SOMEIP_ETS_046: echoUTF16FIXED

测试目的&#xff1a; 验证设备&#xff08;DUT&#xff09;是否能够正确处理echoUTF16FIXED方法的参数&#xff0c;并确保发送和接收的参数顺序和值保持一致。 描述 本测试用例旨在检查DUT在接收到一个使用echoUTF16FIXED方法的SOME/IP消息时&#xff0c;是否能够按照请求中…

利用PostgreSQL向量数据库和负责任的AI知识库在亚马逊云科技上构建商品推荐机器人

项目简介&#xff1a; 小李哥将继续每天介绍一个基于亚马逊云科技AWS云计算平台的全球前沿AI技术解决方案&#xff0c;帮助大家快速了解国际上最热门的云计算平台亚马逊云科技AWS AI最佳实践&#xff0c;并应用到自己的日常工作里。 本次介绍的是如何在亚马逊云科技利用Postg…

软件需求规格说明书编写规范(Doc原件)

软件需求规格说明书编写规范&#xff08;Word原件&#xff09; 1.项目背景 2.项目目标 3.系统架构 4.总体流程 5.名称解释 6.功能模块 软件全套资料部分文档清单&#xff1a; 工作安排任务书&#xff0c;可行性分析报告&#xff0c;立项申请审批表&#xff0c;产品需求规格说明…

WPF MvvmLight

关于 停止更新 官网&#xff1a;http://www.mvvmlight.net/ 源码地址&#xff1a;GitHub - lbugnion/mvvmlight: The main purpose of the toolkit is to accelerate the creation and development of MVVM applications in Xamarin.Android, Xamarin.iOS, Xamarin.Forms, Wi…

C++ //练习 17.17 更新你的程序,令它查找输入序列中所有违反“ei“语法规则的单词。

C Primer&#xff08;第5版&#xff09; 练习 17.17 练习 17.17 更新你的程序&#xff0c;令它查找输入序列中所有违反"ei"语法规则的单词。 环境&#xff1a;Linux Ubuntu&#xff08;云服务器&#xff09; 工具&#xff1a;vim 代码块&#xff1a; /**********…

定制开发AI智能名片O2O商城小程序:基于限量策略与个性化追求的营销创新

摘要:随着科技的飞速发展和消费者需求的日益多元化&#xff0c;传统商业模式正经历着前所未有的变革。在数字化转型的大潮中&#xff0c;定制开发AI智能名片O2O商城小程序作为一种新兴的商业模式&#xff0c;凭借其独特的个性化定制能力、高效的线上线下融合&#xff08;O2O&am…

居住证申报系统小程序的设计

管理员账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;群众用户管理&#xff0c;警方管理&#xff0c;居住证登记管理&#xff0c;回执单管理&#xff0c;领证信息管理&#xff0c;公告栏管理&#xff0c;系统管理 微信端账号功能包括&#xff1a;系统首页…

MySQL数据库专栏(四)数据库操作

1、创建数据库 create database if not exists [数据库名称] character set [字符集] COLLATE [排序规则]; 例如&#xff1a;create database if not exists db_demo character set utf8mb4 COLLATE utf8mb4_general_ci; if not exists&#xff1a;判断数据库是否存在&#x…