(1)mysql_connect(主机,用户名,口令);
返回一个连接号.
注意:mysql各用户的口令可以随该用户所在机器IP地址不同而改变. 另外,mSQL没有用户名机制,所以msql_connect只需要一个主机参数.主机可以是IP地址或域名.
(2)mysql_create_db(数据库名);
(3)mysql_select_db(数据库名,连接号);
连接一个数据库.
(4)mysql_query(SQL语句,连接号);
如果SQL语句是select,则返回一个结果号.否则返回的值可以不理会. 如果失败,返回false.
(5)mysql_fetch_array(结果号);
取出下一行,返回一个数组.可以用数字下标访问(第一个字段是下标0),也可以用字符串下标访问(即使用各字段名). 如已取了最后一行,返回false.
(6)mysql_fetch_field(结果号,[字段序号]);
如无字段序号,取下一个字段.返回一个哈希表,下标有:
name,table,max_length,not_null,primary_key,unique_key,multiple_key,numeric,blob,type,unsigned,zerofill
各下标的意思应该比较明白了.
(7)mysql_num_rows(结果号);mysql_num_fields(结果号);
(8)mysql_free_result(结果号);
(9)mysql_list_dbs();mysql_list_tables(数据库名);
(10)mysql_close(连接号);
(11)mysql_pconnect(主机,用户名,口令) ......
(1)mysql_connect(主机,用户名,口令);
返回一个连接号.
注意:mysql各用户的口令可以随该用户所在机器IP地址不同而改变. 另外,mSQL没有用户名机制,所以msql_connect只需要一个主机参数.主机可以是IP地址或域名.
(2)mysql_create_db(数据库名);
(3)mysql_select_db(数据库名,连接号);
连接一个数据库.
(4)mysql_query(SQL语句,连接号);
如果SQL语句是select,则返回一个结果号.否则返回的值可以不理会. 如果失败,返回false.
(5)mysql_fetch_array(结果号);
取出下一行,返回一个数组.可以用数字下标访问(第一个字段是下标0),也可以用字符串下标访问(即使用各字段名). 如已取了最后一行,返回false.
(6)mysql_fetch_field(结果号,[字段序号]);
如无字段序号,取下一个字段.返回一个哈希表,下标有:
name,table,max_length,not_null,primary_key,unique_key,multiple_key,numeric,blob,type,unsigned,zerofill
各下标的意思应该比较明白了.
(7)mysql_num_rows(结果号);mysql_num_fields(结果号);
(8)mysql_free_result(结果号);
(9)mysql_list_dbs();mysql_list_tables(数据库名);
(10)mysql_close(连接号);
(11)mysql_pconnect(主机,用户名,口令) ......
##/etc/my.cnf:
# [mysql]
# default-character-set=utf8
# [mysqld]
# character-set-server=utf8
# collation-server=utf8_general_ci
# [client]
# default-character-set=utf8
/etc/init.d/mysqld stop
/etc/init.d/mysqld start
# dump db
mysqldump -u dbuser -pdbpass --opt --skip-set-charset --default-character-set=
latin1 --skip-extended-insert databasename > database.table.sql
# replace charset
perl -i -pe 's/DEFAULT CHARSET=latin1/DEFAULT CHARSET=utf8/'
database.table.sql
# import db
cat database.table.sql | mysql -u dbuser -pdbpass databasename
......
mysql数据库备份与还原命令:
备份:
如我们需要把 数据库名为:shopping 的数据库备份: 用户名为:root,密码为:12345,那么命令如下:
直接进入dos,如果没有配置mysql的环境变量,那么需要把dos的当前目录切换到mysql的bin目录下,然后敲入一下命令:
mysqldump -uroot -p12345 shopping>e:/shopping.sql
如果数据库没有密码,那么只需:
mysqldump -uroot shopping>e:/shopping.sql
还原:
把上面的shopping数据库备份还原到数据库名为: shoppingBack的数据库中,
那么要敲入一下命令:
第一步,进入mysql客户端:
mysql -uroot -p12345
第二步,选择数据库:
use shoppingBack
第三步,还原数据:
source E:/shopping.sql
ok,这个时候数据就已经还原到shoppingBack这个数据库中了
linux下命令一样,只需把备份文件的路径改一下就ok了! ......
在MySQL 3.23.44版本后,InnoDB引擎类型的表支持了外键约束。
外键的使用条件:
1.两个表必须是
InnoDB表,MyISAM表暂时不支持外键(据说以后的版本有可能支持,但至少目前不支持);
2.外键列必须建立了索引,MySQL
4.1.2以后的版本在建立外键时会自动创建索引,但如果在较早的版本则需要显示建立;
3.外键关系的两个表的列必须是数据类型相似,也就是可
以相互转换类型的列,比如int和tinyint可以,而int和char则不可以;
外键的好处:可以使得两张表关联,保证数据的一致性和实现一些级联操作;
外键的定义语法:
[CONSTRAINT symbol] FOREIGN KEY [id] (index_col_name,
...)
REFERENCES tbl_name (index_col_name, ...)
[ON DELETE
{RESTRICT | CASCADE | SET NULL | NO ACTION | SET DEFAULT}]
[ON
UPDATE {RESTRICT | CASCADE | SET NULL | NO ACTION | SET DEFAULT}]
该语法
可以在 CREATE TABLE 和 ALTER TABLE 时使用,如果不指定CONSTRAINT
symbol,MYSQL会自动生成一个名字。
ON DELETE、ON UPDATE表示事件触发限制,可设参数:
RESTRICT(限
制外表中的外键改动)
CA ......
1.在ORACLE中用select * from all_users显示所有的用户,而在MYSQL中显示所有数据库的命令是show databases。对于我的理解,ORACLE项目来说一个项目就应该有一个用户和其对应的表空间,而MYSQL项目中也应该有个用户和一个库。在ORACLE(db2也一样)中表空间是文件系统中的物理容器的逻辑表示,视图、触发器和存储过程也可以保存在表空间中。而MYSQL并没有使用表空间来进行管理。
2.查询当前所有的表。ORACLE: select * from tab,MYSQL:show tables。
3.改变连接用户(库)。ORACLE:conn 用户名/密码@主机字符串,MYSQL:use 库名。
4.显示当前连接用户(库)。ORACLE:show user,MYSQL:connect。
5.执行外部脚本命令。ORACLE:@a.sql,MYSQL:source a.sql。
& ......
1.在ORACLE中用select * from all_users显示所有的用户,而在MYSQL中显示所有数据库的命令是show databases。对于我的理解,ORACLE项目来说一个项目就应该有一个用户和其对应的表空间,而MYSQL项目中也应该有个用户和一个库。在ORACLE(db2也一样)中表空间是文件系统中的物理容器的逻辑表示,视图、触发器和存储过程也可以保存在表空间中。而MYSQL并没有使用表空间来进行管理。
2.查询当前所有的表。ORACLE: select * from tab,MYSQL:show tables。
3.改变连接用户(库)。ORACLE:conn 用户名/密码@主机字符串,MYSQL:use 库名。
4.显示当前连接用户(库)。ORACLE:show user,MYSQL:connect。
5.执行外部脚本命令。ORACLE:@a.sql,MYSQL:source a.sql。
& ......
环境:CentOS linux 5.2
系统只安装VI编辑器与开发工具
在编辑MYSQL时:
#./configure --prefix=/usr/local/mysql --with-charset=gb2312 --with-extra-charsets=all
执行后出现如下错误:
checking for tgetent in -ltermcap… no
checking for termcap functions library… configure: error: No curses/termcap library found
解决方法:
编译时加上路径即可解决,即
#./configure --prefix=/usr/local/mysql --with-charset=gb2312 --with-extra-charsets=all --with-named-curses-libs=/usr/lib/libncurses.so.5
如果是Ubuntu,需要安装.sudo apt-get install libncurses5-dev
如果Ubuntu上安装了VMwareTools-版本号.tar.gz则不需要安装libncurses5-dev,在编译时加上
--with-named-curses-libs=/usr/lib/libncurses.so.5
就可以
......