澳门新葡萄京官网注册 1

MySQL 常用命令大全

phpmyadmin是用来远程连接MySQL数据库的客户端软件,用户可以参考如下步骤来配置phpmyadmin软件:请您将phpmyadmin.rar文件下载到您的本地;使用winrar将该文件解压,生成一个phpmyadmin的目录;请客户使用本地主机上的记事本等软件,编辑phpmyadmin目录下的文件config.inc.php,修改如下几项设置:$cfgServers[1][‘host’]=’localhost’;$cfgServers[1][‘user’]=’数据库管理员名’;$cfgServers[1][‘password’]=’密码’;$cfgServers[1][‘only_db’]=’数据库在浏览器中键入‘您的域名/phpmyadmin’即可管理和创建客户的MySQL数据库。使用PHPMYADMIN管理MYSQL数据库1、在您创建完您的数据库以后(或是服务商给你的数据库名),点击选中,然后按“管理此数据库”后,会进入该数据库的web管理界面,可以创建table,管理内容等;2、双击您的数据库,数据库中的数据表将显示出来,同时,在屏幕的右半部分将显示每一个数据表的操作:3、可以根据右半部分的提示对每个表进行操作;浏览:可以显示数据表中的所有记录;选择:是根据条件显示数据表中的记录,在这里可以输入一定的查询条件,系统按照您输入的查询条件,显示相应的记录;插入:是增加一条记录;属性:可以改变数据表中每个字段的属性,可以增加索引等操作;丢弃:是删除本数据表,注意删除后不可以进行恢复,不要轻易进行删除操作;清空:是指删除数据表中的所有记录在下面指定的数据库中运行SQL语句:是指输入标准的SQL语句,可以根据您的SQL语句,进行操作;也可以选择您本地的SQL语句文件,然后点击“开始”按钮,进行操作;4、查看数据库的结构和摘要信息中有四种选择1)只选择结构:是指不包含数据,只是数据表的结构,在屏幕上显示2)结构和数据:是指包含数据表的结构与数据内容,3)发送:是只将系统的内容输出到一个文件中。5、建立一个新的数据表:名字:是指新建立的数据表的名称字段:是指新建立的数据表包含的字段数量点击“开始”按钮,进入新的界面,输入每一个字段的名称及类型,输入完毕后点击“保存”之后系统会自动返回上一层界面;6、丢弃数据库:是指删除本数据库,请不要随意进行操作,以免发生问题;7、上面我们讲述了对数据库操作,下面我们就对一个数据库中的一个数据表进行操作讲述PhpAdmin的作用;8、双击数据库中的一个数据表,在屏幕的右半部分会显示本数据表的结构;9、页面显示此数据表的属性,在操作一栏中有:1)改变:是指改变本字段的名称2)丢弃:是指删除本字段3)键名:是指是否将此字段更改为主键4)索引:是指将按照本字段索引数据记录5)唯一:本字段的内容在数据表中是唯一的,没有重复记录;10、浏览:是指显示记录;选择:是指输入查询条件,按照您的查询条件查询记录;插入:增加一个记录;11、从文本文件中读取数据:是指将本地的文本文件导入到本数据表中,关于文本文件的格式您可以是空格或是分号等;12、查看数据表的结构信息:可以将数据表的结构或结构数据记录等发送到屏幕或是一个标准的文件中,方便您进行数据备份;13、将数据表更改名称:是将本数据表更改为新的数据表名;14、复制数据表:是指建立一个与本数据表一样的数据表。关于vbb论坛数据的备份和恢复问题!!!我自己使用的时候,原来不会,所以遇到和年多问题,现在自己终于会了,写个说明出来,给你们分享我的心得!1,你要会使用Myphpadmin,他是一个很好的工具,一般空间支持mysql的都有给你装上的,这样你可以直接使用,他的安装和使用可以参照这里:还有可以到聚吧看下。~~~~~~~~VBB是一款非常优秀的PHP+MYSQL论坛,落伍者论坛自建立至今一直是使用VBB.但对于大部分用户来说,MYSQL的备份是比较麻烦的问题,因为大部分空间商不会提供数据库远程连接的权限,同时因PHP程序的30秒运行限制,使得一个稍大的MYSQL库备份就成了非常麻烦的问题.鱼现就落伍者论坛的数据备份经验,用PHPMYADMIN为例讲述一下MYSQL数据的备份.以下内容鱼均基于ztsky汉化VBB2.20和phpmyadmin2.26版本讲述ztsky汉化的vbb可到下载phpmyadmin可由_id=85832下载VBB2.29一共有access,adminlog,adminutil,announcement,attachment,avatar,bbcode,calendar_events,customavatar,forum,forumpermission,icon,moderator,poll,pollvote,post,privatemessage,profilefield,replacement,replacementset,search,searchindex,session,setting,settinggroup,smilie,style,subscribeforum,subscribethread,template,templateset,thread,threadrate,user,useractivation,userfield,usergroup,usertitle,word43个表.其中相对重要的是post和thread表,用于保存论坛的帖子poll和pollvote表,用于保存论坛的投票部分–一般不备份privatemessage表,用于保存用户间的私语—一般不备份user开头的所有表,用于保存论坛的注册用户相关信息—–有几个的,都要一起弄下来fourm是保存论坛分类的,没有他,你的分类是不完整的,这样也要一起备份。备份的时候你只要把上面的几个重要的备下来就好了,下面,我们来还原论坛数据。进入myphpadmin,把上面的备份下来的数据还原就好了,注意:你在还原的数据里有几个表,那么你必须先把存在的表给删除,丢弃了,要不会出错的,比如你把user的几个数据一起备在一个zip文件里,那么还原要把那几个一起删除的,这样才好!上面的是我自己在管理的时候总结的经验,好的话请多支持!!也请提出意见和建议!备份论坛数据还有一个办法是直接在后台备份下来,其实也是一样的!!!

