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

建设银行企业网站打不开百度手机助手app下载

建设银行企业网站打不开,百度手机助手app下载,淄博建设工程学校官方网站,新网站如何做网站优化超键、候选键、主键、外键 超键#xff08;Superkey#xff09;#xff1a;假设我们有一个学生信息表#xff0c;其中包含学生ID、姓名和手机号码等信息。在这个表中#xff0c;{学生ID} 和 {姓名, 手机号码} 都可以作为超键#xff0c;因为它们都能唯一标识每个学生的信…超键、候选键、主键、外键 超键Superkey假设我们有一个学生信息表其中包含学生ID、姓名和手机号码等信息。在这个表中{学生ID} 和 {姓名, 手机号码} 都可以作为超键因为它们都能唯一标识每个学生的信息。 候选键Candidate Key在学生信息表中{学生ID} 是一个候选键因为它是最小超键没有冗余的属性。换句话说如果我们移除任何一个属性它就不再是超键了。 主键Primary Key在学生信息表中我们可以选择学生ID作为主键。主键是用来唯一标识表中每个记录的键而且主键的值不能重复也不能为空值。通过指定主键我们可以确保每个学生ID在表中都是唯一的而且不能为空。 外键Foreign Key假设我们有另一个表格存储着学生的成绩信息。在成绩表中我们可以包含一个指向学生信息表的外键比如学生ID。这样成绩表中的每一条记录都可以与学生信息表中的某个学生相关联。 为什么用自增列作为主键 如果表使用自增主键那么每次插入新的记录记录就会顺序添加到当前索引节点的后续位置当一页写满就会自动开辟一个新的页 如果使用非自增主键如果身份证号或学号等由于每次插入主键的值近似于随机因此每次新记录都要被插到现有索引页的中间某个位置此时MySQL不得不为了将新记录插到合适位置而移动数据甚至目标页面可能已经被回写到磁盘上而从缓存中清掉此时又要从磁盘上读回来这增加了很多开销同时频繁的移动、分页操作造成了大量的碎片得到了不够紧凑的索引结构后续不得不通过OPTIMIZE TABLE来重建表并优化填充页面。 触发器的作用 触发器是一种特殊的存储过程主要是通过事件来触发而被执行的。它可以强化约束来维护数据的完整性和一致性可以跟踪数据库内的操作从而不允许未经许可的更新和变化。可以联级运算。如某表上的触发器上包含对另一个表的数据操作而该操作又会导致该表触发器被触发。 假设我们有一个名为 employees 的表存储了公司员工的信息其中包括员工的工资信息。我们希望在向该表中插入新记录时自动检查员工的工资是否超过了预设的最大工资限额如果超过了则阻止插入操作并记录一条警告信息。 我们可以创建一个触发器来实现这个功能。下面是一个简单的示例 sql -- 创建一个名为 check_salary_trigger 的触发器 CREATE TRIGGER check_salary_trigger BEFORE INSERT ON employees FOR EACH ROW BEGIN-- 检查新插入记录的工资是否超过了最大工资限额假设为 10000IF NEW.salary 10000 THEN-- 如果工资超过了限额则阻止插入操作并输出警告信息SIGNAL SQLSTATE 45000 SET MESSAGE_TEXT Salary exceeds maximum limit!;END IF; END;在上面的示例中我们创建了一个名为 check_salary_trigger 的触发器它在每次向 employees 表中插入新记录之前触发。在触发器中我们使用条件语句检查新插入记录的工资是否超过了预设的最大限额10000。如果超过了限额则触发器会发出一个信号阻止插入操作并输出一条警告信息。 通过这种方式我们可以利用触发器实现对数据的自动检查和处理确保数据的完整性和准确性。 什么是存储过程用什么来调用 存储过程是一个预编译的SQL语句优点是允许模块化的设计就是说只需创建一次以后在该程序中就可以调用多次。如果某次操作需要执行多次SQL使用存储过程比单纯SQL语句执行要快。 调用 1可以用一个命令对象来调用存储过程。 2可以供外部程序调用比如java程序。 优点 1存储过程是预编译过的执行效率高。 2存储过程的代码直接存放于数据库中通过存储过程名直接调用减少网络通讯。 3安全性高执行存储过程需要有一定权限的用户。 4存储过程可以重复使用可减少数据库开发人员的工作量。 缺点 移植性差 存储过程Stored Procedure和函数Function是数据库中常用的两种可重复使用的代码块它们有以下区别 返回值类型 存储过程可以不返回值也可以返回多个结果集甚至可以修改数据库中的数据但它不能直接作为表达式的一部分调用。函数必须返回一个值并且可以像普通表达式一样被调用和使用可以作为查询语句的一部分。 用法 存储过程通常用于执行一系列的 SQL 语句或处理逻辑常见用途包括数据处理、业务逻辑、数据验证等。函数通常用于执行某种特定的计算或处理并返回一个值。例如可以用函数计算两个数的平均值或者判断一个日期是否为工作日。 调用方式 存储过程可以通过 SQL 语句的 CALL 或 EXECUTE 命令来调用也可以通过应用程序代码直接调用。函数通常可以像普通表达式一样调用可以在 SELECT 语句或 WHERE 子句中使用。 作用域 存储过程通常是与数据库关联的它们可以访问数据库中的数据和对象。函数可以是与数据库关联的也可以是与数据库无关的。在某些数据库管理系统中函数可以访问数据库中的数据和对象但在其他数据库管理系统中函数可能只能访问函数定义所在的特定数据库。 什么是视图 视图View是数据库中的一种虚拟表它是基于一个或多个实际表或其他视图的查询结果集合并且可以像表一样被查询和操作。视图不存储实际的数据而是根据定义的查询语句动态地生成数据。 假设我们有一个数据库中的两个表Employee员工信息和Department部门信息。Employee表包含员工的ID、姓名和部门ID等信息而Department表包含部门的ID和名称等信息。 现在我们可以创建一个名为EmployeeDetails的视图用来显示员工的详细信息包括员工的姓名、部门名称等。下面是一个示例 SQL 查询来创建这个视图 sql CREATE VIEW EmployeeDetails AS SELECT e.EmployeeID, e.EmployeeName, d.DepartmentName FROM Employee e JOIN Department d ON e.DepartmentID d.DepartmentID;通过这个视图我们可以方便地查询员工的详细信息而不必直接操作原始的Employee和Department表。例如 sql SELECT * FROM EmployeeDetails;这条查询会返回一个包含员工的ID、姓名和部门名称的结果集而不必关心具体的表结构和关联逻辑。 优点 可选操作简单维护数据独立性可以产生多种视图 1对数据库的访问因为视图可以有选择性的选取数据库里的一部分。 2)用户通过简单的查询可以从复杂查询中得到结果。 3)维护数据的独立性试图可从多个表检索数据。 4)对于相同的数据可产生不同的视图。 缺点 性能查询视图时必须把视图的查询转化成对基本表的查询如果这个视图是由一个复杂的多表查询所定义那么那么就无法更改数据 查询仍然是对基本表的查询。 游标 游标允许程序逐行访问查询结果并且可以对结果集进行随机访问、更新和删除等操作。 drop、truncate、 delete区别 drop 删除整个表   执行DROP命令后表及其相关的所有内容都将被永久删除无法恢复。 truncate命令用于删除表中的所有数据但保留表的结构。 TRUNCATE命令在删除数据时不会激活触发器。 delete命令用于删除表中的一行或多行数据可以通过WHERE子句指定要删除的行。 DROP用于删除整个表包括结构和数据TRUNCATE用于删除表中的所有数据但保留表的结构DELETE用于删除表中的一行或多行数据可根据条件选择性删除数据。 什么是临时表临时表什么时候删除 临时表Temporary Table是在数据库中用于存储临时数据的表它的生命周期在会话结束时或在事务结束时结束。临时表通常用于存储中间结果或临时数据它们在一段时间内存在完成了任务后会自动删除不会占用数据库中的永久存储空间。 非关系型数据库和关系型数据库区别优势比较? 关系型数据库RDBMS 结构化数据存储关系型数据库使用表格表来存储数据数据以行和列的形式组织具有严格的结构化模式。SQL支持使用结构化查询语言SQL进行数据操作和查询SQL语言规范化易于学习和使用。事务支持支持事务Transaction的特性具有 ACID原子性、一致性、隔离性、持久性特性确保数据的完整性和一致性。数据一致性数据之间的关系通过外键等约束保证了数据的一致性和完整性。强大的查询能力支持复杂的查询操作包括连接Join、聚合Aggregate等操作。 非关系型数据库NoSQL 灵活的数据模型非关系型数据库采用了灵活的数据模型如文档型、键值对、列族等可以存储半结构化或非结构化的数据。高扩展性非关系型数据库具有良好的横向扩展性可以方便地水平扩展适应大规模数据的存储和处理需求。高性能非关系型数据库通常设计为面向键值对的存储方式读写操作速度较快适用于大量数据的快速存取。分布式存储非关系型数据库支持分布式存储和处理能够在多个节点上存储和处理数据提高系统的容错性和可用性。适用于非结构化数据适用于存储半结构化或非结构化的数据如日志、文档、图片等。 范式 第一范式1NF确保每个属性都是原子的即每个属性不能再分解为更小的数据项。换句话说每个字段都只能包含一个值而不能包含多个值或重复的组合。 不可分 例如我们应该将客户的地址和电话分别存储在独立的字段中而不是将它们合并在一个字段中。 第二范式2NF在满足第一范式的基础上消除部分依赖。具体来说所有非主属性都必须完全依赖于候选键而不能只依赖于候选键的部分属性。  第三范式3NF在满足第二范式的基础上消除传递依赖。这意味着非主属性不应该依赖于其他非主属性而应该直接依赖于候选键。 此外还有更高级别的范式如Boyce-Codd范式BCNF和第四范式4NF它们进一步细化了数据结构的设计规范。 什么是 内连接、外连接、交叉连接笛卡尔积)等? 在关系型数据库中连接Join是将两个或多个表中的数据按照某些关联条件进行匹配、合并和筛选的操作。常见的连接类型包括内连接、外连接、交叉连接和自然连接。下面对它们进行简要解释 内连接Inner Join内连接是最常用的连接类型之一。它返回两个表中满足连接条件的行即同时存在于两个表中的行。内连接使用一个连接谓词JOIN并且只返回匹配条件为真的行。 外连接Outer Join外连接包括左外连接Left Outer Join、右外连接Right Outer Join和全外连接Full Outer Join等几种类型。外连接会返回满足连接条件的行同时保留了未匹配的行。左外连接返回左表中的所有行右外连接返回右表中的所有行全外连接返回左右表中的所有行。 交叉连接Cross Join交叉连接是指返回两个表中所有可能的组合也称为笛卡尔积Cartesian Product。交叉连接会将一个表中的每一行与另一个表中的每一行进行组合生成的结果是两个表行数的乘积。 自然连接Natural Join自然连接是根据两个表之间的相同列名进行连接的操作省略了连接条件ON 条件。自然连接将匹配列名相同的列作为连接条件并返回匹配条件为真的行。 varchar和char的使用场景? CHAR 是一种固定长度的字符数据类型它会在存储数据时始终占用固定长度的存储空间。 VARCHAR 是一种可变长度的字符数据类型它只会在存储实际数据时占用实际长度的存储空间。 char的存储方式是**对英文字符ASCII占用1个字节对一个汉字占用两个字节。*varchar的存储方式是**对每个英文字符占用2个字节汉字也占用2个字节。 两者的存储数据都非unicode的字符数据 char的存取速度还是要比varchar要快得多因为其长度固定方便程序的存储与查找。 SQL语言分类 SQL语言共分为四大类 数据查询语言DQL数据操纵语言DML数据定义语言DDL数据控制语言DCL 数据查询语言DQL基本结构是由SELECT子句FROM子句WHERE子句组成的查询块 SELECT FROM WHERE 数据操纵语言DML主要有三种形式 插入INSERT更新UPDATE删除DELETE 数据定义语言DDL用来创建数据库中的各种对象-----表、视图、索引、同义词、聚簇等如 CREATE TABLE/VIEW/INDEX/SYN/CLUSTER 表 视图 索引 同义词 簇 DDL操作是隐性提交的不能rollback 数据控制语言DCL用来授予或回收访问数据库的某种特权并控制数据库操纵事务发生的时间及效果对数据库实行监视等。如 1) GRANT授权。 2) ROLLBACK [WORK] TO [SAVEPOINT]回退到某一点。回滚---ROLLBACK回滚命令使数据库状态回到上次最后提交的状态。其格式为 SQLROLLBACK; 3) COMMIT [WORK]提交。 在数据库的插入、删除和修改操作时只有当事务在提交到数据库时才算完成。在事务提交前只有操作数据库的这个人才能有权看到所做的事情别人只有在最后提交完成后才可以看到。 提交数据有三种类型显式提交、隐式提交及自动提交。下面分别说明这三种类型。 (1) 显式提交 用COMMIT命令直接完成的提交为显式提交。其格式为SQLCOMMIT (2) 隐式提交 用SQL命令间接完成的提交为隐式提交。这些命令是 ALTERAUDITCOMMENTCONNECTCREATEDISCONNECTDROP EXITGRANTNOAUDITQUITREVOKERENAME。 (3) 自动提交 若把AUTOCOMMIT设置为ON则在插入、修改、删除语句执行后 系统将自动进行提交这就是自动提交。 其格式为SQLSET AUTOCOMMIT ON like%和_的区别 %百分号通配符:**表示任何字符出现任意次数(可以是0次). _下划线通配符:**表示只能匹配单个字符,不能多也不能少,就是一个字符. count(*)、count(1)、count(column)的区别 count(*)对行的数目进行计算,包含NULL count(column)对特定的列的值具有的行数进行计算,不包含NULL值。 count()还有一种使用方式,count(1)这个用法和count(*)的结果是一样的。 COUNT(*) COUNT(*) 会统计查询结果集中的所有行数不考虑行中的任何值是否为 NULL。这意味着它会对表中的所有行进行计数包括包含 NULL 值的行。通常情况下COUNT(*) 的性能比较好因为它不需要对具体的列进行计算只需统计行数。 COUNT(1) COUNT(1) 与 COUNT(*) 类似也会统计查询结果集中的所有行数。与 COUNT(*) 不同的是COUNT(1) 不会检查行中的具体值而是简单地计数存在的行数。因为它不关心行中的任何值所以在一些数据库中COUNT(1) 的性能可能略优于 COUNT(*)。 COUNT(column) COUNT(column) 统计指定列中非 NULL 值的行数。它会忽略列中的 NULL 值并计算非 NULL 值的行数。如果指定的列中没有 NULL 值那么 COUNT(column) 的结果将等同于 COUNT(*) 或 COUNT(1)。 总的来说COUNT(*) 和 COUNT(1) 都会统计结果集中的所有行数而 COUNT(column) 则统计指定列中非 NULL 值的行数。在性能方面通常情况下 COUNT(*) 的性能是最好的。 什么是索引 数据库索引是数据库管理系统中一个排序的数据结构索引的实现通常使用B树及其变种B树。 在数据之外数据库系统还维护着满足特定查找算法的数据结构这些数据结构以某种方式引用指向数据这样就可以在这些数据结构上实现高级查找算法。这种数据结构就是索引。 索引作用 协助快速查询、更新数据库表中数据。 创建索引可以大大提高系统的性能优点 1.通过创建唯一性索引可以保证数据库表中每一行数据的唯一性。 2.可以大大加快数据的检索速度这也是创建索引的最主要的原因。 3.可以加速表和表之间的连接特别是在实现数据的参考完整性方面特别有意义。 4.在使用分组和排序子句进行数据检索时同样可以显著减少查询中分组和排序的时间。 5.通过使用索引可以在查询的过程中使用优化隐藏器提高系统的性能。 增加索引也有许多不利的方面(缺点) 1.创建索引和维护索引要耗费时间这种时间随着数据量的增加而增加。 2.索引需要占物理空间除了数据表占数据空间之外每一个索引还要占一定的物理空间如果要建立聚簇索引那么需要的空间就会更大。 3.当对表中的数据进行增加、删除和修改的时候索引也要动态的维护这样就降低了数据的维护速度。 什么样的字段适合建索引 唯一、不为空、经常被查询的字段 MySQL BTree索引和Hash索引的区别? Hash索引和B树索引的特点 Hash索引结构的特殊性其检索效率非常高索引的检索可以一次定位; B树索引需要从根节点到枝节点最后才能访问到页节点这样多次的IO访问; 为什么不都用Hash索引而使用B树索引 范围查询效率B 树索引在范围查询如 BETWEEN、、时效率更高。哈希索引不支持范围查询因为哈希函数的特性导致无法直接找到一个范围内的连续键值。 排序B 树索引可以很容易地支持排序操作因为树的结构天然支持有序遍历。而哈希索引中的键值是无序的无法直接支持排序操作。 稳定性B 树索引对数据的插入和删除更稳定。哈希索引在动态数据集上可能会导致哈希冲突需要频繁地进行重建。 覆盖索引B 树索引支持覆盖索引即索引本身包含了所有查询所需的数据字段。这样可以避免频繁地访问主键索引或数据表提高查询性能。而哈希索引不支持覆盖索引。 多字段查询B 树索引可以很容易地支持多字段组合查询而哈希索引只能针对单个字段进行索引。 B树和B树的区别 B树每个节点都存储key和data所有节点组成这棵树并且叶子节点指针为nul叶子结点不包含任何关键字信息。 B树所有的叶子结点中包含了全部关键字的信息及指向含有这些关键字记录的指针且叶子结点本身依关键字的大小自小而大的顺序链接所有的非终端结点可以看成是索引部分结点中仅含有其子树根结点中最大或最小关键字。(而B 树的非终节点也包含需要查找的有效信息) 为什么说B比B树更适合实际应用中操作系统的文件索引和数据库索引 1.B的磁盘读写代价更低 B的内部结点并没有指向关键字具体信息的指针。因此其内部结点相对B树更小。如果把所有同一内部结点的关键字存放在同一盘块中那么盘块所能容纳的关键字数量也越多。一次性读入内存中的需要查找的关键字也就越多。相对来说IO读写次数也就降低了。 2.Btree的查询效率更加稳定 由于非终结点并不是最终指向文件内容的结点而只是叶子结点中关键字的索引。所以任何关键字的查找必须走一条从根结点到叶子结点的路。所有关键字查询的路径长度相同导致每一个数据的查询效率相当。 聚集索引和非聚集索引的根本区别 聚集索引和非聚集索引的根本区别是表记录的排列顺序和与索引的排列顺序是否一致 什么是事务 事务是对数据库中一系列操作进行统一的回滚或者提交的操作主要用来保证数据的完整性和一致性。 事务四大特性ACID原子性、一致性、隔离性、持久性? 原子性Atomicity: 原子性是指事务包含的所有操作要么全部成功要么全部失败回滚因此事务的操作如果成功就必须要完全应用到数据库如果操作失败则不能对数据库有任何影响。 一致性Consistency: 事务开始前和结束后数据库的完整性约束没有被破坏。比如A向B转账不可能A扣了钱B却没收到。 隔离性Isolation: 隔离性是当多个用户并发访问数据库时比如操作同一张表时数据库为每一个用户开启的事务不能被其他事务的操作所干扰多个并发事务之间要相互隔离。同一时间只允许一个事务请求同一数据不同的事务之间彼此没有任何干扰。比如A正在从一张银行卡中取钱在A取钱的过程结束前B不能向这张卡转账。 持久性Durability: 持久性是指一个事务一旦被提交了那么对数据库中的数据的改变就是永久性的即便是在数据库系统遇到故障的情况下也不会丢失提交事务的操作。 事务的并发问题 1、脏读事务A读取了事务B更新的数据然后B回滚操作那么A读取到的数据是脏数据 2、不可重复读事务 A 多次读取同一数据事务 B 在事务A多次读取的过程中对数据作了更新并提交导致事务A多次读取同一数据时结果因此本事务先后两次读到的数据结果会不一致。 3、幻读幻读解决了不重复读保证了同一个事务里查询的结果都是事务开始时的状态一致性。 例如事务T1对一个表中所有的行的某个数据项做了从“1”修改为“2”的操作 这时事务T2又对这个表中插入了一行数据项而这个数据项的数值还是为“1”并且提交给数据库。而操作事务T1的用户如果再查看刚刚修改的数据会发现还有跟没有修改一样其实这行是从事务T2中添加的就好像产生幻觉一样这就是发生了幻读。 小结不可重复读的和幻读很容易混淆不可重复读侧重于修改幻读侧重于新增或删除。解决不可重复读的问题只需锁住满足条件的行解决幻读需要锁表。 事务的隔离级别 读未提交另一个事务修改了数据但尚未提交而本事务中的SELECT会读到这些未被提交的数据脏读 不可重复读事务 A 多次读取同一数据事务 B 在事务A多次读取的过程中对数据作了更新并提交导致事务A多次读取同一数据时结果因此本事务先后两次读到的数据结果会不一致。 可重复读在同一个事务里SELECT的结果是事务开始时时间点的状态因此同样的SELECT操作读到的结果会是一致的。但是会有幻读现象 串行化最高的隔离级别在这个隔离级别下不会产生任何异常。并发的事务就像事务是在一个个按照顺序执行一样 特别注意 MySQL默认的事务隔离级别为repeatable-read 什么是嵌套事务 嵌套是子事务套在父事务中执行子事务是父事务的一部分在进入子事务之前父事务建立一个回滚点叫save point然后执行子事务这个子事务的执行也算是父事务的一部分然后子事务执行结束父事务继续执行。重点就在于那个save point。看几个问题就明了了 如果子事务回滚会发生什么 父事务会回滚到进入子事务前建立的save point然后尝试其他的事务或者其他的业务逻辑父事务之前的操作不会受到影响更不会自动回滚。 如果父事务回滚会发生什么 父事务回滚子事务也会跟着回滚为什么呢因为父事务结束之前子事务是不会提交的我们说子事务是父事务的一部分正是这个道理。那么 事务的提交是什么情况 是父事务先提交然后子事务提交还是子事务先提交父事务再提交答案是第二种情况还是那句话子事务是父事务的一部分由父事务统一提交。 MySQL常见的三种存储引擎InnoDB、MyISAM、MEMORY的区别? 存储引擎事务支持锁定级别索引类型表空间崩溃恢复InnoDB支持行级锁定聚集索引支持支持MyISAM不支持表级锁定非聚集索引不支持不支持MEMORY不支持表级锁定HASH/BTREE索引不支持不支持 查询语句不同元素where、jion、limit、group by、having等等执行先后顺序? 查询中用到的关键词主要包含六个并且他们的顺序依次为 select--from--where--group by--having--order by 其中select和from是必须的其他关键词是可选的这六个关键词的执行顺序 与sql语句的书写顺序并不是一样的而是按照下面的顺序来执行 **from:**需要从哪个数据表检索数据**where:**过滤表中数据的条件**group by:**如何将上面过滤出的数据分组**having:**对上面已经分组的数据进行过滤的条件**select:**查看结果集中的哪个列或列的计算结果**order by :**按照什么样的顺序来查看返回的数据 from后面的表关联是自右向左解析 而where条件的解析顺序是自下而上的 mysql都有什么锁死锁判定原理和具体场景死锁怎么解决? MySQL有三种锁的级别页级、表级、行级。 表级锁开销小加锁快不会出现死锁锁定粒度大发生锁冲突的概率最高,并发度最低。行级锁开销大加锁慢会出现死锁锁定粒度最小发生锁冲突的概率最低,并发度也最高。页面锁开销和加锁时间界于表锁和行锁之间会出现死锁锁定粒度界于表锁和行锁之间并发度一般 什么情况下会造成死锁? 什么是死锁 死锁: 是指两个或两个以上的进程在执行过程中。因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等竺的进程称为死锁进程。 表级锁不会产生死锁.所以解决死锁主要还是针对于最常用的InnoDB。
http://www.pierceye.com/news/495184/

