目录
2.mysql 命令格式: mysql -h 主机地址 -u 用户名 -p 用户
2.mysqladmin 命令格式:mysqladmin -u 用户名 -p 旧密码 password 新密码
2.show databases 命令格式:show databases; (注意:最后有个 s)
2.drop 命令格式:drop database <数据库名>;
一、MYSQL连接数据库
1.mysql 命令用户连接数据库。
2.mysql 命令格式: mysql -h 主机地址 -u 用户名 -p 用户
3.连接到本机上的 MYSQL
-
首先打开 DOS 窗口,然后进入目录 mysql\bin,再键入命令 mysql -u root -p,回车后提示你输密码。
-
注意用户名前可以有空格也可以没有空格,但是密码前必须没有空格,否则让你重新输入密码如果刚安装好 MYSQL,超级用户 root 是没有密码的,故直接回车即可进入到 MYSQL 中了MYSQL 的提示符是: mysql>
4.连接到远程主机上的 MYSQL
-
假设远程主机的 IP 为:110.110.110.110,用户名为 root,密码为 abcd123。则键入以下命令: mysql -h110.110.110.110 -u root -p 123;(注:u 与 root 之间可以不用加空格,其它也一样)
5. 退出
MYSQL 命令 exit (回车)
二、mysqladmin:修改用户密码
1.mysqladmin 命令用于修改用户密码。
2.mysqladmin 命令格式:mysqladmin -u 用户名 -p 旧密码 password 新密码
- 给 root 加个密码 ab12 首先在 DOS 下进入目录 mysql\bin,然后键入以下命令:mysqladmin -u root -password ab12 注:因为开始时 root 没有密码,所以-p 旧密码一项就可以省略了。
- 再将 root 的密码改为 djg345 mysqladmin -u root -p ab12 password djg345
三、grant on:新增用户
1.grant on 命令用于增加新用户并控制其权限。
2.grant on 命令格式:grant select on 数据库.* to 用户名@登录主机 identified by “密码”;
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 “”;
四、create:创建数据库
1.create 命令用于创建数据库。
2.创建一个名为xhkdb 的数据库:
mysql> create database xhkdb;
3.创建数据库并分配用户:
-
CREATE DATABASE 数据库名 ;
-
GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,ALTER ON 数据库名 .* TO数据库名 @localhost IDENTIFIED BY ' 密码 '
- SET PASSWORD FOR '数据库名'@'localhost' = OLD_PASSWORD('密码');
依次执行 3 个命令完成数据库创建。注意:中文 “密码”和“数据库”是户自己需要设置的。
五、show databases:显示数据库
1.show databases 命令用于显示所有数据库。
2.show databases 命令格式:show databases; (注意:最后有个 s)
mysql> show databases;
六、drop database:删除数据库
1.drop 命令用于删除数据库。
2.drop 命令格式:drop database <数据库名>;
- 删除名为xhkdb的数据库:
mysql> drop database xhkdb;
- 删除一个已经确定存在的数据库:
mysql> drop database drop_database; Query OK, 0 rows affected (0.00 sec)
- 删除一个不确定存在的数据库:
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:使用数据库
1.use命令可以让我们来使用数据库。
2.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:当前连接的数据库
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)
九、create table:创建数据表
CREATE TABLE <表名>
(
字段名 1,数据类型 [列级别约束条件] [默认值],
字段名 2,数据类型 [列级别约束条件] [默认值],
....
[表级别约束条件]
);
字段名称
| 数据类型 | 备注 |
id | INT(11) | 员工编号 |
name | VARCHAR(25) | 员工名称 |
deptId | INT(11) | 所在部门编号 |
salary | FLOAT | 工资 |
CREATE DATABASE test_db;
USE test_db;
CREATE TABLE tb_emp1
(id INT(11),
name VARCHAR(25),
deptId INT(11),
salary FLOAT
);
mysql> SHOW TABLES;
+-----------------------+
| Tables_in_ test_db |
+----------------------+
| tb_emp1 |
+----------------------+
1 row in set (0.00 sec)
十、desc:获取表结构
DESCRIBE 表名;
或者简写为:
DESC 表名;
SHOW CREATE TABLE <表名\G>;
mysql> SHOW CREATE TABLE tb_emp1;
十一、drop table:删除数据表
DROP TABLE [IF EXISTS]表 1, 表 2, . . . 表 n;
DROP TABLE IF EXISTS tb_dept2;
十二、insert into:向表中插入数据
INSERT INTO 表名称 VALUES (值 1, 值 2,....)
INSERT INTO table_name (列 1, 列 2,...) VALUES (值 1, 值 2,....)
CREATE TABLE tmp3( y YEAR );
mysql> INSERT INTO tmp3 values(2010),('2010')
十三、select from:查询表中数据
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 [查询条件];
十四、delete from:删除记录
DELETE FROM table_name [WHERE <condition>];
mysql> DELETE FROM person WHERE id = 11;
Query OK, 1 row affected (0.02 sec)
十五、update set:修改表中的数据
UPDATE table_name
SET column_name1 = value1,column_name2=value2,……,column_namen=valuen
WHERE (condition);
UPDATE person SET age = 15, name=’LiMing’ WHERE id = 11;
十六、 alter add:增加字段
ALTER TABLE <表名> ADD <新字段名> <数据类型>
[约束条件] [FIRST | AFTER 已存在字段名];
ALTER TABLE tb_dept1 ADD managerId INT(10);
十七、rename:修改表名
ALTER TABLE <旧表名> RENAME [TO] <新表名>;
ALTER TABLE tb_dept3 RENAME tb_deptment3;
十八、mysqldump:备份数据库
mysqldump –u user –h host –ppassword dbname[tbname, [tbname...]]> filename.sql
C:\ >mysqldump -u root -p booksdb > C:/backup/booksdb_20130301.sql
Enter password: **
十九、mysql 和 source:还原数据库
mysql –u user –p [dbname] < filename.sql
user 是执行 backup.sql 中语句的用户名;-p 表示输入用户密码;dbname 是数据库名。如果 filename.sql 文件为 mysqldump 工具创建的包含创建数据库语句的文件,执行的时候不需要指定数 据库名。
【例 1】使用 mysql 命令将 C:\backup\booksdb_20130301.sql 文件中的备份导入到数据库中,输 入语句如下:
mysql –u root –p booksDB < C:/backup/booksdb_20130301.sql
source filename
【 例 2 】 使 用 root 用 户 登 录 到 服 务 器 , 然 后 使 用 source 导 入 本 地 的 备 份 文 件 booksdb_20110101.sql,输入语句如下:
--选择要恢复到的数据库
mysql> use booksDB;
Database changed
--使用 source 命令导入备份文件
mysql> source C:\backup\booksDB_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 将恢复到备份状态