130 :文件格式不正确。(还不是很清楚错误的状况)
145 :文件无法打开。
1005:MYSQL创建表失败
1006:MYSQL创建数据库失败
1007:MYSQL数据库已存在,创建数据库失败
1008:MYSQL数据库不存在,删除数据库失败
1009:MYSQL不能删除数据库文件导致删除数据库失败
1010:MYSQL不能删除数据目录导致删除数据库失败
1011:MYSQL删除数据库文件失败
1012:MYSQL不能读取系统表中的记录
1016:文件无法打开,使用后台修复或者使用 phpmyadmin 进行修复。
Quote:
开始=>所有程序=>附件=>命令提示符
输入 mysql 所在硬盘盘符
cd mysql 所在目录
cd bin
输入 myisamchk -f
D:usr/local/mysql/data/bbs/PW_members.MYI
ps : D:usr/local/mysql/data/bbs
是你论坛数据库的路径
-f
根据具体情况选择,一般也可以选择 -r 
注意你的
系统C盘或放数据库的硬盘空间是否足够,一般小于 1G 很容易出现错误。 
或用mysqlcheck命令进行修复。具体的方法:利用命令行进入mysql/bin目录,执行
mysqlcheck -o -r phpwind -uroot -p
                                                     
其中phpwind是你数据库的名称,root是你的数据库用户名,然后会提示你输入密码。然后就会修
复你的数据库。
1017:服务器非法关机,导致该文件损坏。
1020:MYSQL记录已被其他用户修改
1021:硬盘剩余空间不足,请加大硬盘可用空间
1022:MYSQL关键字重复,更改记录失败
1023:MYSQL关闭时发生错误
1024:MYSQL读文件错误
1025:MYSQL更改名字时发生错误
1026:MYSQL写文件错误
1030:可能是服务器不稳定。(具体原因不是很清楚)
1032:MYSQL记录不存在
1036:MYSQL数据表是只读的,不能对它进行修改
1037:系统内存不足,请重启数据库或重启服务器
1038:MYSQL用于排序的内存不足,请增大排序缓冲区
1040:MYSQL已到达数据库的最大连接数,请加大数据库可用连接数
Quote:
在my.ini
修改max_connections=100为max_connections=1000或更大,重启mysql
1041:系统内存不足
1042:无效的主机名
1043:无效连接
1044:MYSQL当前用户没有访问数据库的权限
1045:MYSQL不能连接数据库,服务器、数据库名、用户名或密码错误
Quote:
方法:确保论坛data目录下的sql_config.php用户名与密码都正确.如果用户忘记了数据库的密码,
可以按如下方式进行密码的修改:
如果 MySQL 正在运行,首先停止。
启动 MySQL :bin/safe_mysqld
–skip-grant-tables & 
就可以不需要密码就进入 MySQL
了。
然后就是 
>use mysql
>update user set
password=password(“new_pass”) where user=”root”;
>flush privileges;
1046:没有选择数据库。
1048:MYSQL字段不能为空
1049:MYSQL数据库不存在
1050:MYSQL数据表已存在
1051:MYSQL数据表不存在
1054:MYSQL字段不存在,自行建立字段
澳门新葡萄京官网注册,1060:字段重复,导致无法插入这个字段。
1062:字段值重复,入库失败 
Quote:
1.如果出类似主码为”65535″的错误,可以查看相关表的自增字段,将字段值改在就可以
2.确保相关数据表中主码重复的字段是否存在,如果存在删除这条记录
3.备份数据库,修复相关表(注:这种情况比较常见,如pw_posts表,对表进行修复的时候不要忘记备份).
1064:MySQL 不支持错误提示中的编码。
1065:MYSQL无效的SQL语句,SQL语句为空
1067:MySQL 版本为 5,不支持空的默认值。
1081:MYSQL不能建立Socket连接
1114:MYSQL数据表已满,不能容纳任何记录
1116:MYSQL打开的数据表太多
1129:MYSQL数据库出现异常,请重启数据库
1130:MYSQL连接数据库失败,没有连接数据库的权限
1133:MYSQL数据库用户不存在
1135:可能是内存不足够,请联系空间商解决。
1141:MYSQL当前用户无权访问数据库
1142:MYSQL当前用户无权访问数据表
1143:MYSQL当前用户无权访问数据表中的字段
1146:MYSQL数据表不存在或数据表缺失,请恢复备份数据
1147:MYSQL未定义用户对数据表的访问权限
1149:MYSQL语句语法错误
1158:网络错误,出现读错误,请检查网络连接状况
1159:网络错误,读超时,请检查网络连接状况
1160:网络错误,出现写错误,请检查网络连接状况
1161:网络错误,写超时,请检查网络连接状况
1062:MYSQL字段值重复,入库失败
1169:MYSQL字段值重复,更新记录失败
1177:MYSQL打开数据表失败
1180:MYSQL提交事务失败
1181:MYSQL回滚事务失败
1203:MYSQL当前用户和数据库建立的连接已到达数据库的最大连接数,请增大可用的数据库连接数或重启数据库
1205:MYSQL加锁超时
1211:MYSQL当前用户没有创建用户的权限
1216:MYSQL外键约束检查失败,更新子表记录失败
1217:MYSQL外键约束检查失败,删除或修改主表记录失败
1226:MYSQL当前用户使用的资源已超过所允许的资源,请重启数据库或重启服务器
1227:MYSQL权限不足,您无权进行此操作
1235:MySQL版本过低,不具有本功能
1250:客户端不支持服务器要求的认证协议,请考虑升级客户端。
1251:Client 不能支持 authentication protocol 的要求
Client does not support
authentication protocol requested by server; consider upgrading MySQL
client
Quote:
方法1:
 mysql> SET PASSWORD FOR 