相关文章:

  • 网站搜索优化官网网站建设在电子商务中的作用的看法
  • 网站推广费用价格html大屏展示模板
  • 编辑网站用什么软件网站开发人员职责
  • 网站搜索引擎提交wordpress发布站点
  • 阳春网站建设天水网站seo
  • 仙桃市建设局网站wordpress链接前面的图标
  • 温州市城乡建设建档案馆网站公司装修费用可以一次性入账吗
  • 房地产开发公司网站宠物网页设计模板
  • 网站备案信息可以改吗中国做二手房最大的网站
  • 设计 企业网站罗湖网站-建设深圳信科
  • 太原自助模板建站手机版电脑qq登录入口
  • 公司网站建设哪家比较好app 网站
  • 建设银行个人网站打不开个人主页模板下载
  • 山西建设公司网站wordpress视频适应手机端
  • 原型样网站做一般的公司门户网站投资额
  • 南宁百度网站公司电话网站配置优化
  • 德州网站建设的公司免费注册公司怎么注册
  • 成都开发网站建设中国建设规划采购网站
  • 企业网站建设应避免数据孤岛深圳东莞网站建设
  • pk10网站怎么做郑州seo费用
  • 菏泽市建设局网站电话网站建设服务咨询
  • 购物网站模版广州外贸网络推广
  • 高碑店网站网站建设手机软件开发的模式
  • 公司网站开发国内外现状网络营销外包团队哪些好
  • 淘客网站怎么建立如何用api做网站
  • 合肥网站建设ahyedawordpress主题安全
  • 网站建设实训室介绍东莞seo广告宣传
  • 公职人员可以做公益网站吗aws网站建设
  • 什么叫高端网站定制广州建筑公司
  • 全新网站如何做百度竞价网站制作现状解决方案