返回
编程
分类

但是我的package没有导入,目前属于 

日期: 2020-01-02 08:18 浏览次数 : 153

工作中遇到一个问题:要更新一个数据表。

必威官网亚洲体育 1

主要从以上篇幅来介绍mysql的一些知识点

这个表是我自己创建的,有7个字段,id、name、package等等

一.Mysql简介

MySQL是一个关系型数据库管理系统由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件。

创建的时候,因为我把name、package的信息分别存在两个文本文件中,

二.逻辑架构

必威官网亚洲体育 2

所以我就用Insert方法,一次性将所有的name插入数据库中。

三.Mysql基本命令

name全部导入数据库中了,但是我的package没有导入,这时我仍然想用insert的方法插入,但是不行。

I.库


这时候应该利用update的方法。一次更新多条信息的思路如下:

1. 创建数据库

语法 :create database 数据库名

#必威官网亚洲体育 ,创建数据库ab

create database ab;

UPDATE table_name 
SET field_name = CASE other_field 
WHEN 1 THEN 'value' 
WHEN 2 THEN 'value' 
WHEN 3 THEN 'value' 
END 
WHERE id IN (1,2,3)
测试代码如下:
<?php 
/* 
*function: insert app's apk ,logo_url, document_title,app_desc,package_name 
* into talbe atable use database db . 
*/ 

//connect database catx. 
$server='localhost'; 
$user='root'; 
$passwd='root'; 
$port='3306'; 
$dbname='catx'; 
$link=mysql_connect($server,$user,$passwd); 
if (!$link) { 
die('Could not connect: ' . mysql_error()); 
} 
else echo "Connected successfullyn"; 
mysql_select_db("db",$link); 
//set init variable and start time 
$st=microtime_float(); 
$table="pydot_g"; 
$path = "txt"; 
$fname_package_name = "package_name.txt"; 
// 
$handle= @fopen($path."/".$fname_package_name, "r"); 
$i=1; 
$sql = "UPDATE pydot_g SET package_name = CASE id "; 
$ids=""; 
while(($buf[$i]=fgets($handle,512))!==false){ 
$sql .= sprintf("WHEN %d THEN '%s' ", $i, $buf[$i]); // 拼接SQL语句 
$ids .= sprintf("%d,",$i); 
$i++; 
} 
//$ids=implode(',',$ids); 
$ids.=$i; 
$sql .= "END WHERE id IN ($ids)"; 
echo $sql; 
mysql_query($sql); 
fclose($handle); 
mysql_close($link); 
//echo the results and total time used 
$et=microtime_float(); 
$t=$et-$st; 
echo "rninsert into talbe ",$table," ",$i,"times;rn"; 
echo "Total time $t seconds.rn"; 
//function calculate time ,return a float number 
function microtime_float(){ 
list($usec, $sec) = explode(" ", microtime()); 
return ((float)$usec + (float)$sec); 
} 
?>

2. 查看数据库

#显示所有的数据库

show databases;

#以行显示所有数据库

show databases G

这个表是我自己创建的,有7个字段,id、name、package等等 创建的时候,因为我把name、package的信...

3.删除数据库

语法 :drop database 数据库名

删除数据库ab

drop database ab;

II.表


1. 创建表

语法 :create table 表名 (字段名,类型,字段名,类型,字段名,类型);

create table book(idint(10),namechar(40),ageint);

2.查看表结构

desclist;

explain food.list;

show columns from food .list;

show columns from food. list like'%id';

#查看表的创建过程,指定存储引擎,字符集

show create table list;

但是我的package没有导入,目前属于 。3.mysql存储引擎

mysql的存储引擎包括:MyISAM、InnoDB、BDB、MEMORY、MERGE、EXAMPLE、NDBCluster、ARCHIVE、CSV、BLACKHOLE、FEDERATED

4. 删除表

语法:drop table 表名

drop table list;

5.修改表名

语法:alter table 表名 rename 新表名;

alter table list rename lists;

6. 修改表中的字段类型

语法:alter table 表名 modify 要修改的字段名 字段名的新字段类型

alter table lists modifyid char(40);

7.修改表中字段名称和类型

语法:alter table 表名 change 原字段名 新字段名 新字段类型

alter table lists change id ids int(40);

8.表中添加字段

1.表中添加字段