-> ‘ some_user ‘@’ some_host
‘ = OLD_PASSWORD(‘ newpwd ‘); 
结合我们的实际情况,在 MySQL
Command Line Client 下运行: 
set password for root@localhost =
old_password(‘123456’);
方法2:
mysql> UPDATE mysql.user SET
Password = OLD_PASSWORD(‘newpwd’)
-> WHERE Host = ‘some_host’
AND User = ‘some_user’;
mysql> FLUSH PRIVILEGES;
<上面的部分请按自己实际情况修改。>
1267:不合法的混合字符集。
2002:服务器端口不对,请咨询空间商正确的端口。
2003:MySQL 服务没有启动,请启动该服务。
2008:MySQL client ran out of
memory错误指向了MySQL客户mysql。这个错误的原因很简单,客户没有足够的内存存储全部结果。
2013:远程连接数据库是有时会有这个问题,MySQL 服务器在执行一条 SQL
语句的时候失去了连接造成的。
10048:最大连接数等问题
   Quote:
建议在my.ini文件中修改最大连接数,
把 mysql_connect() 方法都改成了
mysql_pconnect() 方法.
要修改mysql_pconnect(),可以在论坛的data目录的sql_config.php中
$pconnect = 0; //是否持久连接
修改成$pconnect = 1;
开启防刷新,严禁刷新太快.
10055:没有缓存空间可利用
Quote:
查看下你的C盘空间是否已经满,清除一些没有用的文件.
可以在后台的”论坛核心设置”,”核心功能设置”里”进程优化”开启,”GZIP
压缩输出”关闭.
查找了一下10055(没有缓存空间可利用)出错的原因,分析了my.ini的配制文件,
在my.ini中如下:
default-storage-engine=INNODB
innodb_additional_mem_pool_size=2M
innodb_flush_log_at_trx_commit=1
innodb_log_buffer_size=1M
innodb_buffer_pool_size=10M
innodb_log_file_size=10M
innodb_thread_concurrency=8
觉得可以把innodb_buffer_pool_size=10M 加大如100M或是1000M
以上是对mysql5的
如果是mysql4可以在my.ini中增加如下:
#innodb_data_file_path =
ibdata1:2000M;ibdata2:2000M
#innodb_data_home_dir =
c:ibdata
#innodb_log_group_home_dir =
c:iblogs
#innodb_log_arch_dir =
c:iblogs
#set-variable =
innodb_mirrored_log_groups=1
#set-variable =
innodb_log_files_in_group=3
#set-variable =
innodb_log_file_size=5M
#set-variable =
innodb_log_buffer_size=8M
#innodb_flush_log_at_trx_commit=1
#innodb_log_archive=0
#set-variable =
innodb_buffer_pool_size=16M
#set-variable =
innodb_additional_mem_pool_size=2M
#set-variable =
innodb_file_io_threads=4
#set-variable =
innodb_lock_wait_timeout=50
把前面的#去了

