+ -
当前位置:首页 → 问答吧 → php常用的数据库mysql操作

php常用的数据库mysql操作

时间:2009-08-20

来源:互联网

1 增加字段
alter table student add saddress varchar(25);(增加字段)
2更名字段名和字段类型
alter table student change saddress sremark text;
3 仅改变字段类型
alter table student modify sremark varchar(25);
4删除字段
alter table student drop sremark;
5更改表名称
alter table student rename to employee;
6插入记录
INSERT INTO 表名称 (字段名1,字段名2,…) VALUES (字段1的值,字段2的值,…);
7删除记录
DELETE FROM 表名称 WHERE 条件表达式;
mysql> delete from student where sno='0321001';
Query OK, 1 row affected (0.02 sec)
mysql> delete from student where left(sno,4)='0321';(删除sno字段前四位为’0321’的所有记录)
Query OK, 1 row affected (0.00 sec)                      
mysql> delete from student;(一条一条的删除全部记录)
Query OK, 1 row affected (0.01 sec)
mysql> truncate table student;(删除所有记录,先删除表再重建表)
Query OK, 0 rows affected (0.00 sec)

8修改记录
UPDATE 表名称 SET 字段名1=字段值1[,字段名2=字段值2…] WHERE 条件表达式;

9在创建表的同时创建索引
create table course(
cno varchar(5) not null,
cname varchar(30) not null,
teacher varchar(20),
primary key(cno),
index cna(cname)
);
如果将“index cna(cname)”改为“unique (cname)”,则创建的是UNIQUE(唯一性)索引,将不允许些字段有相同的值。

9向已存在的表添加索引
CREATE [UNIQUE] INDEX 索引名 ON 表名称 (字段名1 [(长度)],…);
create index sna on student(sname);
对于类型为char和varchar的字段,建立索引时还可以指定索引长度值;对于类型为blob和text的字段,
索引长度值是必须指定的。没指定索引名时,MySQL会自动使用指定字段的字段名作为索引名。

10删除索引
DROP INDEX 索引名 ON 表名称;
drop index sna on student;

11.用户的创建和删除
   在MySQL安装之后会只有mysql和test两个数据库,在mysql库中有5个授权表决定哪个用户可以连接服务器、从哪里连接以及连接后可以执行哪些操作。
授权表  
描述

user  
定义哪些用户从哪些主机可以连接到数据库服务器,这些用户的密码以及它们对系统中所有数据库的访问权限(全局权限)

db
定义连接到数据库服务器的那些用户可以使用哪些数据库,在这些数据库中可执行哪些操作(数据库级权限),db通常与host配合使用

host  
当表db中的Host字段值为空时,由表host定义用户可以从哪些主机连接到数据库服务器,且不同的主机对指定的数据库可有不同的权限

Tables_priv  
定义连接到数据库服务器的那些用户可以访问哪些表,以及在这些表中可以执行哪些操作(表级权限)

Columnts_priv  
定义连接到数据库服务器的那些用户可以访问哪些字段,以及在这些字段中可以执行哪些操作(字段级权限)

12
创建用户
创建新用户“guest”,并为它设置密码,同时允许它从任何主机连接到数据库服务器。
password()函数为密码加密后保存到数据库中。增加用户之后必须重载MySQL授权表:
insert into user(host,user,password) values('%','guest',password('guest'));

13删除用户
delete from user where user=’guest’;
flush privileges;

14更改用户密码

mysql> update mysql.user set password=password(’123456’)
    -> where user=’guest’;用此命令修改密码后要flush privileges
mysql> set password for guest@’%’=password(’guest’);此命令不需要重载授权表


15
用户权限的设置
    授权表user、db、host中可设置的权限。
   注:表中带“*”号的字段是授权表user、db和host共有的字段,而不带“*”号的字段是授权表user中的字段。
    
                              
字段                权限名      拥有该权限的用户可执行的操作
Select_priv *        select      数据查询  
Insert_priv *        insert     数据插入
Update_priv *          update      数据修改

Delete_priv *     delete     数据删除  
Create_priv *    create     创建数据库和表    
Drop_priv *          drop
删除数据库和表

Reload_priv      
reload
重载/刷新MySQL服务器

Shutdown_priv      
  shutdown 关闭正在运行的MySQL服务器

Process_priv      
process
在MySQL服务器上跟踪一项活动

File_priv         file
在服务器上读写文件

Grant_priv *      
grant
授予其他用户拥有该用户拥有的权限

References_priv *      
references
创建、编辑和删除外键引用

Index_priv *      
Index
创建、编辑和删除表索引

Alter_priv *         alter
修改表

Show_db_priv      
  Show databases 显示可用的数据库

Super_priv          super
执行管理命令

Create_tmp_table_priv *      
Create temporary tables
创建临时表

Lock_tables_priv *      
Lock tables
创建和删除表锁定

Execute_priv      
execute
执行被保存的程序

Repl_slave_priv      
Replication slave
在复制内容中读主二进制日志

Repl_client_priv      
Replication client
在复制内容中申请主、副信息


授权表table_priv和columns_priv中权限字段和可设置的权限
表名 字段名  权限集合中的成员
Tables_priv  Table_priv  Select,insert,update,delete,create,drop,grant,references,index,alter  
           Column_priv  Select,insert,update,references  
Columns_priv  Column_priv  Select,insert,update,references  

使用授权语句grant
    GRANT 权限列表 [(字段列表)] ON 数据库名称.表名称 TO 用户名@域名或IP地址
    [IDENTIFIED BY ‘密码值’] [WITH GRANT OPTION];
<4>.使用revoke语句撤权
    Revoke 权限列表 [(字段列表)] ON 数据库名称.表名称 from 用户名@域名或IP地址

16
数据库的备份与恢复
    备份:
    mysqldump -u root -p --opt aaa > back_aaa
    恢复:
    mysql -u root -p ccc < back_aaa

安全需尽快修改MySQL管理员的密码
。修改密码前要先退出MySQL(在MySQL的命令提示符下输入命令quit即可)
然后用下面的命令修改:
[root@Delux ~]# mysqladmin -u root password 要设的密码

mysql [-h 主机名或ip地址] [-u 用户名] [-p]
访问本机可省略主机名


在MySQL服务器的root用户已经设置了密码的情况下,再想修改其密码,就需用以下命令:
mysqladmin -u root -p password 新密码


数据库的创建,删除和选择
create database bookcase;(创建数据库bookcase)
show databases;(显示服务器中可用的数据库)
use bookcase;(选择数据库)
drop database bookcase;(删除数据库)


创建表的SQL语句:
    Create table 表名称(字段1,字段2,...字段n,[表级约束]) [type=表类型]
    字段i(I=1,2,...,n)的格式为:字段名 字段类型 [字段约束]
表1:常用字段类型
类型  描述  
int  允许值在0~232-1(无符号)或-231~231-1(有符号)之间的标准整数  
double  
双精度浮点数

char  
最大长度不超过255个字符的定长字符串

varchar  
最大长度不超过255个字符的变长字符串

TEXT  
最大长度为65535个字符的字符串

BLOB  
可变数据的二进制类型

DATE  
YYYYMMDD格式表示的日期值

表2:常用的字段约束
约束  
描述

NULL(或NOT NULL)  
指定字段允许或不允许为空,默认为NULL

DEFAULT  
为某字段指定一个默认值

AUTO_INCREMENT  
自动为某个INT字段生成一个递增加1的整数

表3:表级约束
约束  
描述

PRIMARY KEY  
为表指定主键

FOREIGN KEY…REFERENCES  
为表指定外键

INDEX  
创建表索引

UNIQUE  
为某个字段创建索引,该字段值必须惟一

FULLTEXT  
为某个字段建立全文索引

表4:表类型
表类型  
描述

MYISAM  
具有很多优化和增强的特性,是MySQL默认的表类型

ISAM      类似MYISAM,但是功能较少

HEAP  
保存在内存中,存取速度快,但存储量小,一旦失败就无法恢复

BDB      支持事务和页锁定

INNODE  
支持事务,外键和行锁定,它是MySQL中最完善的表格式

MERGE  
可把多个MyISAM表构建为一个虚拟表使得对这些表的查询仿佛在一个表上进行,提高了查询速度和修复效率,并节省了磁盘空间


作者: xxd0109   发布时间: 2009-08-20

谢谢分享!

作者: luoling_2046   发布时间: 2009-08-20

谢谢分享!

作者: ccdsw   发布时间: 2009-09-01

热门下载

更多