当前位置: 首页 > wzjs >正文

网站的评测系统怎么做的创意设计

网站的评测系统怎么做的,创意设计,dede网站wap,中国市场调查网目录 库的增删查改 查看数据库 创建数据库 删除数据库 修改数据库 认识系统编码(字符集和校验规则) 查看系统默认字符集以及校验规则 查看数据库支持的字符集和字符集校验规则 验证不同校验码编码的影响 校验规则对数据库的影响 数据库的备份…

目录

库的增删查改

查看数据库

创建数据库

删除数据库

修改数据库 

认识系统编码(字符集和校验规则)

查看系统默认字符集以及校验规则

查看数据库支持的字符集和字符集校验规则

验证不同校验码编码的影响

校验规则对数据库的影响

数据库的备份和恢复 

备份

恢复

其他情况 

查看当前数据库的具体链接情况 

表的增删查改

增加表

查看表

修改表

删除表 


注意:以下内容都属于DDL

库的增删查改

查看数据库

格式

SHOW DATABASES;

使用 

 

查看当前使用的数据库

格式 

SELECT DATABASE();

使用 

 

显示数据库的创建语句

格式 

SHOW CREATE TABLE 表名;

使用 

 MySQL 建议我们关键字使用大写,但是不是必须的。

数据库名字的反引号``,是为了防止使用的数据库名刚好是关键字

/*!40100 default.... */ 这个不是注释,表示当前mysql版本大于4.01版本,就执行这句话

创建数据库

本质:在/var/lib/mysql  创建一个目录

CREATE DATABASE [IF NOT EXISTS] db_name [create_specification [, create_specification] ...]
create_specification:[DEFAULT] CHARACTER SET charset_name[DEFAULT] COLLATE collation_name

解释:

  • 大写的表示关键字
  • [] 是可选项
  • 数据库创建的时候有两个编码集:

CHARACTER SET: 指定数据库采用的字符集 - 数据库未来存储数据的编码方式

COLLATE: 指定数据库字符集的校验规则 - 支持数据库,进行字段比较使用的编码,本质上也是一种读取数据库中数据采用的编码格式

数据库无论对数据做任何操作,都必须保证操作和编码必须是编码一致的!!

在当我们创建数据库没有指定字符集和校验规则时, MySQL 8.0 及以上版本默认使用 utf8mb4_0900_ai_ci 作为默认排序规则。 其他的版本默认使用的是utf8mb4_general_ci;

使用案例

用if not exitsts选项  创建一个已经存在的数据库(我们会发现他报告warning)

创建一个使用utf字符集,并带校对规则的 db3 数据库。 

删除数据库

格式

DROP DATABASE [IF EXISTS] db_ name; 

执行删除之后的结果:

1、数据库内部看不到对应的数据库

2、对应的数据库文件夹被删除,级联删除,里面的数据表全部被删

注意:不要随意删除数据库,也不要随意对他进行重命名(不支持)

修改数据库 

ALTER DATABASE db_name 
[alter_spacification [,alter_spacification]...] alter_spacification: 
[DEFAULT] CHARACTER SET charset_name 
[DEFAULT] COLLATE collation_name

对数据库的修改主要指的是修改数据库的字符集,校验规则  

 使用举例:alter database test charset=gbk collate gbk_chinese_ci;

认识系统编码(字符集和校验规则)

只要是数据无论是未来的读取还是存取,这个数据都要有对应的编码格式的,数据库是更注重编码集,且必须是统一的,我存数据的时候使用什么存储的,我取的时候也要用什么取。

创建数据库的时候,有两个编码集

1.数据库编码集 - 数据库未来存储数据

2.数据库校验集 - 支持数据库,进行字段比较使用的编码,本质也是一种读取数据库中数据的采用的编码格式

结论:数据库无论对数据做任何操作,都必须保证操作和编码必须是编码一致的!

查看系统默认字符集以及校验规则

show variables like 'character_set_database';
show variables like 'collation_database';

注意:MySQL 8.0 及以上版本默认使用 utf8mb4_0900_ai_ci 作为默认排序规则。 其他的版本默认使用的是utf8mb4_general_ci;

我们可以不只看database,还可以使用

show variables like 'collation_%';

查看connection(链接)和server(服务)

查看数据库支持的字符集和字符集校验规则

查看数据库支持的字符集

show charset;

 查看字符集校验规则

 show collation;

验证不同校验码编码的影响

create database d1;
create database d2 charset=utf8;
create database d3 character set utf8;
create database d4 charset=utf8 collate utf8_general_ci;

 创建一个数据库test1,校验规则使用utf8_ general_ ci[不区分大小写]  

create database test1 collate utf8_general_ci;

创建一个数据库test2,校验规则使用utf8_ bin[区分大小写]

create database test2 collate utf8_bin; 

 进入第一个数据库,暂时没有表 

use test1;
show tables;

 

我们开始尝试建表 

create table if not exists person(name varchar(20));

用desc我们查看表结构的详细信息 

desc person;

插入数据并检索数据

insert into person values('a');//采用编码规则

select *from person;//采用校验规则

检索name为a的数据

比较也是用校验规则utf8_general_c不区分大小写

select *from person where name='a';

按照上述方法查看test2 

 utf8_bin 区分大小写 

 分别对test1和test2进行排序

select * from person order by name;

校验规则对数据库的影响

也就是如果不校验规则的话,那么可能我们想要查找的数据和数据库返回的不一样。比如说我们想让保安通过喇叭在学校找一个高三叫小明的同学,但是保安忽略了高三年级,而是直接说,请小明同学来到办公室,这里有人找你,那么全学校的小明就都会响应,那这的数据肯定就是错的了

数据库的备份和恢复 

备份

备份的并不只有数据,还有使用该数据库的时候的所有有效操作

mysqldump -P3306 -u root -p 密码 -B 数据库名 > 数据库备份存储的文件路径

这个命令的各个部分的含义是:

  • mysqldump:MySQL 提供的命令行工具,用于创建数据库的备份(导出)
  • -P3306:指定 MySQL 服务器的端口号,3306 是默认端口
  • -u root:指定用户名为 root
  • -p 密码:指定访问数据库的密码(注意:在命令行中直接写密码是不安全的)
  • -B 数据库名:指定要备份的数据库,-B 参数表示包含创建数据库和使用数据库的语句
  • > 数据库备份存储的文件路径:将备份内容重定向到指定的文件路径

执行此命令后,mysqldump 会将指定数据库的所有表结构和数据导出为 SQL 语句,保存到指定的文件中。这个备份文件可以用于数据库的还原操作。

这时,可以打开看看 test2.sql 文件里的内容,其实把我们整个创建数据库,建表,导入数据的语句都装载这个文件中。 

恢复

mysql> source /root/test2.sql; 

 我们先把test2给删了  然后再还原。

它会把备份文件里的sql语句全部都跑一遍。  

其他情况 

如果备份的不是整个数据库,而是其中的一张表,怎么做?

# mysqldump -u root -p 数据库名 表名1 表名2 > D:/mytest.sql  

同时备份多个数据库 ? 

# mysqldump -u root -p -B 数据库名1 数据库名2 ... > 数据库存放路径 

如果备份一个数据库时,没有带上-B参数, 在恢复数据库时,需要先创建空数据库,然后使用数据库,再使用source来还原。如果带了B 那么备份文件里会有create database这样的语句

查看当前数据库的具体链接情况 

show processlist

可以告诉我们当前有哪些用户连接到我们的MySQL,如果查出某个用户不是你正常登陆的,很有可能你的数据库被人入侵了。以后大家发现自己数据库比较慢时,可以用这个指令来查看数据库连接情况。  

表的增删查改

增加表

我们先用MyIsam作为引擎,进行创建表

CREATE TABLE IF NOT EXISTS user1 (id int,name varchar(20) COMMENT '用户名',password char(32) COMMENT '用户密码',CHARACTER SET utf8 COLLATE utf8_general_ci ENGINE MyISAM
);

如果不加后面的字符集和校验规则就默认使用数据库的

当创建表之后,我们发现对应的Linux下数据库目录中会多了关于user1的文件

注意:在老版本中

在MySQL 8.0之前(5.7及更早版本),表的元数据存储在以下文件中:

  • .frm 文件:存储表结构
  • .MYD 文件:MyISAM表的数据文件
  • .MYI 文件:MyISAM表的索引文件

而在MySQL 8.0及以后版本中:

  • .frm 文件被移除
  • 表元数据存储在InnoDB数据字典中
  • .sdi (Serialized Dictionary Information) 文件包含序列化的表定义信息

 我们再用InnoDB作为引擎创建个表,如果查看它的文件

CREATE TABLE IF NOT EXISTS user2 (id int,name varchar(20) COMMENT '用户名',password char(32) COMMENT '用户密码'
) CHARACTER SET utf8 COLLATE utf8_general_ci ENGINE InnoDB;

会发现user2和user1的个数不一样 

 其实这里与存储引擎的索引是有关系的,我们后续再讲。

查看表

如果我们忘记了当前所在数据库的名称,可以使用

SELECT DATABASE();

 

列出数据库中的所有表

SHOW TABLES;

 列出特定数据库中的所有表

SHOW TABLES FROM database_name;

提供表的基本结构信息,以简洁的表格形式展示  

DESC table_name;

 显示的内容包括:

  • 列名(Field)
  • 数据类型(Type)
  • 是否允许NULL值(Null)
  • 键类型(Key),如PK(主键)、FK(外键)等
  • 默认值(Default)
  • 其他属性(Extra),如AUTO_INCREMENT

返回创建该表时使用的完整CREATE TABLE语句 

SHOW CREATE TABLE table_name;
  • 包含更详细的信息,比如:
    • 表的存储引擎(ENGINE)
    • 字符集(CHARSET)
    • 排序规则(COLLATE)
    • 索引定义(包括主键、外键、唯一索引等)
    • 约束条件
    • 表注释
    • 分区信息(如果有)

这样看着挺不舒服的,我们可以把;改成\G,使用\G结尾时,MySQL会将结果以垂直方式显示,每个字段独占一行,这在查看包含多列或宽列的表结构时特别有用。

但是仔细看就会发现,这跟我当时写的不一样呀?其实你看起来好像和你创建的写法不一样,但实际上是因为mysqld对你的sql语句进行语法分析词法分析的时候,可能你的sql语句写法不是很标准,他会帮你转化成比较标准化的写法,留下你的所有操作痕迹

修改表

在项目实际开发中,经常修改某个表的结构,比如字段名字,字段大小,字段类型,表的字符集类型,表的存储引擎 等等。我们还有需求,添加字段,删除字段等等。这时我们就需要修改表。 

先在我们的user1中添加一些数据

insert into user1 values(1,'a','1982-01-04');
insert into user1 values(2,'a','1983-05-04');

在password之后,新添加一列 

格式

ALTER TABLE 表名 ADD COLUMN 新列名 数据类型 [约束条件] AFTER 已存在的列名;

使用 

alter table user1 add image_path varchar(128) comment '这个是用户的头像路径' after password;

修改某一列的类型属性(比如长度)

格式

ALTER TABLE 表名 MODIFY COLUMN 列名 新数据类型 [新约束条件];

使用

alter table user1 modify name varchar(60);

需要注意的是他会把原来所有的属性给直接覆盖!!(name字段的comment描述没有了)

修改-删除password列

格式 

ALTER TABLE 表名 DROP COLUMN 列名;

使用 

alter table user1 drop password;

修改表名

格式 

ALTER TABLE 旧表名 RENAME TO 新表名;

使用

alter table user1 rename to user;

修改列名

ALTER TABLE 表名 CHANGE COLUMN 旧列名 新列名 数据类型 [约束条件];