一、 mysql:连接数据库

mysql 命令用户连接数据库。
mysql 命令格式:mysql -h 主机地址-u 用户名-p 用户密码

  • 连接到本机上的MYSQL
    首先打开DOS 窗口,然后进入目录mysqlbin,再键入命令mysql -u root
    -p,回车后提示你
    输密码。
    注意用户名前可以有空格也可以没有空格,但是密码前必须没有空格,否则让你重新输入密
    码。
    如果刚安装好MYSQL,超级用户root
    是没有密码的,故直接回车即可进入到MYSQL 中了,
    MYSQL 的提示符是:mysql>
    -连接到远程主机上的MYSQL
    假设远程主机的IP
    为:110.110.110.110,用户名为root,密码为abcd123。则键入以下命令:
    mysql -h110.110.110.110 -u root -p 123;(注:u 与root
    之间可以不用加空格,其它也一样)
  • 退出MYSQL 命令
    exit (回车)

10061:MySQL服务不能正常启动
Quote:
启动这台机器上的MySQL服务 
如服务启动失败,一定是你的my.ini文件出了差错,
MySQL服务不能正常启动 

二、 mysqladmin:修改用户密码

mysqladmin 命令用于修改用户密码。
mysqladmin 命令格式:mysqladmin -u 用户名-p 旧密码password 新密码

  • 给root 加个密码ab12
    首先在DOS 下进入目录mysqlbin,然后键入以下命令:
    mysqladmin -u root -password ab12
    注:因为开始时root 没有密码,所以-p 旧密码一项就可以省略了。
  • 再将root 的密码改为djg345
    mysqladmin -u root -p ab12 password djg345

你删除了它后,MySQL就会按其默认配置运行,那就没有问题了

三、 grant on:新增用户

grant on 命令用于增加新用户并控制其权限。
grant on 命令格式:grant select on 数据库.* to
用户名@登录主机identified by “密码”;

  • 增加一个用户test1,密码为abc,让他可以在任何主机上登录,并对所有数据库有查询、
    插入、修改、删除的权限。首先用root
    用户连入MYSQL,然后键入以下命令:
    grant select,insert,update,delete on . to
    [email=test1@”%]test1@”%[/email]” Identified by “abc”;
    但增加的用户是十分危险的,你想如某个人知道test1
    的密码,那么他就可以在internet 上
    的任何一台电脑上登录你的mysql
    数据库并对你的数据可以为所欲为了,解决办法如下。
  • 增加一个用户test2 密码为abc,让他只可以在localhost
    上登录,并可以对数据库mydb
    进行查询、插入、修改、删除的操作(localhost 指本地主机,即MYSQL
    数据库所在的那台主
    机),这样用户即使用知道test2 的密码,他也无法从internet
    上直接访问数据库,只能通过
    MYSQL 主机上的web 页来访问了。
    grant select,insert,update,delete on mydb.* to
    [email=test2@localhost]test2@localhost[/email] identified by
    “abc”;
    如果你不想test2 有密码,可以再打一个命令将密码消掉。
    grant select,insert,update,delete on mydb.* to
    [email=test2@localhost]test2@localhost[/email] identified by “”;

澳门新葡萄京官网注册 1

四、create:创建数据库

create 命令用于创建数据库。
create 命令格式:create database <数据库名>;
注意:创建数据库之前要先连接Mysql 服务器。

  • 建立一个名为xhkdb 的数据库:
    mysql> create database xhkdb;
  • 创建数据库并分配用户:
    a:CREATE DATABASE 数据库名;
    b:GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,ALTER ON
    数据库名.* TO
    数据库名@localhost IDENTIFIED BY ‘密码’;
    c:SET PASSWORD FOR ‘数据库名’@’localhost’ = OLD_PASSWORD(‘密码’);
    依次执行3 个命令完成数据库创建。
    注意:中文“密码”和“数据库”是户自己需要设置的。

五、 show databases:显示数据库

show databases 命令用于显示所有数据库。
show databases 命令格式:show databases; (注意:最后有个s)
例如:mysql> show databases;

六、drop database:删除数据库

drop 命令用于删除数据库。
drop 命令格式:drop database <数据库名>;
例如,删除名为xhkdb 的数据库:
mysql> drop database xhkdb;
[例子1] 删除一个已经确定存在的数据库:
mysql> drop database drop_database;
Query OK, 0 rows affected (0.00 sec)
[例子2] 删除一个不确定存在的数据库:
mysql> drop database drop_database;
ERROR 1008 (HY000): Can’t drop database ‘drop_database’; database
doesn’t exist
// 发生错误,不能删除’drop_database’数据库,该数据库不存在。
mysql> drop database if exists drop_database;
Query OK, 0 rows affected, 1 warning (0.00 sec)
//产生一个警告说明此数据库不存在
mysql> create database drop_database; // 创建一个数据库
Query OK, 1 row affected (0.00 sec)
mysql> drop database if exists drop_database; // if exists
判断数据库是否存在,不存在也不产生错误
Query OK, 0 rows affected (0.00 sec)

七、use:使用数据库

use 命令可以让我们来使用数据库。
use 命令格式:use <数据库名>;
例如,如果xhkdb 数据库存在,尝试存取它:
mysql> use xhkdb;
屏幕提示:Database changed

  • use 语句可以通告MySQL 把db_name
    数据库作为默认(当前)数据库使用,用于后续语
    句。该数据库保持为默认数据库,直到语段的结尾,或者直到出现下一个不同的use
    语句:
    mysql> USE db1;
    mysql> SELECT COUNT() FROM mytable; # selects from
    db1.mytable
    mysql> USE db2;
    mysql> SELECT COUNT(
    ) FROM mytable; # selects from db2.mytable
  • 使用USE
    语句为一个特定的当前的数据库做标记,不会阻碍您访问其它数据库中的表。下
    面的例子可以从db1 数据库访问author 表,并从db2 数据库访问editor
    表:
    mysql> USE db1;
    mysql> SELECT author_name,editor_name FROM author,db2.editor
    -> WHERE author.editor_id = db2.editor.editor_id;
    use 语句被设立出来,用于与Sybase 相兼容。
    有些网友问到,连接以后怎么退出。其实,不用退出来,use
    数据库后,使用show databases
    就能查询所有数据库,如果想跳到其他数据库,用
    use 其他数据库名字就可以了。

八、select:当前连接的数据库

select 命令表示当前选择(连接)的数据库。
select 命令格式:mysql> select database();
MySQL 中SELECT 命令类似于其他编程语言里的print
或者write,你可以用它来显示一个字
符串、数字、数学表达式的结果等等。如何使用MySQL 中SELECT
命令的特殊功能呢?

  1. 显示MYSQL 的版本
    mysql> select version();
    +———————–+
    | version() |
    +———————–+
    | 6.0.4-alpha-community |
    +———————–+
    1 row in set (0.02 sec)
  2. 显示当前时间
    mysql> select now();
    +———————+
    | now() |
    +———————+
    | 2009-09-15 22:35:32 |
    +———————+
    1 row in set (0.04 sec)
  3. 显示年月日
    SELECT DAYOFMONTH(CURRENT_DATE);
    +————————–+
    | DAYOFMONTH(CURRENT_DATE) |
    +————————–+
    | 15 |
    +————————–+
    1 row in set (0.01 sec)
    SELECT MONTH(CURRENT_DATE);
    +———————+
    | MONTH(CURRENT_DATE) |
    +———————+
    | 9 |
    +———————+
    1 row in set (0.00 sec)
    SELECT YEAR(CURRENT_DATE);
    +——————–+
    | YEAR(CURRENT_DATE) |
    +——————–+
    | 2009 |
    +——————–+
    1 row in set (0.00 sec)
  4. 显示字符串
    mysql> SELECT “welecome to my blog!”;
    +———————-+
    | welecome to my blog! |
    +———————-+
    | welecome to my blog! |
    +———————-+
    1 row in set (0.00 sec)
  5. 当计算器用
    select ((4 * 4) / 10 ) + 25;
    +———————-+
    | ((4 * 4) / 10 ) + 25 |
    +———————-+
    | 26.60 |
    +———————-+
    1 row in set (0.00 sec)
  6. 串接字符串
    select CONCAT(f_name, ” “, l_name)
    AS Name
    from employee_data
    where title = ‘Marketing Executive’;
    +—————+
    | Name |
    +—————+
    | Monica Sehgal |
    | Hal Simlai |
    | Joseph Irvine |
    +—————+
    3 rows in set (0.00 sec)
    注意:这里用到CONCAT()函数,用来把字符串串接起来。另外,我们还用到以前学到的AS
    给结果列’CONCAT(f_name, ” “, l_name)’起了个假名。

九、create table:创建数据表

数据表属于数据库,在创建数据表之前,应该使用语句“USE
<数据库名>”指定操作是在哪
个数据库中进行,如果没有选择数据库,会抛出“No database
selected”的错误。
创建数据表的语句为CREATE TABLE,语法规则如下:
CREATE TABLE <表名>
(
字段名1,数据类型[列级别约束条件] [默认值],
字段名2,数据类型[列级别约束条件] [默认值],
„„
[表级别约束条件]
);
使用CREATE TABLE 创建表时,必须指定以下信息:
(1)要创建的表的名称,不区分大小写,不能使用SQL
语言中的关键字,如DROP、ALTER、
INSERT 等。
(2)数据表中每一个列(字段)的名称和数据类型,如果创建多个列,要用逗号隔开。
创建员工表tb_emp1,结构如下表所示。
表tb_emp1 表结构
字段名称数据类型备注
id INT(11) 员工编号
name VARCHAR(25) 员工名称
deptId INT(11) 所在部门编号
salary FLOAT 工资
首先创建数据库,SQL 语句如下:
CREATE DATABASE test_db;
选择创建表的数据库,SQL 语句如下:
USE test_db;
创建tb_emp1 表,SQL 语句为:
CREATE TABLE tb_emp1
(
id INT(11),
name VARCHAR(25),
deptId INT(11),
salary FLOAT
);
语句执行后,便创建了一个名称为tb_emp1 的数据表,使用SHOW
TABLES;语句查看数据
表是否创建成功,SQL 语句如下:
mysql> SHOW TABLES;
+———————–+
| Tables_in_ test_db |
+———————-+
| tb_emp1 |
+———————-+
1 row in set (0.00 sec)
可以看到,test_db 数据库中已经有了数据表tb_tmp1,数据表创建成功。

十、 desc:获取表结构

在MySQL 中,查看表结构可以使用DESCRIBE 和SHOW CREATE TABLE 语句。
DESCRIBE/DESC
语句可以查看表的字段信息,其中包括:字段名、字段数据类型、是否为主
键、是否有默认值等。语法规则如下:
DESCRIBE 表名;
或者简写为:
DESC 表名;
SHOW CREATE TABLE 语句可以用来显示创建表时的CREATE TABLE
语句,语法格式
如下:
SHOW CREATE TABLE <表名G>;
使用SHOW CREATE TABLE
语句,不仅可以查看表创建时候的详细语句,而且还可以查
看存储引擎和字符编码。
如果不加’G’参数,显示的结果可能非常混乱,加上参数’G’之后,可使显示结果更加直观,
易于查看。
使用SHOW CREATE TABLE 查看表tb_emp1 的详细信息,SQL 语句如下:
mysql> SHOW CREATE TABLE tb_emp1;

十一、drop table:删除数据表