语法:alter table 表名 add 字段名 字段类型

alter table lists add sum int(50);

2.表第一行添加字段

语法:alter table 表名 add 字段名 字段类型 first

#第一行添加字段

alter table lists add sum int(50)first;

3.在字段后添加字段

语法:alter table 表名 add 字段名 字段类型 after su

#字段su后添加字段

alter table lists add so char(30)after su;

9.删除表中字段

语法:alter table 表名 drop 字段名

alter table lists drop so;

III.记录


1.字段中插入记录

语法:insert into 表名 values(1,’zhangshan',2)

#后面记录指定为空

insert into lists values(1,2,‘shanshi’,null,null);

#插入多条记录中间用分号隔开

insert into lists valus (1,2,‘lisi’,null,null),(2,3,‘siji’,1,1);

#指定字段插入

insert into lists (su,ids)values(1,1);

2.查询表中记录

语法:select * from 表名

#*表示所有记录

select * from lists;

#查询ids中记录

select ids from lists;

#查询ids,su中记录

select ids,su from lists;

#查看指定数据库中表内容

select * from food.lists; `

3.删除表中记录

语法:delete from表名 where 字段名=xx

delete from lists where ids=2;

#删除字段name记录为空的行

delete from lists where name is null;

4.更新记录

语法:update 表名 set 字段名1=xx where 字段名2=xx

update lists set ids=1 where name=null;

#所有都变成2

update lists set ids=2

#同时更新多个字段用分号隔开

update lists set ids=3,name=‘lisi’ where su=1;

四.SQL基本语句查询

1. 多字段查询

语法:select 字段1,字段2 from 表名

select ids,name from lists;

2. 去重复查询

语法:select distinct 字段1,字段2 from 表名

select distinct ids,name from lists;

3.使用and和or多条件查询

语法:select 字段1,字段2 from 表名 where 字段1>3 and 字段2<5

select ids,name from lists where ids>3 and name <5;

select ids,name from lists where ids>3 or name <5;

#and与or同时存在时,先算and左右两边的,逻辑与先执行

select * from lists where ids=3 and(su=1or name =5);

4.mysql区分大小写查询

语法:select * from 表名 where binary 字段1=‘xxx’

binary区分大小写

select *from lists where binary name=‘LK’

5.排序查询

语法:select distinct 字段1,字段2 from 表名 orderby 字段名

#默认是升序排列

select distinct ids,su from lists orderby ids ;

#降序排列

select distinct ids,su from lists orderby ids desc;

6.查询引用别名

语法:select * from 旧表名 新表名

select * from lists s;

语法:select 旧字段名 as 新字段名 from 表名

#指定字段别名

select ids as s from lists;

7.like查询

语法:select 字段名1 字段名2 ... from 表名 where 字段名1 like '%abc' or 字段名2 like '%ABC'

select abc ABC from abc1 where abc like '%abc' or ABC like '%ABC'

五.常用select查询

#打印当前的日期和时间

selectnow();

#打印当前的日期

selectcurdate();

#打印当前的时间

selectcurtime()

#打印当前数据库

selectdatabase();

#打印数据库版本

selectversion();

#打印当前用户

selectuser();

六.导入导出数据库

1.导入数据库

方法一

创建数据库 :mysql -e ‘create database book’ -uroot -p123456

导入数据库 :mysql -uroot -p123456 book

方法二

创建数据库 :mysql -e ‘create database book’ -uroot -p123456

导入数据库 :source /root/book.sql ** // 数据库所在路径**

2.导出数据库

mysqldump -uroot -p123456 数据库名>数据库文件名

mysqldump -uroot -p123456 book>book.sql

#导出包含建库语句

mysqldump -uroot -p123456 -B book>book.sql

#导出所有数据库

mysqldump -uroot -p123456 -A book>book.sql

#导出数据库到文件

select * from lists outfile ‘/tmp/123.txt' ;

七.思考与总结

到此主要介绍,mysql基础命令,包括库,表,记录,sql查询,数据导入导出。mysql在关系型数据库中算是比较强大的一款数据库,还有后面的分享将会陆续推出,敬请期待!

必威官网亚洲体育 3

我是MIkel Pan,云计算爱好者,定期更新生活感悟,心灵进化者就在MIkel Pan,喜欢我就来找我吧!

博客园地址:

简书地址: