欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  php教程

php数据库操作命令精华大全

程序员文章站 2022-04-02 21:02:09
...

1、表结构//列信息2、表数据//行信息3、表索引//把列中的行加到索引中(一般情况下一个表一定要把id这一列的所有数据都加到主键索引中) 2、[dos下]关闭mysql:net stop mysql 开启mysql:net start mysql 登陆mysql:mysql -uroot -p123 --tee=c:\mysql.log 查

1、表结构//列信息2、表数据//行信息3、表索引//把列中的行加到索引中(一般情况下一个表一定要把id这一列的所有数据都加到主键索引中)

2、[dos下]关闭mysql:net stop mysql
开启mysql:net start mysql
登陆mysql:mysql -uroot -p123 --tee=c:\mysql.log
查看数据库命令:show database;
进入test数据库:use test
查看数据库表:show tables;
创建一个表:create table user(id int,name varchar(30),pass varchar(30));
查看表结构或表字段:desc user
查看表数据:select*from user;
查看表中的所有索引:show index from t2;
在表中插入数据:insert into user(id,name,pass) values(1,"hello","123");
查看表中的id:select*from user where id=1;
删除表中的id:delete from user where id=1;
修改表中的值:update user set name='hello' where id=1;
退出myaql:exit;
创建一个数据库:create database txet;
删除数据库:drop database;
修改表名:rename table user to user1;
删除表:drop table user1;

表字段的类型:
1、数值:int//int(3)与长度无关,不够3位时前面补0,默认不显示
float
2、字符串:char(n) 255字节 占用n个字节
varchar(n)最高65535字节 存多少占多少字节
text 65535字节
longtext 42亿字节
3、日期:date time datetime year

数据库的基础篇字段属性:
1、unsigned 无符号,全是正数
2、zenrofill 零填充,int(3),不够3位补0
3、auto_increment 自增
4、null 这一列值允许为null
5、not null 这一列值不允许为null
6、default 不允许为null给默认值

用\s查看四种字符集:
1、server characterset: utf8 服务器字符集
2、Db characterset: utf8 数据库字符集
3、client characterset: utf8 客户端字符集
4、Conn. characterset: utf8 客户端连接字符集
查看数据库字符集命令:sohw create database text;
查看表字符集命令:show create table user;
PHP中设置mysql客户端和连接字符集:$sql="set names utf8";

表字段索引:
1、主键索引
2、普通索引
检查sql语句:desc select * from user where id=3\G//加\G把表颠倒一下
rows 1 表示找到一个id=3的人检索一行找到
查看表中的所有索引:show index from user;

后期维护普通索引:
1、添加普通索引:alter table t2 add index in_name(name);
2、删除普通索引:alter table t2 drop index in_name;

后期维护数据库字段:
1、添加字段
alter table t1 add age int;
2、修改字段
alter table t1 modify age int not null default 20;
3、删除字段
alter table t1 drop age;
4、修改字段名
alter table t1 change name username varchar(30);

结构化查询语言sql包含四个部分:
1、DDL //数据定义语言,reate,drop,alter
2、DML //数据操作语言,insert,update,delete
3、DQL //数据查询语言,select
4、DCL //数据控制语句,grant,commit,rollback

增-insert:insert into t1(username) values('g');
改-update:update t1 set username='f' where id=6;
一次更改多个值:update t1 set id=10, username='bb' where id =7;
删-delete:
delete from t1 where id=6;
delete from t1 where id in(1,2,5);
delete from t1 where id=1 or id=3 or id=5;
delete from t1 where id>=3 and iddelete from t1 where id between 3 and 5;
查-select:

1、选择特定的字段:select id,name from user where id=3;
2、给字段取别名-as:select pass as p,id from user where id=3;
select pass p,id from user where id=3;
3、取掉列中的重复值:select distinct name form user;
4、使用where条件进行查询:select * from user where id>=3 and id5、查询空值null:select *from user where pass is null;
select *from user where pass is not null;
6、搜索like关键字:select * form user wher name like '%3%';
select * form user wher name like '%3%' or name like '%1%';
select * form user wher name regexp '.*3.*';
select * form user wher name regexp '(.*3.*)|(.*5.*)';
7、使用order by对查询结果排序:
升序 select * from user ordeer by id asc;注:升序可以不写asc
降序 select * from user ordeer by id desc;
8、使用limit限定输出个数:
select * from user order by id desc limit 0,3;
select * from user order by id desc limit 3;
9、concat函数-字符串连接符:select concat("a","-","c");
10、rand函数-随机排序:selec 8 from user order by rans() limit 3;
11、count统计:select count(*) from user;/ /http://www.pprar.com
select count(id) from user;
select count(id) from user where name='user1';//统计user1出现的次数
12、sum求和:select sum(id) from user where name='user1';//符合要求的id 之和
13、avg平均数: select avg(id) from user;
14、max最大值: select max(id) from user;
15、min最小值: select min(id) from user;
16、分组聚合:select name,count(id) tot from mess group by name order by tot desc;//tot是起了个别名//group by必须写在order by的前面
select name,count(id) tot from mess group by name having tot>=5;//group by必须写在having的前面//分组后加条件必须用having,而非where
17、在id字段后加uid字段:alter table post add uid int after id;
18、多表查询:
(1)普通查询-多表
(2)嵌套查询-多表
(3)左连接查询-多表
普通查询:
select user.name,count(post.id) from user,post where user.id=post.uid group by post.uid;
左连接查询:
select user.name,post.title,post.content from user left join post on user.id=post.uid;//显示全部用户发送或者没有发送的名字加内容
普通查询:
//得到发帖子的人-普通查询mysql> select distinct user.name from user,post where user.id=post.uid;
嵌套查询:
//得到发帖子的人-嵌套查询mysql> select name from user where id in(select uid from post);

PHP操作数据库:


1、通过PHP连接上mysql数据库
2、选择数据库
3、通过PHP进行insert操作
4、通过PHP进行delete操作
5、通过PHP进行update操作
6、通过PHP进行select操作
通过PHP连接mysql数据库:mysql_connect("localhost","root","123");
选择数据库:mysql_select_db("test");
设置客户端和连接字符集:mysql_query("set names utf8");
通过PHP进行insert操作://从表单接收数据$uername="user1"; $passwoed="123";
//$sql="insert into t1(username,password) values('$username','$password')";
//执行这条mysql语句 var_dump(mysql_query($sql));
//释放连接资源 mysql_close($conn);
//通过PHP进行update操作$sql="update t1 set username='user2',pssword='111' where id=8";
//通过PHP进行delete操作:$sql="delete form t1 where id=8";
从结果集中取数据:
mysql_fetch_assoc//关联数组
mysql_fetch_row//索引数组
mysql_fetch_array//混合数组
mysql_fetch_object//对象
//通过PHP进行select操作$sql="select form t1";
从结果集中取全部数据:while($row=mysql_fech_assoc($result)){echo "

"; print_r($row) echo "

";}
mysql_insert_id//取得上一步INSERT操作产生的ID
mysql_num_fields//得到insert,update,delete操作影响的行数musql_num_rows//得到select操作影响的行数
//得到表总行数:$sql="select count(*) form t1";
$rst=mysql_query($sql);
$tot=mysql_fetch_row($rst);