在MySQL 中,使用DROP TABLE
可以一次删除一个或多个没有被其他表关联的数据表。语
法格式如下:
DROP TABLE [IF EXISTS]表1, 表2, . . . 表n;
其中“表n”指要删除的表的名称,后面可以同时删除多个表,只需将要删除的表名依次写在
后面,相互之间用逗号隔开即可。如果要删除的数据表不存在,则MySQL
会提示一条错误信息,
“ERROR 1051 (42S02): Unknown table ‘表名’”。参数“IF
EXISTS”用于在删除前判断删除的表是
否存在,加上该参数后,再删除表的时候,如果表不存在,SQL
语句可以顺利执行,但是会发出
警告(warning)。
在前面的例子中,已经创建了名为tb_dept2
的数据表。如果没有,读者可输入语句,创建该
表,SQL 语句如例4.8 所示。下面使用删除语句将该表删除。
删除数据表tb_dept2,SQL 语句如下:
DROP TABLE IF EXISTS tb_dept2;

十二、insert into:向表中插入数据

INSERT INTO 语句用于向表格中插入新的行。
语法如下:
INSERT INTO 表名称VALUES (值1, 值2,….)
我们也可以指定所要插入数据的列:
INSERT INTO table_name (列1, 列2,…) VALUES (值1, 值2,….)
【例】创建数据表tmp3,定义数据类型为YEAR
的字段y,向表中插入值2010,’2010’,SQL
语句如下:
首先创建表tmp3:
CREATE TABLE tmp3( y YEAR );
向表中插入数据:
mysql> INSERT INTO tmp3 values(2010),(‘2010’);

十三、select from:查询表中数据