不仅要提供列名称,也要把列的相关属性提供给我

alter table user1 change id xuhao int;

删除表 

格式

DROP TABLE 表名;

使用

drop table user2;

 

注意: 轻易不要做修改或者删除,表跟数据库一样,在所有的业务处理过程中都靠近底层、后端,所以表结构、表名称、表是否存在等修改直接决定了所有使用该数据库的上层要不要改变!!

作为一个程序员来说,如果一旦开发了很长时间且表结构已经建好了,一旦在后期出现了需要修改表结构的情况,那么整个上层的业务逻辑可能都需要被改变!!因此这样的影响是非常巨大的! 


文章转载自:

http://LE6ABjTH.wfttq.cn
http://4I8M2Dpo.wfttq.cn
http://9sxPf0v3.wfttq.cn
http://FQYJ2qOI.wfttq.cn
http://YcdBF5MD.wfttq.cn
http://D04XhbGS.wfttq.cn
http://azf62TjK.wfttq.cn
http://CzjNZHw7.wfttq.cn
http://QzgFPSBt.wfttq.cn
http://bMLRilIT.wfttq.cn
http://XghetIXu.wfttq.cn
http://MT83wpqo.wfttq.cn
http://pOzIveeS.wfttq.cn
http://PgfdKKSs.wfttq.cn
http://3x9juJSr.wfttq.cn
http://skcMxc8f.wfttq.cn
http://Z9y2d6sF.wfttq.cn
http://3hxgNzpb.wfttq.cn
http://d76LJHvv.wfttq.cn
http://ka9JKq4j.wfttq.cn
http://xxAH9Usw.wfttq.cn
http://DmCba1qx.wfttq.cn
http://HLMAdTAP.wfttq.cn
http://ts5rCwW6.wfttq.cn
http://k2tpdn0u.wfttq.cn
http://pOCV0utV.wfttq.cn
http://fWiJSCJG.wfttq.cn
http://cD6O2XKz.wfttq.cn
http://96sHAlsn.wfttq.cn
http://xVyMbi3I.wfttq.cn
http://www.dtcms.com/wzjs/743344.html

相关文章:

  • 没有专项备案的网站做网站除了有服务器还需要什么问题
  • 不同网站相似的页面百度收录吗朋友圈广告30元 1000次
  • 五屏网站建设多少钱wordpress插件连接数据库
  • 广西seo网站13款最佳免费室内设计软件
  • 建设网站基本步骤帝国企业网站源码
  • 网站经常被黑有没类似建设通的免费网站
  • 天心区网站建设谷城网站建设
  • 忻州市中小企业局网站wordpress 双语言
  • 提供常州网站建设搜狗友链交换
  • 阿里巴巴国际站运营wordpress如何生成rss
  • 旅游网站建设成本核算辽宁网站建设多少钱
  • 安徽博物馆网站建设的调研报告微信小程序入口登录
  • 找个做网站的人图片分享网站源码
  • 网站建设过程中要细心色盲能治好吗
  • 软件网站开发平台戴尔的网站建设目标
  • 江门建设企业网站会员制营销的优缺点
  • 玉溪网站开发公司wordpress目录插件
  • 做网站需要用到哪些开发软件做网站如何保证询盘数量
  • 做网站一年赚多少钱彩票网站APP建设
  • 金华做网站多少钱搜索指数在线查询
  • 优设网站怎么下载喜欢做木工 网站
  • 网站建设技术可行性室内设计培训学费多少
  • 网站商品图片尺寸兼职做效果图的网站有哪些
  • 张家港江阴网站制作网站导航为什么用ul列表做
  • 开发购物网站社交的软件公司wordpress 繁体 插件
  • 什么是网站静态化网站建设管理内容保障制度
  • linux 搭建wordpress怎么快速优化关键词排名
  • 手机营销型网站建设莱芜雪野湖地图
  • 带空间二字的韩国视频网站wordpress logo图片
  • 网站建设中最重要的是什么wordpress代码块行号