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

大同滕佳科技网站建设邯郸市教育公共服务平台

大同滕佳科技网站建设,邯郸市教育公共服务平台,闵行区个人网页设计用户体验,在网上卖东西怎么找货源mysql安装教程 一、登录#xff08;使用可视化工具#xff0c;可忽略#xff09; 打开命令行工具#xff0c;输入以下命令#xff0c;根据提示输入 root 用户的密码。 mysql -u root -p mysql -u root -p -D 数据库名二、创建数据库 显示数据库#xff1a;SHOW DATAB…mysql安装教程 一、登录使用可视化工具可忽略 打开命令行工具输入以下命令根据提示输入 root 用户的密码。 mysql -u root -p mysql -u root -p -D 数据库名二、创建数据库 显示数据库SHOW DATABASES创建数据库CREATE DATABASE 1、创建一个school库 2、运行SHOW DATABASES会发现多了一个school库CREATE DATABASE school;数据库不存在创建数据库CREATE DATABASE IF NOT EXISTS 1、如果school库不存在则创建school库 2、不使用IF NOT EXISTS如果school库存在会报库已存在的错误CREATE DATABASE IF NOT EXISTS school;数据库规则设置DEFAULT CHARACTER SET、DEFAULT COLLATE、DEFAULT ENCRYPTION‘N’ 1、如果school库不存在则创建school库 2、DEFAULT CHARACTER SET 设置字符集 3、DEFAULT COLLATE 设置排序规则 4、DEFAULT ENCRYPTIONN 是否加密否N是Y如果设置Y则操作数据库需要密钥CREATE DATABASE IF NOT EXISTS school DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8mb3_general_ci DEFAULT ENCRYPTIONN;删除数据库DROP DATABASE删除school库 DROP DATABASE school;如果数据库存在删除数据库DROP DATABASE IF EXISTS 1、如果school库存在则删除school库 2、不使用IF EXISTS如果school库不存在会报库不存在的错误DROP DATABASE IF EXISTS school;切换数据库USE切换到school库 USE school查询当前使用数据库SELECT DATABASE()显示数据库下的表SHOW TABLES 三、创建表 创建表CREATE TABLE 1、创建一个包含id、name字段的student表 2、运行SHOW TABLES会发现多了一个student表 3、需要切换到要添加表的库如没切换可以使用school.student 创建表在school库里创建student表CREATE TABLE student(id INT,name VARCHAR(200));表不存在创建表CREATE TABLE IF NOT EXISTS 1、如果student表不存在则创建一个包含id、name字段的student表 2、不使用IF NOT EXISTS如果tudent表存在会报表已存在的错误CREATE TABLE IF NOT EXISTS student (id INT,name VARCHAR(200));从另一个表创建一个新表CREATE TABLE SELECT 1、从student表中创建student_copy表 2、*为通配符如需要student表中部分字段可直接使用字段名id,name 3、如果student表中有数据会携带数据一起创建student_copy表CREATE TABLE student_copy SELECT * FROM student;数据库规则设置DEFAULT CHARACTER SET、ENGINEInnoDB 1、设置字符集DEFAULT CHARACTER SET 2、设置储存引擎ENGINEInnoDB 3、储存引擎分类InnoDB、MyISAM、CSV、Archive、MemoryCREATE TABLE student(id INT,name VARCHAR(200)) DEFAULT CHARACTER SET utf8 ENGINEInnoDB;字段描述COMMENTid添加描述学生id CREATE TABLE student(id INT COMMENT 学生id,name VARCHAR(200));默认值约束如果未设置该字段的值则默认一个值DEFAULTid未设置值泽默认为0 CREATE TABLE student(id INT DEFAULT 0,name VARCHAR(200));空值约束该字段可以设置为空NULLid可以设置为null CREATE TABLE student(id INT NULL,name VARCHAR(200));非空约束该字段不能是空NOT NULLid不能是NULL可以和DEFAULT搭配使用 CREATE TABLE student(id INT NOT NULL DEFAULT 0,name VARCHAR(200));自增约束该字段可以自增AUTO_INCREMENT 1、一个表只能有一个自增字段 2、且必须为键如UNIQUE KEYPRIMARY KEY 3、可以设置自增长起始值AUTO_INCREMENT10不设置从1开始自增 4、不能保证连续递增假如最新自增数据是id10又把该数据删除那么再插入数据id会是11id10的数据不会再创建CREATE TABLE student(id INT UNIQUE AUTO_INCREMENT,name VARCHAR(200)) AUTO_INCREMENT10;自动补零约束该字段需要自动补零ZEROSFILL 1、id小于四位的会自动补零int(4)说明字段是4位数字 2、加了ZEROSFILLid0001、0002、0003...不加ZEROSFILLid1、2、3...CREATE TABLE student(id INT(4) ZEROFILL UNIQUE AUTO_INCREMENT,name VARCHAR(200));无符号约束不能添加负数还可以增加数据长度只针对整型UNSIGNED 1、id为无符号字段不能添加负数 2、INT类型有符号值-2147683648 到2147683647 无符号值0到4294967295有符号最大值*2CREATE TABLE student(id INT UNSIGNED ZEROFILL,name VARCHAR(255));检查约束CHECK检查约束id大于10小于20不在这个范围插入数据时报错 CREATE TABLE student(id FLOAT,name VARCHAR(5),CHECK(id10 and id20));唯一值约束UNIQUE KEYid值是唯一的不能重复 CREATE TABLE student(id INT UNIQUE,name VARCHAR(200) UNIQUE); 有id和name值有一个存在就报错 CREATE TABLE student(id INT,name VARCHAR(200),UNIQUE(id),UNIQUE(name)); id、name值同时存在就报错 CREATE TABLE student(id INT,name VARCHAR(200),UNIQUE(id,name));主键约束主键是一行数据的唯一标识非空且唯一PRIMARY KEYid为主键列级约束 CREATE TABLE student(id INT(4) PRIMARY KEY ,name VARCHAR(200)); id为主键表级约束建议 CREATE TABLE student(id INT(4),name VARCHAR(200),PRIMARY KEY (id)); id和id1为复合主键当id和id1同时存在时报错 CREATE TABLE student(id INT,id1 INT,name VARCHAR(200),PRIMARY KEY (id,id1));外键约束主要用于表与表之间的关系FOREIGN KEY 1、示例表班级表、学生表、课程表、学生身份证 2、班级和学生是一对多关系 3、课程对学生是多对多关系 4、学生身份证表和学生表一对一关系一对一可以创建成一张表实际中用的不多 6、依赖于外键的约束 REFERENCES关联键用于一对多、多对多关联另一张表的键 ON DELETE RESTRICTT父表数据被删除会阻止删除默认就是这一项 ON UPDATE RESTRICT父表数据被修改会阻止修改默认就是这一项 ON DELETE CASCADE父表数据被删除子表相关的数据会一起删除 ON UPDATE CASCADE父表数据被修改子表也会跟着修改 ON DELETE SET NULL父表数据被删除子表相关的数据会设置成NULL ON UPDATE SET NULL父表数据被修改子表相关的数据会设置成NULL1、创建班级表设置主键为id 2、创建学生表设置主键为id外键为class_id并关联班级表中的id 3、未添加班级数据前不能添加学生添加学生时不存在的班级会报错CREATE TABLE classa(id INT NOT NULL AUTO_INCREMENT,name VARCHAR(255),PRIMARY KEY(id)); CREATE TABLE student(id INT NOT NULL AUTO_INCREMENT,class_id INT,name VARCHAR(255),PRIMARY KEY(id),FOREIGN KEY(class_id) REFERENCES classa(id));1、该学生表增加了外键约束ON DELETE CASCADE、ON UPDATE CASCADE 2、当班级表id变化学生表中的class_id也会跟着变化 3、当班级表中某个班级删除学生表中与该班级相关的学生也会删除CREATE TABLE student(id INT NOT NULL AUTO_INCREMENT,class_id INT,name VARCHAR(255),PRIMARY KEY(id),FOREIGN KEY(class_id) REFERENCES classa(id) ON DELETE CASCADE ON UPDATE CASCADE );1、创建课程表 2、创建课程与学生之间的中间表分别设置外键关联学生id、课程idCREATE TABLE course(id INT NOT NULL AUTO_INCREMENT,name VARCHAR(255),PRIMARY KEY(id)); CREATE TABLE stu_course(id INT NOT NULL AUTO_INCREMENT,stu_id INT,course_id INT,PRIMARY KEY(id),FOREIGN KEY(stu_id) REFERENCES student(id) ON DELETE CASCADE ON UPDATE CASCADE,FOREIGN KEY(course_id) REFERENCES course(id) ON DELETE CASCADE ON UPDATE CASCADE);设置约束名字CONSTRAINT约束名字student_key为主键的约束名字 CREATE TABLE student(id INT NOT NULL AUTO_INCREMENT,name VARCHAR(255),CONSTRAINT student_key PRIMARY KEY(id)) 约束名字设置stu_key为stu_id外键名字设置course_key为course_id外键名字 CREATE TABLE stu_course(id INT NOT NULL AUTO_INCREMENT,stu_id INT,course_id INT,PRIMARY KEY(id),CONSTRAINT stu_key FOREIGN KEY(stu_id) REFERENCES student(id) ON DELETE CASCADE ON UPDATE CASCADE,CONSTRAINT course_key FOREIGN KEY(course_id) REFERENCES course(id) ON DELETE CASCADE ON UPDATE CASCADE);查询约束名字 SHOW INDEX IN stu_course; SELECT * FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS WHERE table_namestu_course;查询表约束SHOW CREATE TABLE 表名 四、数据类型 整型 字符串 日期时间 其他 五、删除表 删除表DROP TABLE#删除表 DROP TABLE table_name; #删除多个表 DROP TABLE table_name1,table_name2;表存在删除表DROP TABLE IF EXISTSDROP TABLE IF EXISTS table_name1,table_name2;清空表TRUNCATE TABLE#清空表 TRUNCATE TABLE table_name;六、修改表 同样适用修改库ALTER DATABASE 添加列ALTER TABLE ADD添加一列 ALTER TABLE student ADD name VARCHAR(20); 添加多列 ALTER TABLE student ADD name VARCHAR(20),ADD name1 VARCHAR(20);重命名列名ALTER TABLE RENAME COLUMN重命名name1多个列名逗号隔开 ALTER TABLE student RENAME COLUMN name1 TO age重命名表名RENAME TABLEstudent重命名为new_student多个表逗号隔开 RENAME TABLE student TO new_student修改列定义ALTER TABLE MODIFY修改年龄为INT类型且检验约束为0-100多个列逗号隔开 ALTER TABLE student MODIFY age INT CHECK (0age100);重命名并修改列定义ALTER TABLE CHANGEname1修改为name且数据类型为VARCHAR(255)并添加不能为NULL的约束多个列逗号隔开 ALTER TABLE student CHANGE name1 name VARCHAR(255) NOT NULL;删除列ALTER TABLE DROP删除列多个列逗号隔开 ALTER TABLE student DROP name其他ALTER TABLE table_name ADD INDEX: 添加索引 ALTER TABLE table_name ADD PRIMARY KEY: 添加主键 ALTER TABLE table_name ADD FOREIGN KEY: 添加外键 ALTER TABLE table_name ADD UNIQUE INDEX: 添加唯一索引 ALTER TABLE table_name ADD CHECK: 添加检查约束 ALTER TABLE table_name DROP INDEX index_name: 删除索引 ALTER TABLE table_name DROP PRIMARY KEY: 删除主键 ALTER TABLE table_name DROP FOREIGN KEY fk_symbol: 删除外键 ALTER TABLE table_name DROP CHECK symbol: 删除检查约束 ALTER TABLE table_name RENAME INDEX old_index_name TO new_index_name: 重命名索引七、增加表数据 先创建班级表 CREATE TABLE class(id INT AUTO_INCREMENT,name VARCHAR(255),PRIMARY KEY(id));添加一条数据INSERT INTO VALUE需添加全部列添加id1、name一年级一班的数据 INSERT INTO class VALUE(1,一年级一班)1、添加部分列添加name一年级二班的数据 2、因id添加的约束类型自增所以一年级二班id2INSERT INTO class(name) VALUE(一年级二班)添加多条数据INSERT INTO VALUES 1、添加部分列添加一年级一班、一年级二班 2、支持添加全部列、支持添加一条数据INSERT INTO class(name) VALUES(一年级三班),(一年级四班);根据主键来判断如果主键重复则执行update不重复则添加数据ON DUPLICATE KEY UPDATE 1、因为id4存在则把id4更新为二年级一班 2、多个更新值要都好隔开 3、支持VALUESINSERT INTO class VALUE(4,二年级一班) ON DUPLICATE KEY UPDATE nameVALUES(name); 因为id5不存在则把id5添加到表中 INSERT INTO class VALUE(5,二年级二班) ON DUPLICATE KEY UPDATE nameVALUES(name);将一个表中的数据插进另一个表INSERT INTO SELECT 1、创建一个新的班级表 2、查询class表中的数据并插入到new_class 3、全部插入的时候需要保证表结构一致 4、部分插入的时候需要保证插入的列一致CREATE TABLE new_class(id INT AUTO_INCREMENT,name VARCHAR(255),PRIMARY KEY(id)); INSERT INTO new_class SELECT * FROM class;添加数据REPLACE INTO 1、REPLACE语句和INSERT语句很像它们的不同之处在于当插入过程中出现了重复的主键或者重复的唯一索引的时候INSERT 语句会产生一个错误而 REPLACE 语句则先删除旧的行再插入新的行 2、只示例VALUE同时具有INSERT语句相关语法REPLACE INTO new_class VALUE(1,六年级一班)八、查询条件 九、查询表数据 先创建学生表 CREATE TABLE student(id INT AUTO_INCREMENT,cla_id INT NOT NULL,name VARCHAR(255),gender ENUM(男,女,未知) DEFAULT 未知,age INT,PRIMARY KEY(id),CONSTRAINT cla_key FOREIGN KEY(cla_id) REFERENCES class(id) ON DELETE CASCADE ON UPDATE CASCADE ,CHECK (gender IN (男,女,未知))); 给学生表插入数据 INSERT INTO student(cla_id, name, age,gender) VALUES(1,隗莹,5,女),(1,独珠,6,女),(1,时霖,7,男),(1,尚菊,4,女),(1,旷石,5,男),(1,张一,6,未知),(1,张二,6,未知),(1,张三,5,女),(1,张四,5,女),(1,张三丰,7,男),(2,罕子薇,5,女),(2,诺长,6,女),(2,春怜烟,6,男),(3,大珠,8,女),(3,庆逸思,7,男),(4,李一,6,未知),(4,李二,9,未知),(5,李三,10,女),(5,李四,8,女),(6,李三丰,7,男); 查询表数据SELECT FROM#查询所有列 SELECT * FROM student; #只查询学生name SELECT name FROM student; #查询学生name、age SELECT name,age FROM student;增加查询条件SELECT FROM WHERE只演示部分查询条件其他查询条件可参考该文章第八条#查询年龄大于5的学生 SELECT * FROM student WHERE age5; #查询姓氏为张的数据%匹配多个字符 SELECT * FROM student WHERE name LIKE 张%; #查询姓氏为张的数据且只有两位字符的数据_匹配一个字符 SELECT * FROM student WHERE name LIKE 张_; #查询姓氏为张的数据并且性别不为未知的数据 SELECT * FROM student WHERE name LIKE 张% and gender!未知; #查询姓氏不为张的数据并且性别不为未知的数据 SELECT * FROM student WHERE name NOT LIKE 张% and gender!未知;1、子查询查询班级存在的学生因学生的cla_id外键关联班级表的id所以都能查出来 2、使用 WHERE id in (SELECT id FROM class) 查询效果更明显查询id存在于班级表id中的学生SELECT * FROM student WHERE cla_id in (SELECT id FROM class) 子查询查询学生表中id、age同时大于班级表中id得最大值、年龄得平均值 SELECT * FROM student WHERE (id,age) (SELECT MAX(id),AVG(id) FROM class);限制返回行数查询LIMIT返回前两行 SELECT * FROM student LIMIT 2; 跳过 2 个记录行并从 第 3 个记录行开始最多返回 5 个记录行 SELECT * FROM student LIMIT 2,5;查询没有重复的数据SELECT DISTINCT返回性别重复数据 SELECT DISTINCT gender FROM student; 返回性别、年龄都不重复数据 SELECT DISTINCT gender,age FROM student; 全部列都不重复数据 SELECT DISTINCT * FROM student;排序查询ORDER BY根据age降序查询 SELECT * FROM student WHERE age5 ORDER BY age DESC; 根据age升序查询 SELECT * FROM student WHERE age5 ORDER BY age ASC; 多个字段排序先根据age升序查询再根据id降序查询 SELECT * FROM student WHERE age5 ORDER BY age ASC,id DESC; #自定义排序规则 SELECT name FROM student WHERE name LIKE 张_ ORDER BY FIELD(name,张四,张三,张二,张一); SELECT name FROM student WHERE name LIKE 张_ORDER BY CASE nameWHEN name张四 THEN 4WHEN name张三 THEN 3WHEN name张二 THEN 2WHEN name张一 THEN 1END;分组查询GROUP BY性别分组 SELECT gender FROM student GROUP BY gender;1、单独分组没什么意义经常和函数一起使用 2、GROUP_CONCAT(name) 把分组后的name用逗号拼接到一起 3、COUNT(*) 分别计算分组后的数量SELECT gender,GROUP_CONCAT(name) AS name,COUNT(*) AS count FROM student GROUP BY gender ORDER BY count; HAVING分组的条件查询 SELECT gender,GROUP_CONCAT(name) AS name,COUNT(*) AS count FROM student GROUP BY gender HAVING count5; WITH ROLLU的作用是在最后新增一行来记录当前列里所有记录的总和 SELECT gender,GROUP_CONCAT(name) AS name,COUNT(*) AS count FROM student GROUP BY gender WITH ROLLUP;重命名列重命名表名AS 1、name重命名为姓名age重命名为年龄gender重命名为性别、表名重命名为stu 2、一般用于多表查询SELECT name AS 姓名,age AS 年龄,gender AS 性别 FROM student as stu WHERE stu.age5; 1、多表查询 2、查询出学生所在班级的名字及学生信息SELECT cla.name AS 班级,cla.id AS 班级id,stu.id AS 学生id,stu.name AS 学生姓名,stu.age AS 学生年龄,stu.gender AS 学生性别 FROM student AS stu,class AS cla WHERE stu.cla_id cla.id;多表查询交叉连接根据条件返回交集CROSS JOIN查询年龄大于7的学生所在的班级名字及学生信息 SELECT cla.name AS 班级,cla.id AS 班级id,stu.id AS 学生id,stu.name AS 学生姓名,stu.age AS 学生年龄,stu.gender AS 学生性别 FROM student AS stu CROSS JOIN class AS cla ON cla.id stu.cla_id WHERE stu.age7;多表查询内部连接根据条件返回交集与交叉连接一样 INNER JOIN查询年龄大于7的学生所在的班级名字及学生信息 SELECT cla.name AS 班级,cla.id AS 班级id,stu.id AS 学生id,stu.name AS 学生姓名,stu.age AS 学生年龄,stu.gender AS 学生性别 FROM class AS cla INNER JOIN student AS stu ON cla.id stu.cla_id WHERE stu.age7; 等同于 SELECT cla.name AS 班级,cla.id AS 班级id,stu.id AS 学生id,stu.name AS 学生姓名,stu.age AS 学生年龄,stu.gender AS 学生性别 FROM student AS stu,class AS cla WHERE stu.cla_id cla.id AND stu.age7;多表查询左连接根据条件匹配右表的每一行匹配成功将左表和右表合并组成新的数据行返回匹配失败左表的行和NULL组成新的数据行返回 LEFT JOINSELECT cla.name AS 班级,cla.id AS 班级id,stu.id AS 学生id,stu.name AS 学生姓名,stu.age AS 学生年龄,stu.gender AS 学生性别 FROM class AS cla LEFT JOIN student AS stu ON cla.id stu.cla_id;多表查询右连接根据条件匹配左表的每一行匹配成功将右表和左表合并组成新的数据行返回匹配失败右表的行和NULL组成新的数据行返回 LEFT JOIN同样的sql使用RIGHT JOIN把表的位置互换实现了LEFT JOIN的效果 SELECT cla.name AS 班级,cla.id AS 班级id,stu.id AS 学生id,stu.name AS 学生姓名,stu.age AS 学生年龄,stu.gender AS 学生性别 FROM student AS stu RIGHT JOIN class AS cla ON cla.id stu.cla_id;多表查询合并多张表的结合集UNION创建测试学生表并把学生表中的数据插入测试学生表 CREATE TABLE test_student(id INT(4) ZEROFILL AUTO_INCREMENT,cla_id INT NOT NULL,name VARCHAR(255),gender ENUM(男,女,未知) DEFAULT 未知,age INT,PRIMARY KEY(id),CONSTRAINT test_cla_key FOREIGN KEY(cla_id) REFERENCES class(id) ON DELETE CASCADE ON UPDATE CASCADE ,CHECK (gender IN (男,女,未知))) AUTO_INCREMENT100;INSERT INTO test_student(name,age,cla_id,gender) SELECT name,age,cla_id,gender from student; 1、UNION内部的SELECT 语句必须拥有相同数量的列列也必须拥有相似的数据类型每条 SELECT 语句中的列的顺序必须相同 2、查询两张表中年龄大于7的学生SELECT * FROM student WHERE age7 UNION SELECT * FROM test_student WHERE age7;1、查询两张表中年龄大于7的学生 2、与直接使用UNION区别在于把联合查询的结果集创建成new_stu虚拟表再做条件查询SELECT * FROM (SELECT * FROM student WHERE age7 UNION SELECT * FROM test_student) AS new_stu WHERE age7;十、修改表数据 把学生表中得第一个学生得名字改为张子凡 UPDATE student SET name 张子凡 LIMIT 1; 把学生表中得第一个学生得名字改为张子凡并把年龄改为20 UPDATE student SET name 张子凡,age20 LIMIT 1; 把三年级二班改为四年级一班 UPDATE class SET name 四年级一班 WHERE name三年级二班; 子查询修改把student第一个姓李的名字修改成test_student第一个姓张的名字 UPDATE student SET name (SELECT name FROM test_student WHERE name LIKE 张% LIMIT 1) WHERE name LIKE 李% LIMIT 1;十一、聚合函数 求总和SUM()求平均值AVG()求最大值: MAX()求最小值MIN()计数COUNT() SELECT COUNT(*) AS 总数,AVG(age) AS 平均年龄,MAX(age) AS 最大年龄,MIN(age) AS 最小年龄,SUM(age) AS 年龄总数 FROM student;十二、日期函数 当前日期NOW()、CURDATE() 、CURTIME()查询当前日期 SELECT NOW() AS 当前日期时间,CURDATE() AS 当前日期,CURTIME() AS 当前时间; 给学生表添加currentDate列并设置成当前日期 ALTER TABLE student MODIFY currentDate DATETIME; UPDATE student SET currentDate NOW() LIMIT 20;格式化日期DATE_FORMAT(date,format)SELECT DATE_FORMAT(currentDate,%Y-%m-%d) FROM student;计算日期 d 加上 n 天的日期ADDDATE(d,n)SELECT ADDDATE(currentDate,2) FROM student;计算时间 t 加上 n 秒时间ADDTIME(t,n)SELECT ADDTIME(currentDate,3) FROM student;计算两个日期间隔天数DATEDIFF(d1,d2)SELECT DATEDIFF(NOW(),currentDate) FROM student;计算起始日期 d 加上一个时间段后的日期DATE_ADD(dINTERVAL expr type)计算起始日期 d 减一个时间段后的日期DATE_SUB(date,INTERVAL expr type) 1、日期加上两天 2、typeMICROSECOND微秒、SECOND秒、MINUTE分、HOUR小时、DAY天、WEEK周、MONTH月SELECT DATE_ADD(currentDate,INTERVAL 2 DAY) FROM student; 日期减两天 SELECT DATE_SUB(currentDate,INTERVAL 2 DAY) FROM student;返回日期d的天、月、年、小时、分钟、秒、微秒DAY(d)、MONTH(d)、YEAR(d)、HOUR(d)、MINUTE(d)、SECOND(d)、MICROSECOND(d)、返回日期d 星期DAYNAME(d)计算本月第几天DAYOFMONTH(d)本月的最后一天LAST_DAY(d)返回当前日期所在的季节QUARTER(d)返回当前时间是当年的第几周WEEKOFYEAR(d)返回当前时间是当年的第几天 WEEKDAY(d)format参数 十三、流程控制函数 十四、数值型函数 十五、字符串函数 十六、其他函数
http://www.dnsts.com.cn/news/171752.html

相关文章:

  • 互联网平台排名wordpress怎么seo好
  • 传媒网站制作杭州建设网站设计的公司
  • 网站建设与网页设计实践报告wordpress 保护wp-login.php
  • 视频网站哪个做的好黑客入侵网课
  • 网站升级通知自动跳跃i岗网站建设
  • 做网站技术人员vs网站开发建表怎么肩啊
  • 网站网络资源建立wordpress 自定义插件
  • 呼和浩特建站wordpress统计访问了
  • 企业网站开发报价形式商务信息网官网
  • 网站建设 投资预算开封网站建设优化
  • 哪家公司建设网站好目前企业常见的网络推广方式有哪些
  • 胶南市城乡建设局网站短视频app开发有哪些公司
  • 风雨同舟 网站建设wordpress内网无法访问
  • 财政网站 建设方案windows优化大师的优点
  • 同ip多域名做同行业网站福建泉州曾明军的网站
  • 算命网站搭建qingdao城乡住房建设厅网站
  • 高米店网站建设公司企业网站管理系统设计报告
  • 学做ps的网站制作网站域名需要多少钱
  • 一个公司做100个网站安徽省网站备案快吗
  • 做的高大上的网站好用的代码网站
  • 免费购物商城网站建设大庆今天最新公告
  • 网站制作设计专业公司网站建设问题整改报告
  • app 网站开发公司电话网站制作的评价指标中
  • 第二章 网站建设做团购网站多少钱
  • 做微商海报的网站一流的龙岗网站设计
  • 遵义网站设计公司网站建设平台案例
  • 安阳哪里做网站做试用的网站
  • soso搜搜网站收录提交入口推广一个产品有哪些方式
  • 深圳网站优化项目天琥设计培训学校官网
  • 如何提高网站排名网站的中英文切换怎么做的