MySQL 从数据表中查询数据的基本语句为SELECT 语句。SELECT
语句的基本格式是:
SELECT
{* | <字段列表>}
[
FROM <表1>,<表2>…
[WHERE <表达式>
[GROUP BY <group by definition>]
[HAVING <expression> [{<operator>
<expression>}…]]
[ORDER BY <order by definition>]
[LIMIT [<offset>,] <row count>]
]
SELECT [字段1,字段2,…,字段n]
FROM [表或视图]
WHERE [查询条件];
其中,各条子句的含义如下:
{* |
<字段列表>}包含星号通配符选字段列表,表示查询的字段,其中字段列至少包含一个字
段名称,如果要查询多个字段,多个字段之间用逗号隔开,最后一个字段后不要加逗号。
FROM <表1>,<表2>…,表1 和表2
表示查询数据的来源,可以是单个或者多个。
WHERE 子句是可选项,如果选择该项,将限定查询行必须满足的查询条件。
GROUP BY <字段>,该子句告诉MySQL
如何显示查询出来的数据,并按照指定的字段分
组。
[ORDER BY <字段>],该子句告诉MySQL
按什么样的顺序显示查询出来的数据,可以进行
的排序有:升序(ASC)、降序(DESC)。
[LIMIT [<offset>,] <row count>],该子句告诉MySQL
每次显示查询出来的数据条数。

十四、delete from:删除记录

从数据表中删除数据使用DELETE 语句,DELETE 语句允许WHERE
子句指定删除条件。
DELETE 语句基本语法格式如下:
DELETE FROM table_name [WHERE <condition>];
table_name 指定要执行删除操作的表;“[WHERE
<condition>]”为可选参数,指定删除条件,
如果没有WHERE 子句,DELETE 语句将删除表中的所有记录。
【例】在person 表中,删除id 等于11 的记录,SQL 语句如下:
mysql> DELETE FROM person WHERE id = 11;
Query OK, 1 row affected (0.02 sec)

十五、update set:修改表中的数据

MySQL 中使用UPDATE
语句更新表中的记录,可以更新特定的行或者同时更新所有的行。
基本语法结构如下:
UPDATE table_name
SET column_name1 =
value1,column_name2=value2,……,column_namen=valuen
WHERE (condition);
column_name1,column_name2,……,column_namen
为指定更新的字段的名称;value1,
value2,……valuen 为相对应的指定字段的更新值;condition
指定更新的记录需要满足的条件。更新
多个列时,每个“列-值”对之间用逗号隔开,最后一列之后不需要逗号。
【例】在person 表中,更新id 值为11 的记录,将age 字段值改为15,将name
字段值改为
LiMing,SQL 语句如下:
UPDATE person SET age = 15, name=’LiMing’ WHERE id = 11;

十六、alter add:增加字段

添加字段的语法格式如下:
ALTER TABLE <表名> ADD <新字段名> <数据类型>
[约束条件] [FIRST | AFTER 已存在字段名];
新字段名为需要添加的字段的名称;“FIRST”为可选参数,其作用是将新添加的字段设置为
表的第一个字段;“AFTER”为可选参数,其作用是将新添加的字段添加到指定的“已存在字段
名”的后面。
【例】在数据表tb_dept1 中添加一个没有完整性约束的INT
类型的字段managerId(部门经理
编号),SQL 语句如下:
ALTER TABLE tb_dept1 ADD managerId INT(10);

十七、rename:修改表名

MySQL 是通过ALTER TABLE 语句来实现表名的修改的,具体的语法规则如下:
ALTER TABLE <旧表名> RENAME [TO] <新表名>;
其中TO 为可选参数,使用与否均不影响结果。
【例】将数据表tb_dept3 改名为tb_deptment3,SQL 语句如下:
ALTER TABLE tb_dept3 RENAME tb_deptment3;

十八、mysqldump:备份数据库

mysqldump 备份数据库语句的基本语法格式如下:
mysqldump –u user –h host –ppassword dbname[tbname, [tbname…]]>
filename.sql
user 表示用户名称;host 表示登录用户的主机名称;password
为登录密码;dbname 为需要备
份的数据库名称;tbname 为dbname
数据库中需要备份的数据表,可以指定多个需要备份的表;右
箭头符号“>”告诉mysqldump
将备份数据表的定义和数据写入备份文件;filename.sql 为备份文件
的名称。
【例】使用mysqldump 命令备份数据库中的所有表,执行过程如下:
打开操作系统命令行输入窗口,输入备份命令如下:
C: >mysqldump -u root -p booksdb >
C:/backup/booksdb_20130301.sql
Enter password: **
输入密码之后,MySQL 便对数据库进行了备份,在C:backup
文件夹下面查看刚才备份过的文件。

十九、mysql 和source:还原数据库

对于已经备份的包含CREATE、INSERT 语句的文本文件,可以使用mysql
命令导入到数据库
中。
备份的sql 文件中包含CREATE、INSERT 语句(有时也会有DROP 语句)。mysql
命令可以
直接执行文件中的这些语句。其语法如下:
mysql –u user –p [dbname] < filename.sql
user 是执行backup.sql 中语句的用户名;-p 表示输入用户密码;dbname
是数据库名。如果
filename.sql 文件为mysqldump
工具创建的包含创建数据库语句的文件,执行的时候不需要指定数
据库名。
【例1】使用mysql 命令将C:backupbooksdb_20130301.sql
文件中的备份导入到数据库中,输
入语句如下:
mysql –u root –p booksDB < C:/backup/booksdb_20130301.sql
执行该语句前,必须先在MySQL 服务器中创建booksDB
数据库,如果不存在恢复过程将会
出错。命令执行成功之后booksdb_20130301.sql
文件中的语句就会在指定的数据库中恢复以前的
表。
如果已经登录MySQL 服务器,还可以使用source 命令导入sql 文件。source
语句语法如下:
source filename
【例2 】使用root 用户登录到服务器,然后使用source 导入本地的备份文件
booksdb_20110101.sql,输入语句如下:
–选择要恢复到的数据库
mysql> use booksDB;
Database changed
–使用source 命令导入备份文件
mysql> source C:backupbooksDB_20130301.sql
命令执行后,会列出备份文件booksDB_20130301.sql
中每一条语句的执行结果。source 命令
执行成功后,booksDB_20130301.sql 中的语句会全部导入到现有数据库中。

二十、mysqlhotcopy:快速恢复数据库

mysqlhotcopy 备份后的文件也可以用来恢复数据库,在MySQL
服务器停止运行时,将备份的
数据库文件复制到MySQL 存放数据的位置(MySQL 的data
文件夹),重新启动MySQL 服务即
可。如果以根用户执行该操作,必须指定数据库文件的所有者,输入语句如下:
chown -R mysql.mysql /var/lib/mysql/dbname
【例】从mysqlhotcopy 复制的备份恢复数据库,输入语句如下:
cp -R /usr/backup/test usr/local/mysql/data
执行完该语句,重启服务器,MySQL 将恢复到备份状态。

发表评论

电子邮件地址不会被公开。 必填项已用*标注