格式: mysql -h主机地址 -u用户名 -p用户密码

Mysql命令大全,mysql命令

一、mysql:连接Mysql数据库

mysql命令用户连接数据库。
mysql命令格式: mysql -h主机地址 -u用户名-p用户密码
1) **连续到本机上的MYSQL**
第壹展开DOS窗口,然后进入目录mysql\bin,再键入命令mysql -u root
-p,回车的后边提示您输密码。
留神用户名前能够有空格也足以未有空格,可是密码前必须未有空格,不然让您再度输入密码。
若果刚安装好MYSQL,一级用户root是从未密码的,故直接回车就可以进入到MYSQL中了,MYSQL的唤醒符是:
mysql>

2) **一而再到长途主机上的MYSQL**
假使远程主机的IP为:1拾.1十.110.1十,用户名称叫root,密码为abcd1二3。则键入以下命令:
    mysql -h110.110.110.1十 -u root -p
123;(注:u与root之间能够毫不加空格,别的也一致)

3) **退出MYSQL命令**
exit (回车)

 

2、mysqladmin:修改用户密码

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

1) **给root加个密码ab1二**
先是在DOS下进入目录mysql\bin,然后键入以下命令:
    mysqladmin -u root -password ab12
注:因为开首时root没有密码,所以-p 旧密码壹项就足以简轻巧单了。

2) **再将root的密码改为djg3四伍**
    mysqladmin -u root -p ab12 password djg345

 

三、grant on:扩充新用户并调节其权力

grant on命令用于充实新用户并操纵其权力。
grant on命令格式:grant select on 数据库.* to 用户名@登入主机
identified by “密码”;

一)
扩大一个用户test壹,密码为abc,让他能够在别的主机上登陆,并对具备数据库有询问、插入、修改、删除的权能。首先用root用户连入MYSQL,然后键入以下命令:
    grant select,insert,update,delete on *.* to
[[email protected]”%][email protected]”%[/email]”
Identified by “abc”;
但净增的用户是充足惊恐的,你想如有个别人清楚test1的密码,那么他就足以在internet上的别样1台计算机上登入你的mysql数据库并对您的数目足感觉所欲为了,化解办法如下。

贰)
扩大贰个用户test二密码为abc,让她只好够在localhost上登6,并得以对数据库mydb举行询问、插入、修改、删除的操作(localhost指本地主机,即MYSQL数据库所在的那台主机),那样用户即采用知道test2的密码,他也无法从internet上一向访问数据库,只可以通过MYSQL主机上的web页来访问了。
    grant select,insert,update,delete on mydb.* to
[[email protected]][email protected][/email]
identified by “abc”;
假定您不想test二有密码,能够再打三个命令将密码消掉。
    grant select,insert,update,delete on mydb.* to
[[email protected]][email protected][/email]
identified by “”;

 

四、create:创造数据库

create命令用于创造数据库。
create命令格式:create database <数据库名>;
留意:创立数据库以前要先再三再四Mysql服务器。

一) 创立二个名称叫xhkdb的数据库:
    mysql> create database xhkdb;

二) 成立数据库并分配用户:

一.    CREATE DATABASE 数据库名;

二.    GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,ALTE大切诺基 ON 数据库名.*
TO 数据库名@localhost IDENTIFIED BY ‘密码’;

三.    SET PASSWOHighlanderD FOLacrosse ‘数据库名’@’localhost’ = OLD_PASSWORD(‘密码’);

依次实践1个指令完毕数据库创设。
瞩目:普通话 “密码”和“数据库”是户本身需求安装的。

 

伍、show databases:展现全部数据库

show databases命令用于突显全体数据库。
show databases命令格式:show databases; (注意:最后有个s)
例如:mysql> show databases;
留意:为了不在展现的时候乱码,要修改数据库暗许编码。以下以GBK编码页面为例进行认证。

一) 修改MYSQL的布置文件:my.ini里面修改default-character-set=gbk

二) 代码运维时修改:

·        
Java代码:jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=gbk

·         PHP代码:header(“Content-Type:text/html;charset=gb2312”);

·         C语言代码:int mysql_set_character_set( MYSQL * mysql,
char * csname);
该函数用于为当下接二连三装置默许的字符集。字符串csname钦点了3个有效的字符集名称。连接核查成为字符集的暗中同意核对。该函数的行事形式与SET
NAMES语句看似,但它仍是可以够设置mysql- >
charset的值,从而影响了由mysql_real_escape_string() 设置的字符集。

 

六、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)

 

7、use:使用数据库

use命令能够让我们来选拔数据库。
use命令格式: use <数据库名>;
比如,就算xhkdb数据仓库储存在,尝试存取它:
   mysql> use xhkdb;
显示器提醒:Database changed

1) 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

2)
使用USE语句为3个特定的脚下的数据库做标识,不会堵住你访问其余数据库中的表。下边包车型大巴事例能够从db一数据库访问author表,并从db二数据库访问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 别的数据库名字
就足以了。

 

8、select:当前增选(连接)的数据库

select命令表示如今选用(连接)的数据库。
select命令格式:mysql> select database();
MySQL中SELECT命令类似于任何编制程序语言里的print或然write,你能够用它来展现3个字符串、数字、数学表明式的结果等等。怎么着利用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)’起了个字母。

 

9、create table:创设数据表

create table命令用来创立数据表。
create table命令格式:create table <表名> (<字段名1>
<类型1> [,..<字段名n> <类型n>]);

比方,建立多个名叫MyClass的表:

字段名

数字类型

数据宽度

是否为空

是否主键

自动增加

默认值

id

int

4

primary key

auto_increment

 

name

char

20

 

 

 

sex

int

4

 

 

0

degree

double

16

 

 

 

mysql> create table MyClass(
    > id int(4) not null primary key auto_increment,
    > name char(20) not null,
    > sex int(4) not null default ‘0’,
    > degree double(16,2));

 

10、desc:获取数据表结构

desc命令用于获取数据表结构。
desc命令格式:
    desc 表名;
同样
    show columns from 表名;
也能博得数据表结构。

比喻如下:
mysql> desc MyClass;
mysql> show columns from MyClass;

采纳MySQL数据库desc 表名时,我们看出Key那1栏,大概会有四种值,即 ‘
‘,’P翼虎I’,’UNI’,’MUL’。

一.   
假若Key是空的,那么该列值的能够重复,表示该列没有索引,或然是1个非唯一的复合索引的非前导列;

2.    假如Key是PSportageI,那么该列是主键的组成都部队分;

三.   
假使Key是UNI,那么该列是2个唯一值索引的率先列(前导列),并别无法含有空值(NULL);

肆.   
要是Key是MUL,那么该列的值能够另行,该列是多少个非唯一索引的前导列(第一列)可能是四个唯一性索引的组成部分不过足以涵盖空值NULL。

1经对于三个列的概念,同时满意上述四种情形的有余,举例一个列既是P景逸SUVI,又是UNI,那么”desc
表名”的时候,显示的Key值依照事先级来呈现P福睿斯I->UNI->MUL。那么此时,显示P中华VI。

叁个唯一性索引列能够来得为PRubiconI,并且该列不能含有空值,同时该表未有主键。

1个唯一性索引列能够突显为MUL,倘诺多列构成了3个唯一性复合索引,因为就算索引的多列组合是唯一的,举例ID+NAME是唯一的,可是没三个单身的列照旧得以有双重的值,只要ID+NAME是唯1的就可以。

 

十一、drop table:删除数据表

drop table命令用于删除数据表。
drop table命令格式:drop table <表名>;

比方,删除表名称为 MyClass 的表:
    mysql> drop table MyClass;

DROP
TABLE用于删除3个或多个表。您必须有各种表的DROP权限。全体的表数据和表定义会被吊销,所以选择本语句要小心!

注意:对于二个带分区的表,DROP
TABLE会永恒性地收回表定义,打消各分区,并取消储存在这个分区中的全部数据。DROP
TABLE还会吊销与被吊销的表有关联的分区定义(.par)文件。
对与不设有的表,使用IF EXISTS用于防止错误爆发。当使用IF
EXISTS时,对于每种不设有的表,会转移多个NOTE(警告)。
REST凯雷德ICT和CASCADE能够使分区更便于。近来,RESTLX570ICT和CASCADE不起作用。

 

10贰、insert into:向表中插入数据(记录)

insert into命令用于向表中插入数据。
insert into命令格式:insert into <表名>
[(<字段名1>[,..<字段名n > ])] values ( 值1 )[, ( 值n
)];

举例:往表
MyClass中插入两条记下,这两条记下代表:编号为1的名叫汤姆的实际业绩为玖陆.肆伍,编号为2的名叫Joan 的成就为8二.9九,编号为三 的名字为Wang 的大成为玖陆.伍。
    mysql> insert into MyClass
values(1,’Tom’,96.45),(2,’Joan’,82.99), (2,’Wang’, 96.59);

注意:insert into每一次只可以向表中插入一条记下。

 

拾叁、select from:查询表中的数据(记录)

select from命令用来查询表中的数据。

1) **查询全部行*
指令格式: select <字段一, 字段二, …> from < 表名 > where
< 表达式 >;
比如说,查看表 MyClass 中负有数据:
   mysql> select \
from MyClass;

2) **询问前几行数据*
例如,查看表 MyClass 中前2行数据:
    mysql> select \
from MyClass order by id limit 0,2;
select一般同盟where使用,以询问更标准更复杂的数额。

 

十四、delete from:删除记录

delete from命令用于删除表中的数目。
delete from命令格式:delete from 表名 where 表明式

举例,删除表 MyClass中编号为1 的记录:
    mysql> delete from MyClass where id=1;
请对照一下去除数据前后表的浮动。

FirstName

LastName

Age

Peter

Griffin

35

Glenn

Quagmire

33

下边以PHP代码为例删除 “Persons” 表中存有 LastName=’格里芬’ 的记录:

1.    <?php

2.       $con = mysql_connect(“localhost”,”peter”,”abc123″);

3.       if (!$con){

4.          die(‘Could not connect: ‘ . mysql_error());

5.       }

6.       mysql_select_db(“my_db”, $con);

7.       mysql_query(“DELETE FROM Persons WHERE LastName=’Griffin'”);
mysql_close($con);

8.    ?>

在此番删除之后,表是那样的:

FirstName

LastName

Age

Glenn

Quagmire

33

 

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

update set命令用来修改表中的数据。
update set命令格式:update 表名 set 字段=新值,… where 条件;

比喻如下:
mysql> update MyClass set name=’Mary’ where id=1;
例子1,单表的MySQL UPDATE语句:
UPDATE [LOW_PRIORITY] [IGNORE] tbl_name SET col_name1=expr1 [,
col_name2=expr2 …] [WHERE where_definition] [ORDER BY
…] [LIMIT row_count];

例子2,多表的UPDATE语句:
UPDATE [LOW_PRIORITY] [IGNORE] table_references SET
col_name1=expr1 [, col_name2=expr2 …] [WHERE
where_definition];

UPDATE语法能够用新值更新原有表行中的各列。SET子句提示要修改哪些列和要授予什么值。WHERE子句钦点应立异哪些行。借使未有WHERE子句,则更新具备的行。假若内定了O宝马7系DER
BY子句,则依照被钦点的顺序对行实行更新。LIMIT子句用于给定3个限值,限制能够被更新的行的数目。

 

十陆、alter add:增添表的字段、索引

alter add命令用来扩大表的字段。
alter add命令格式:alter table 表名 add字段类型其余;

比如,在表MyClass中增加了二个字段passtest,类型为int(四),暗中同意值为0:
   mysql> alter table MyClass add passtest int(4) default ‘0’;

1) **加索引**
   mysql> alter table 表名 add index 索引名 (字段名1[,字段名2
…]);
例子: mysql> alter table employee add index emp_name (name);

2) **加主关键字的目录**
    mysql> alter table 表名 add primary key (字段名);
例子: mysql> alter table employee add primary key(id);

3) **加唯一限制规范的目录**
   mysql> alter table 表名 add unique 索引名 (字段名);
例子: mysql> alter table employee add unique
emp_name2(cardnumber);

4) **删去有个别索引**
   mysql> alter table 表名 drop index 索引名;
例子: mysql>alter table employee drop index emp_name;

5) **日增字段
    mysql> ALTER TABLE table_name ADD field_name field_type;
6) **修改原字段名称及项目
    mysql> ALTER TABLE table_name CHANGE old_field_name
new_field_name field_type;
7) **删去字段**
    MySQL ALTER TABLE table_name DROP field_name;

 

十柒rename:修改表名

rename命令用于修改表名。
rename命令格式:rename table 原表名 to 新表名;

举例,在表MyClass名字改成为YouClass:
    mysql> rename table MyClass to YouClass;

当你实行 RENAME
时,你不能有任何锁定的表或活动的业务。你同样也非得有对原初表的 ALTEPRADO 和
DROP 权限,以及对新表的 CREATE 和 INSERT 权限。
若果在多表更名中,MySQL
碰着到别的错误,它将对具备被更名的表张开退步更名,将每件事物退回到中期状态。
RENAME TABLE 在 MySQL 三.2三.贰3 中被插手。

10八、mysqldump:备份数据库

mysqldump命令用来备份数据库。
mysqldump命令在DOS的[url=file://\\mysql\\bin]\\mysql\\bin[/url]目录下实行。

1) **导出整个数据库(导出文件默许是存在mysql\bin目录下)**
    mysqldump -u 用户名 -p 数据库名 > 导出的公文名
    mysqldump -u user_name -p123456 database_name >
outfile_name.sql

2) **导出三个表**
    mysqldump -u 用户名 -p 数据库名表名> 导出的文件名
    mysqldump -u user_name -p database_name table_name >
outfile_name.sql

3) **导出一个数据库结构**
    mysqldump -u user_name -p -d –add-drop-table database_name >
outfile_name.sql
    -d 未有多少 –add-drop-table 在各种create语句从前扩大二个drop table

4) **带语言参数导出**
    mysqldump -uroot -p –default-character-set=latin1 –set-charset=gbk
–skip-opt database_name > outfile_name.sql
比如,将aaa库备份到文件back_aaa中:
[[email protected]
root]# cd /home/data/mysql
[[email protected]
mysql]# mysqldump -u root -p –opt aaa > back_aaa

十玖、Mysql实例:建库建表并插入数据壹

drop database if exists school;  // 假如存在school则删除
create database school;  // 建立库school
use school;  // 打开库SCHOOL
create table teacher(  // 建立表TEACHER
    id int(3) auto_increment not null primary key,
    name char(10) not null,
    address varchar(50) default ‘深圳’,
    year date
);  // 建表截止

// 以下为插入字段
insert into teacher values(”,’allen’,’达累斯萨拉姆一中’,’①9七陆-十-十′);
insert into teacher values(”,’jack’,’菲尼克斯2中’,’1975-1二-二三′);

若果你在mysql提醒符键入上边包车型地铁通令也足以,但不便宜调试。有二种艺术来消除这一个主题素材:

o   
你能够将以上命令原样写入1个文书文件中,假使为school.sql,然后复制到c:\\下,并在DOS状态进入目录[url=file://\\mysql\\bin]\\mysql\\bin[/url],然后键入以下命令:
    mysql -uroot -p密码 < c:\\school.sql
1旦成功,空出1行无其余显示;如有错误,会有提示。(以上命令已经调节和测试,你倘诺将//的表明去掉就能够使用)。

o    或许进入命令行后选取 mysql> source c:\\school.sql;
也得以将school.sql文件导入数据库中。

 

2017-04-19 13:17:52

一、mysql:连接Mysql数据库

mysql命令用户连接数据库。
mysql命令格式: mysql -h主机地址 -u用户名-p用户密码
1) **老是到本机上的MYSQL**
率先展开DOS窗口,然后进入目录mysql\bin,再键入命令mysql -u root
-p,回车的前面提醒您输密码。
只顾用户名前能够有空格也足以未有空格,但是密码前务必没有空格,不然让您再次输入密码。
如若刚安装好MYSQL,拔尖用户root是平素不密码的,故直接回车就能够进入到MYSQL中了,MYSQL的唤醒符是:
mysql>

2) **总是到长途主机上的MYSQL**
只要远程主机的IP为:110.110.1十.1十,用户名称为root,密码为abcd12三。则键入以下命令:
    mysql -h110.1十.1拾.1十 -u root -p
12三;(注:u与root之间能够毫不加空格,别的也同等)

3) **退出MYSQL命令**
exit (回车)

 

二、mysqladmin:修改用户密码

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

1) **给root加个密码ab12**
第一在DOS下进入目录mysql\bin,然后键入以下命令:
    mysqladmin -u root -password ab12
注:因为起头时root未有密码,所以-p 旧密码壹项就可以简简单单了。

2) **再将root的密码改为djg345**
    mysqladmin -u root -p ab12 password djg345

 

3、grant on:扩大新用户并调节其权力

grant on命令用于充实新用户并调控其权力。
grant on命令格式:grant select on 数据库.* to 用户名@登六主机
identified by “密码”;

一)
扩张3个用户test一,密码为abc,让他能够在别的主机上登陆,并对持有数据库有询问、插入、修改、删除的权位。首先用root用户连入MYSQL,然后键入以下命令:
    grant select,insert,update,delete on *.* to
[[email protected]”%][email protected]”%[/email]”
Identified by “abc”;
但净增的用户是可怜生死攸关的,你想如有个别人掌握test壹的密码,那么他就足以在internet上的任何一台Computer上登陆你的mysql数据库并对您的数码足以任性妄为了,消除办法如下。

2)
增加三个用户test2密码为abc,让她只好够在localhost上登陆,并得以对数据库mydb进行询问、插入、修改、删除的操作(localhost指当地主机,即MYSQL数据库所在的那台主机),那样用户即采纳知道test贰的密码,他也无力回天从internet上直接待上访问数据库,只好通过MYSQL主机上的web页来访问了。
    grant select,insert,update,delete on mydb.* to
[[email protected]][email protected][/email]
identified by “abc”;
假使您不想test贰有密码,可以再打三个下令将密码消掉。
    grant select,insert,update,delete on mydb.* to
[[email protected]][email protected][/email]
identified by “”;

 

4、create:创制数据库

create命令用于创建数据库。
create命令格式:create database <数据库名>;
小心:成立数据库之前要先几次三番Mysql服务器。

一) 创设贰个名称为xhkdb的数据库:
    mysql> create database xhkdb;

2) 创设数据库并分配用户:

一.    CREATE DATABASE 数据库名;

二.    GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,ALTEPRADO ON 数据库名.*
TO 数据库名@localhost IDENTIFIED BY ‘密码’;

叁.    SET PASSWORubiconD FOLX570 ‘数据库名’@’localhost’ = OLD_PASSWORD(‘密码’);

逐1实践3个指令完成数据库创造。
只顾:粤语 “密码”和“数据库”是户自个儿须要安装的。

 

5、show databases:显示所有数据库

show databases命令用于呈现全数数据库。
show databases命令格式:show databases; (注意:最终有个s)
例如:mysql> show databases;
小心:为了不在展现的时候乱码,要修改数据库暗中认可编码。以下以GBK编码页面为例举办表明。

1) 修改MYSQL的配备文件:my.ini里面修改default-character-set=gbk

二) 代码运营时修改:

·        
Java代码:jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=gbk

·         PHP代码:header(“Content-Type:text/html;charset=gb2312”);

·         C语言代码:int mysql_set_character_set( MYSQL * mysql,
char * csname);
该函数用于为日前接连装置暗中同意的字符集。字符串csname内定了1个有效的字符集名称。连接核对成为字符集的默许核查。该函数的劳作措施与SET
NAMES语句看似,但它还能设置mysql- >
charset的值,从而影响了由mysql_real_escape_string() 设置的字符集。

 

6、drop database:删除数据库

drop命令用于删除数据库。
drop命令格式:drop database <数据库名>;
譬喻说,删除名称为 xhkdb的数据库:
mysql> drop database xhkdb;

[例子1] 删除3个曾经规定期存款在的数据库:
   mysql> drop database drop_database;
   Query OK, 0 rows affected (0.00 sec)

[例子2] 删除3个不分明存在的数据库:
    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)
    //发生3个告诫表明此数据库不存在

    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)

 

7、use:使用数据库

use命令能够让大家来使用数据库。
use命令格式: use <数据库名>;
例如,若是xhkdb数据库存在,尝试存取它:
   mysql> use xhkdb;
荧屏提醒:Database changed

1) 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

2)
使用USE语句为三个一定的此时此刻的数据库做标志,不会堵住你访问别的数据库中的表。上边包车型大巴事例能够从db1数据库访问author表,并从db贰数据库访问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)’起了个字母。

 

9、create table:创制数据表

create table命令用来创设数据表。
create table命令格式:create table <表名> (<字段名一>
<类型一> [,..<字段名n> <类型n>]);

举个例子,建设构造3个名称为MyClass的表:

字段名

数字类型

数据宽度

是否为空

是否主键

自动增加

默认值

id

int

4

primary key

auto_increment

 

name

char

20

 

 

 

sex

int

4

 

 

0

degree

double

16

 

 

 

mysql> create table MyClass(
    > id int(4) not null primary key auto_increment,
    > name char(20) not null,
    > sex int(4) not null default ‘0’,
    > degree double(16,2));

 

10、desc:获取数据表结构

desc命令用于获取数据表结构。
desc命令格式:
    desc 表名;
同样
    show columns from 表名;
也能赢得数据表结构。

比喻如下:
mysql> desc MyClass;
mysql> show columns from MyClass;

使用MySQL数据库desc 表名时,大家看到Key那1栏,恐怕会有四种值,即 ‘
‘,’P本田CR-VI’,’UNI’,’MUL’。

一.   
倘若Key是空的,那么该列值的能够重复,表示该列未有索引,也许是一个非唯一的复合索引的非前导列;

2.    假若Key是PTucsonI,那么该列是主键的组成部分;

3.   
就算Key是UNI,那么该列是一个唯壹值索引的第3列(前导列),并别无法含有空值(NULL);

四.   
假设Key是MUL,那么该列的值能够再一次,该列是三个非唯一索引的前导列(第二列)或然是叁个唯一性索引的组成都部队分不过能够蕴含空值NULL。

借使对于3个列的概念,同时满足上述四种意况的有余,举个例子三个列既是P帕杰罗I,又是UNI,那么”desc
表名”的时候,显示的Key值依据事先级来呈现P福特ExplorerI->UNI->MUL。那么此时,展现P福睿斯I。

二个唯一性索引列能够展示为P途胜I,并且该列不可能含有空值,同时该表未有主键。

二个唯一性索引列能够显得为MUL,如若多列构成了1个唯一性复合索引,因为纵然索引的多列组合是唯一的,举个例子ID+NAME是不二法门的,不过没二个独自的列依旧能够有再一次的值,只要ID+NAME是有一无二的就能够。

 

101、drop table:删除数据表

drop table命令用于删除数据表。
drop table命令格式:drop table <表名>;

譬喻,删除表名字为 MyClass 的表:
    mysql> drop table MyClass;

DROP
TABLE用于删除二个或多个表。您必须有种种表的DROP权限。全体的表数据和表定义会被吊销,所以使用本语句要小心!

注意:对于三个带分区的表,DROP
TABLE会永恒性地收回表定义,撤除各分区,并注销积累在这么些分区中的全体数据。DROP
TABLE还会收回与被吊销的表有关联的分区定义(.par)文件。
对与不存在的表,使用IF EXISTS用于防止错误产生。当使用IF
EXISTS时,对于每种不存在的表,会转移多少个NOTE(警告)。
RESTRICT和CASCADE能够使分区更易于。近期,REST猎豹CS6ICT和CASCADE不起作用。

 

十2、insert into:向表中插入数据(记录)

insert into命令用于向表中插入数据。
insert into命令格式:insert into <表名>
[(<字段名1>[,..<字段名n > ])] values ( 值1 )[, ( 值n
)];

比方:往表
MyClass中插入两条记下,那两条记下代表:编号为一的名称叫汤姆的成就为九陆.45,编号为二的名称叫Joan 的成就为八二.99,编号为3 的名称叫Wang 的大成为玖陆.伍。
    mysql> insert into MyClass
values(1,’Tom’,96.45),(2,’Joan’,82.99), (2,’Wang’, 96.59);

留意:insert into每便只好向表中插入一条记下。

 

103、select from:查询表中的数据(记录)

select from命令用来查询表中的数据。

1) **查询全部行*
指令格式: select <字段一, 字段二, …> from < 表名 > where
< 表明式 >;
譬如说,查看表 MyClass 中颇具数据:
   mysql> select \
from MyClass;

2) **询问前几行数据*
例如,查看表 MyClass 中前2行数据:
    mysql> select \
from MyClass order by id limit 0,2;
select一般合营where使用,以询问更确切更复杂的数码。

 

十4、delete from:删除记录

delete from命令用于删除表中的数量。
delete from命令格式:delete from 表名 where 表明式

举个例子,删除表 MyClass中编号为一 的记录:
    mysql> delete from MyClass where id=1;
请对照一下剔除数据前后表的生成。

FirstName

LastName

Age

Peter

Griffin

35

Glenn

Quagmire

33

上面以PHP代码为例删除 “Persons” 表中享有 LastName=’格里芬’ 的记录:

1.    <?php

2.       $con = mysql_connect(“localhost”,”peter”,”abc123″);

3.       if (!$con){

4.          die(‘Could not connect: ‘ . mysql_error());

5.       }

6.       mysql_select_db(“my_db”, $con);

7.       mysql_query(“DELETE FROM Persons WHERE LastName=’Griffin'”);
mysql_close($con);

8.    ?>

在这一次删除之后,表是那样的:

FirstName

LastName

Age

Glenn

Quagmire

33

 

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

update set命令用来修改表中的数据。
update set命令格式:update 表名 set 字段=新值,… where 条件;

比如如下:
mysql> update MyClass set name=’Mary’ where id=1;
例子1,单表的MySQL UPDATE语句:
UPDATE [LOW_PRIORITY] [IGNORE] tbl_name SET col_name1=expr1 [,
col_name2=expr2 …] [WHERE where_definition] [ORDER BY
…] [LIMIT row_count];

例子2,多表的UPDATE语句:
UPDATE [LOW_PRIORITY] [IGNORE] table_references SET
col_name1=expr1 [, col_name2=expr2 …] [WHERE
where_definition];

UPDATE语法能够用新值更新原有表行中的各列。SET子句提示要修改哪些列和要予以什么值。WHERE子句钦命应立异哪些行。假若未有WHERE子句,则更新具有的行。若是钦点了O哈弗DER
BY子句,则根据被钦定的顺序对行进行更新。LIMIT子句用于给定3个限值,限制能够被更新的行的数量。

 

十6、alter add:扩大表的字段、索引

alter add命令用来扩展表的字段。
alter add命令格式:alter table 表名 add字段类型其余;

比如,在表MyClass中增加了2个字段passtest,类型为int(四),暗中认可值为0:
   mysql> alter table MyClass add passtest int(4) default ‘0’;

1) **加索引**
   mysql> alter table 表名 add index 索引名 (字段名1[,字段名2
…]);
例子: mysql> alter table employee add index emp_name (name);

2) **加主关键字的目录**
    mysql> alter table 表名 add primary key (字段名);
例子: mysql> alter table employee add primary key(id);

3) **加唯1限制标准的目录**
   mysql> alter table 表名 add unique 索引名 (字段名);
例子: mysql> alter table employee add unique
emp_name2(cardnumber);

4) **剔除有些索引**
   mysql> alter table 表名 drop index 索引名;
例子: mysql>alter table employee drop index emp_name;

5) **日增字段
    mysql> ALTER TABLE table_name ADD field_name field_type;
6) **修改原字段名称及项目
    mysql> ALTER TABLE table_name CHANGE old_field_name
new_field_name field_type;
7) **剔除字段**
    MySQL ALTER TABLE table_name DROP field_name;

 

107rename:修改表名

rename命令用于修改表名。
rename命令格式:rename table 原表名 to 新表名;

举例,在表MyClass名字改成为YouClass:
    mysql> rename table MyClass to YouClass;

当你实施 RENAME
时,你无法有任何锁定的表或挪动的作业。你一样也亟须有对原初表的 ALTECRUISER 和
DROP 权限,以及对新表的 CREATE 和 INSERT 权限。
借使在多表更名中,MySQL
遭遭逢别的错误,它将对全数被更名的表展开战败更名,将每件事物退回到先前时代状态。
RENAME TABLE 在 MySQL 叁.二三.贰3 中被投入。

十8、mysqldump:备份数据库

mysqldump命令用来备份数据库。
mysqldump命令在DOS的[url=file://\\mysql\\bin]\\mysql\\bin[/url]目录下推行。

1) **导出整个数据库(导出文件暗许是存在mysql\bin目录下)**
    mysqldump -u 用户名 -p 数据库名 > 导出的公文名
    mysqldump -u user_name -p123456 database_name >
outfile_name.sql

2) **导出二个表**
    mysqldump -u 用户名 -p 数据库名表名> 导出的文件名
    mysqldump -u user_name -p database_name table_name >
outfile_name.sql

3) **导出三个数据库结构**
    mysqldump -u user_name -p -d –add-drop-table database_name >
outfile_name.sql
    -d 未有多少 –add-drop-table 在各类create语句以前扩充3个drop table

4) **带语言参数导出**
    mysqldump -uroot -p –default-character-set=latin1 –set-charset=gbk
–skip-opt database_name > outfile_name.sql
例如,将aaa库备份到文件back_aaa中:
[[email protected]
root]# cd /home/data/mysql
[[email protected]
mysql]# mysqldump -u root -p –opt aaa > back_aaa

十九、Mysql实例:建库建表并插入数据一

drop database if exists school;  // 若是存在school则删除
create database school;  // 建立库school
use school;  // 打开库SCHOOL
create table teacher(  // 建立表TEACHER
    id int(3) auto_increment not null primary key,
    name char(10) not null,
    address varchar(50) default ‘深圳’,
    year date
);  // 建表停止

// 以下为插入字段
insert into teacher values(”,’allen’,’奥斯汀一中’,’197八-拾-10′);
insert into teacher values(”,’jack’,’利兹二中’,’197五-1二-二叁′);

假若你在mysql提醒符键入上面包车型客车指令也足以,但不便宜调节和测试。有二种艺术来消除这几个主题材料:

o   
你可以将以上命令原样写入二个文书文件中,假若为school.sql,然后复制到c:\\下,并在DOS状态进入目录[url=file://\\mysql\\bin]\\mysql\\bin[/url],然后键入以下命令:
    mysql -uroot -p密码 < c:\\school.sql
假使成功,空出一行无此外展现;如有错误,会有提示。(以上命令已经调节和测试,你假如将//的解说去掉就能够使用)。

o    只怕进入命令行后应用 mysql> source c:\\school.sql;
也能够将school.sql文件导入数据库中。

 

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

1、连接Mysql

格式: mysql -h主机地址 -u用户名 -p用户密码

一、连接受本机上的MYSQL。
首先展开DOS窗口,然后进入目录mysql\bin,再键入命令mysql -u root
-p,回车的前面提示您输密码.注意用户名前能够有空格也得以未有空格,可是密码前务必未有空格,不然让您重新输入密码。

假使刚安装好MYSQL,超级用户root是未有密码的,故直接回车就能够进入到MYSQL中了,MYSQL的提醒符是:
mysql>

2、连接到长途主机上的MYSQL。假如远程主机的IP为:1十.1十.1拾.1拾,用户名字为root,密码为abcd1二三。则键入以下命令:
    mysql -h1十.1拾.1十.110 -u root -p
12三;(注:u与root之间能够毫不加空格,别的也大同小异)

3、退出MYSQL命令: exit (回车)

 

1、连接受本机上的MYSQL。
第贰张开DOS窗口,然后进入目录mysql\bin,再键入命令mysql -u root
-p,回车的后边提示您输密码.注意用户名前能够有空格也得以未有空格,不过密码前必须未有空格,不然让您重新输入密码。

2、修改密码

格式:mysqladmin -u用户名 -p旧密码 password 新密码

1、给root加个密码ab1贰。
首先在DOS下进入目录mysql\bin,然后键入以下命令
    mysqladmin -u root -password ab12
注:因为伊始时root未有密码,所以-p旧密码1项就可以省略了。

二、再将root的密码改为djg3四伍。
    mysqladmin -u root -p ab12 password djg345

1旦刚安装好MYSQL,顶尖用户root是从未有过密码的,故直接回车就能够进入到MYSQL中了,MYSQL的提醒符是:
mysql>

三、扩充新用户

小心:和地方不一致,下边包车型客车因为是MYSQL景况中的命令,所现在边都带叁个分部作为命令结束符

格式:grant select on 数据库.* to 用户名@登入主机 identified by
“密码”

一、扩大一个用户test壹密码为abc,让他得以在任何主机上登陆,并对持有数据库有查询、插入、修改、删除的权柄。首先用root用户连入MYSQL,然后键入以下命令:
    grant select,insert,update,delete on *.* to
[email=test1@”%]test1@”%[/email]” Identified by “abc”;

但增添的用户是那四个扬汤止沸的,你想如有个别人明白test一的密码,那么她就能够在internet上的别样一台Computer上登6你的mysql数据库并对你的数码可感觉所欲为了,消除办法见2。

二、扩张四个用户test贰密码为abc,让她只能够在localhost上登入,并得以对数据库mydb进行询问、插入、修改、删除的操作(localhost指本地主机,即MYSQL数据库所在的那台主机),那样用户即选拔知道test二的密码,他也无力回天从internet上直接待上访问数据库,只可以通过MYSQL主机上的web页来访问了。
    grant select,insert,update,delete on mydb.* to
[email=test2@localhost]test2@localhost[/email] identified by
“abc”;

就算你不想test二有密码,能够再打一个限令将密码消掉。
    grant select,insert,update,delete on mydb.* to
[email=test2@localhost]test2@localhost[/email] identified by “”;

 

二、连接到长途主机上的MYSQL。一经远程主机的IP为:110.110.1十.1十,用户名叫root,密码为abcd12三。则键入以下命令:
    mysql -h1十.1十.110.110 -u root -p
123;(注:u与root之间能够不用加空格,其余也同等)

四.1 创立数据库

在意:创造数据库此前要先再而三Mysql服务器

一声令下:create database <数据库名>

例一:建构贰个名称叫xhkdb的数据库
   mysql> create database xhkdb;

例贰:成立数据库并分配用户

一CREATE DATABASE 数据库名;

贰GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,ALTECRUISER ON 数据库名.* TO
数据库名@localhost IDENTIFIED BY ‘密码’;

叁SET PASSWO陆风X8D FOLX570 ‘数据库名’@’localhost’ = OLD_PASSWORD(‘密码’);

种种实行二个指令达成数据库创制。注意:中文“密码”和“数据库”是户本身索要设置的。

3、退出MYSQL命令: exit (回车)

四.2 突显数据库

命令:show databases (注意:最后有个s)
mysql> show databases;

只顾:为了不再显得的时候乱码,要修改数据库暗中认可编码。以下以GBK编码页面为例实行表达:

1、修改MYSQL的布署文件:my.ini里面修改default-character-set=gbk
二、代码运维时修改:
 
 ①Java代码:jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=gbk
   ②PHP代码:header(“Content-Type:text/html;charset=gb2312”);
   三C语言代码:int mysql_set_character_set( MYSQL * mysql, char *
csname);
该函数用于为眼下连年装置暗许的字符集。字符串csname钦赐了三个有效的字符集名称。连接核对成为字符集的私下认可核对。该函数的专门的学问方法与SET
NAMES语句看似,但它仍可以够设置mysql- >
charset的值,从而影响了由mysql_real_escape_string() 设置的字符集。

 

4.3 删除数据库

一声令下:drop database <数据库名>
比方说:删除名叫 xhkdb的数据库
mysql> drop database xhkdb;

事例1:删除多个曾经规定期存款在的数据库
   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, 一 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)

贰、修改密码

格式:mysqladmin -u用户名 -p旧密码 password 新密码

一、给root加个密码ab1二。
第3在DOS下进入目录mysql\bin,然后键入以下命令
    mysqladmin -u root -password ab12
注:因为伊始时root未有密码,所以-p旧密码一项就足以省略了。

二、再将root的密码改为djg345。
    mysqladmin -u root -p ab12 password djg345

肆.4 连接数据库

一声令下: 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数据库访问我表,并从db贰数据库访问编辑表:
   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 其余数据库名字
就足以了。

三、增添新用户

只顾:和方面分裂,上边包车型大巴因为是MYSQL景况中的命令,所以前面都带二个支行作为命令甘休符

格式:grant select on 数据库.* to 用户名@登入主机 identified by
“密码”

壹、扩展1个用户test一密码为abc,让她得以在别的主机上登入,并对负有数据库有查询、插入、修改、删除的权能。首先用root用户连入MYSQL,然后键入以下命令:
    grant select,insert,update,delete on *.* to
[email=test1@”%]test1@”%[/email]” Identified by “abc”;

但扩张的用户是十一分人命关天的,你想如有些人领略test1的密码,那么她就能够在internet上的其它壹台微机上登入你的mysql数据库并对你的数目可认为所欲为了,解决办法见贰。

2、扩充2个用户test二密码为abc,让她只好够在localhost上登6,并能够对数据库mydb进行询问、插入、修改、删除的操作(localhost指本地主机,即MYSQL数据库所在的那台主机),那样用户即利用知道test2的密码,他也胸中无数从internet上一直访问数据库,只好通过MYSQL主机上的web页来访问了。
    grant select,insert,update,delete on mydb.* to
[email=test2@localhost]test2@localhost[/email] identified by
“abc”;

借使您不想test贰有密码,可以再打2个命令将密码消掉。
    grant select,insert,update,delete on mydb.* to
[email=test2@localhost]test2@localhost[/email] identified by “”;

 

4.伍 当前增选的数据库

命令: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) 

二. 出示当前时刻
mysql> select now(); 
+———————+ 
| now()               | 
+———————+ 
| 2009-09-15 22:35:32 | 
+———————+ 
1 row in set (0.04 sec) 

三. 展现年月日
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) 

四. 来得字符串
mysql> SELECT “welecome to my blog!”; 
+———————-+ 
| welecome to my blog! | 
+———————-+ 
| welecome to my blog! | 
+———————-+ 
1 row in set (0.00 sec) 

伍. 当总计器用
select ((4 * 4) / 10 ) + 25; 
+———————-+ 
| ((4 * 4) / 10 ) + 25 | 
+———————-+ 
|                26.60 | 
+———————-+ 
1 row in set (0.00 sec) 

陆. 串接字符串
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)’起了个假名。

④.一 创立数据库

留神:创立数据库此前要先一连Mysql服务器

命令:create database <数据库名>

例壹:构建3个名称叫xhkdb的数据库
   mysql> create database xhkdb;

例贰:成立数据库并分配用户

1CREATE DATABASE 数据库名;

2GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,ALTE中华V ON 数据库名.* TO
数据库名@localhost IDENTIFIED BY ‘密码’;

三SET PASSWO宝马X5D FO奇骏 ‘数据库名’@’localhost’ = OLD_PASSWORD(‘密码’);

逐1施行三个指令达成数据库成立。注意:中文“密码”和“数据库”是户自身要求安装的。

5.一 创制数据表

命令:create table <表名> ( <字段名1> <类型1>
[,..<字段名n> <类型n>]);

例如,创建二个名称叫MyClass的表,

字段名 数字类型 数据宽度 是否为空 是否主键 自动增加 默认值
id int 4 primary key auto_increment  
name char 20      
sex int 4     0
degree double 16      

mysql> create table MyClass(
> id int(4) not null primary key auto_increment,
> name char(20) not null,
> sex int(4) not null default ‘0’,
> degree double(16,2));

肆.2 彰显数据库

命令:show databases (注意:最终有个s)
mysql> show databases;

瞩目:为了不再突显的时候乱码,要修改数据库暗中认可编码。以下以GBK编码页面为例举办认证:

1、修改MYSQL的安顿文件:my.ini里面修改default-character-set=gbk
二、代码运维时修改:
 
 ①Java代码:jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=gbk
   ②PHP代码:header(“Content-Type:text/html;charset=gb2312”);
   三C语言代码:int mysql_set_character_set( MYSQL * mysql, char *
csname);
该函数用于为如今一连装置暗许的字符集。字符串csname钦赐了3个有效的字符集名称。连接核对成为字符集的暗中同意核对。该函数的办事章程与SET
NAMES语句看似,但它还是能安装mysql- >
charset的值,从而影响了由mysql_real_escape_string() 设置的字符集。

五.叁 删除数据表

命令:drop table <表名>

例如说:删除表名称叫 MyClass 的表
   mysql> drop table MyClass;

DROP
TABLE用于打消1个或多少个表。您必须有每种表的DROP权限。全部的表数据和表定义会被撤回,所以利用本语句要小心!

留意:对于叁个带分区的表,DROP
TABLE会永恒性地撤销表定义,打消各分区,并收回储存在那些分区中的全体数据。DROP
TABLE还会撤消与被撤回的表有关联的分区定义(.par)文件。

对与不设有的表,使用IF EXISTS用于幸免错误发生。当使用IF
EXISTS时,对于每一种不设有的表,会变动三个NOTE。

REST汉兰达ICT和CASCADE能够使分区更便于。近些日子,REST奥迪Q三ICT和CASCADE不起作用。

四.三 删除数据库

命令:drop database <数据库名>
譬喻说:删除名称叫 xhkdb的数据库
mysql> drop database xhkdb;

事例一:删除二个业已规定期存款在的数据库
   mysql> drop database drop_database;
   Query OK, 0 rows affected (0.00 sec)

事例二:删除1个不分明期存款在的数据库
   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, 壹 warning (0.00
sec)//发生3个警示表达此数据库不存在
   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)

5.肆 表插入数据

命令:insert into <表名> [( <字段名1>[,..<字段名n >
])] values ( 值1 )[, ( 值n )]

例如说:往表 MyClass中插入二条记下,
那2条记下表示:编号为一的名称叫汤姆的实际业绩为九陆.肆伍, 编号为二 的名字为Joan
的成就为8二.99, 编号为3 的名称叫Wang 的大成为玖陆.伍。
   mysql> insert into MyClass values(1,’Tom’,96.45),(2,’Joan’,82.99),
(2,’Wang’, 96.59);

留神:insert into每回只可以向表中插入一条记下。

四.4 连接数据库

指令: 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语句为多少个特定的脚下的数据库做标志,不会堵住你访问其余数据库中的表。上面包车型大巴例证能够从db一数据库访问笔者表,并从db贰数据库访问编辑表:
   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 其余数据库名字
就足以了。

5.伍 查询表中的数据

一)、查询全部行
命令: select <字段1,字段2,…> from < 表名 > where <
表达式 >
比方说:查看表 MyClass 中兼有数据
   mysql> select * from MyClass;

二)、查询前几行数据
例如:查看表 MyClass 中前2行数据
mysql> select * from MyClass order by id limit 0,2;

select一般合作where使用,以询问更规范更复杂的多少。

四.伍 当前甄选的数据库

命令: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) 

二. 显示当前岁月
mysql> select now(); 
+———————+ 
| now()               | 
+———————+ 
| 2009-09-15 22:35:32 | 
+———————+ 
1 row in set (0.04 sec) 

三. 来得年月日
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) 

四. 出示字符串
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) 

六. 串接字符串
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)’起了个假名。

伍.6 删除表中数据

 

 

 

命令:delete from 表名 where 表达式

比如说:删除表 MyClass中编号为一 的笔录
mysql> delete from MyClass where id=1;

下边是三个刨除数据前后表的对待。

FirstName LastName Age
Peter Griffin 35
Glenn Quagmire 33

下面以PHP代码为例删除 “Persons” 表中兼有 LastName=’格里芬’ 的记录:

<?php 
   $con = mysql_connect("localhost","peter","abc123"); 
   if (!$con) 
   {
      die('Could not connect: ' . mysql_error()); 
   } 
   mysql_select_db("my_db", $con); 
   mysql_query("DELETE FROM Persons WHERE LastName='Griffin'"); mysql_close($con); 
?>

在本次删除之后,表是这样的:

FirstName LastName Age
Glenn Quagmire 33

五.1 创制数据表

命令:create table <表名> ( <字段名1> <类型1>
[,..<字段名n> <类型n>]);

比如,建构一个名称为MyClass的表,

字段名 数字类型 数据宽度 是否为空 是否主键 自动增加 默认值
id int 4 primary key auto_increment  
name char 20      
sex int 4     0
degree double 16      

mysql> create table MyClass(
> id int(4) not null primary key auto_increment,
> name char(20) not null,
> sex int(4) not null default ‘0’,
> degree double(16,2));

伍.七 修改表中数量

语法:update 表名 set 字段=新值,… where 条件
   mysql> update MyClass set name=’Mary’ where id=1;

例子1:单表的MySQL UPDATE语句:
   UPDATE [LOW_PRIORITY] [IGNORE] tbl_name SET col_name1=expr1
[, col_name2=expr2 …] [WHERE where_definition] [ORDER BY
…] [LIMIT row_count]

例子2:多表的UPDATE语句:
UPDATE [LOW_PRIORITY] [IGNORE] table_references SET
col_name1=expr1 [, col_name2=expr2 …] [WHERE
where_definition]

UPDATE语法能够用新值更新原有表行中的各列。SET子句提示要修改哪些列和要授予什么值。WHERE子句钦定应革新哪些行。倘使没有WHERE子句,则更新具备的行。假设钦命了OCR-VDER
BY子句,则依照被钦命的依次对行实行更新。LIMIT子句用于给定四个限值,限制能够被更新的行的数据。

 

伍.三 删除数据表

命令:drop table <表名>

比方:删除表名字为 MyClass 的表
   mysql> drop table MyClass;

DROP
TABLE用于撤消三个或多少个表。您必须有每种表的DROP权限。全部的表数据和表定义会被撤回,所以利用本语句要小心!

留意:对于一个带分区的表,DROP
TABLE社长久性地撤废表定义,撤消各分区,并撤废储存在这几个分区中的全部数据。DROP
TABLE还会撤废与被撤回的表有关联的分区定义(.par)文件。

对与不设有的表,使用IF EXISTS用于幸免错误发生。当使用IF
EXISTS时,对于每种不设有的表,会扭转三个NOTE。

RESTKugaICT和CASCADE能够使分区更便于。最近,RESTQashqaiICT和CASCADE不起效能。

伍.捌 扩展字段

命令:alter table 表名 add字段 类型 其他;
比如:在表MyClass中加多了一个字段passtest,类型为int(四),私下认可值为0
   mysql> alter table MyClass add passtest int(4)
default
 ‘0’

加索引
   mysql> alter table 表名 add index 索引名 (字段名1[,字段名2
…]);
例子: mysql> alter table employee add index emp_name (name);

加主关键字的目录
  mysql> alter table 表名 add primary key (字段名);
例子: mysql> alter table employee add primary key(id);

加唯1限制条件的目录
   mysql> alter table 表名 add unique 索引名 (字段名);
例子: mysql> alter table employee add unique
emp_name2(cardnumber);

去除有个别索引
   mysql> alter table 表名 drop index 索引名;
例子: mysql>alter table employee drop index emp_name;

充实字段:
mysql> ALTER TABLE table_name ADD field_name field_type;

修改原字段名称及项目:
mysql> ALTER TABLE table_name CHANGE old_field_name
new_field_name field_type;

除去字段:
MySQL ALTER TABLE table_name DROP field_name;

5.4 表插入数据

命令:insert into <表名> [( <字段名1>[,..<字段名n >
])] values ( 值1 )[, ( 值n )]

举个例子:往表 MyClass中插入贰条记下,
那贰条记下表示:编号为一的名称为汤姆的成就为九六.四伍, 编号为二 的名称叫Joan
的大成为8二.9九, 编号为3 的名字为Wang 的成绩为玖陆.5。
   mysql> insert into MyClass values(1,’Tom’,96.45),(2,’Joan’,82.99),
(2,’Wang’, 96.59);

瞩目:insert into每一次只可以向表中插入一条记下。

5.九 修改表名

命令:rename table 原表名 to 新表名;

比方:在表MyClass名字改成为YouClass
   mysql> rename table MyClass to YouClass;

当你实行 RENAME
时,你不可能有任何锁定的表或移动的事体。你同样也务必有对原初表的 ALTEEscort 和
DROP 权限,以及对新表的 CREATE 和 INSERT 权限。

假诺在多表更名中,MySQL
遭碰着其他错误,它将对具备被更名的表张开退步更名,将每件事物退回到中期状态。

RENAME TABLE 在 MySQL 3.二3.2三 中被投入。

5.5 查询表中的数据

1)、查询全数行
命令: select <字段1,字段2,…> from < 表名 > where <
表达式 >
譬喻说:查看表 MyClass 中有着数据
   mysql> select * from MyClass;

2)、查询前几行数据
例如:查看表 MyClass 中前2行数据
mysql> select * from MyClass order by id limit 0,2;

select一般同盟where使用,以询问越来越准确更头昏眼花的数目。

陆、备份数据库

命令在DOS的[url=file://\\mysql\\bin]\\mysql\\bin[/url]目录下进行

一.导出成套数据库
导出文件暗中同意是存在mysql\bin目录下
    mysqldump -u 用户名 -p 数据库名 > 导出的文书名
    mysqldump -u user_name -p123456 database_name >
outfile_name.sql

二.导出叁个表
    mysqldump -u 用户名 -p 数据库名 表名> 导出的文本名
    mysqldump -u user_name -p database_name table_name >
outfile_name.sql

三.导出二个数据库结构
    mysqldump -u user_name -p -d –add-drop-table database_name >
outfile_name.sql
    -d 未有数量 –add-drop-table 在各样create语句以前扩展二个drop table

四.带语言参数导出
    mysqldump -uroot -p –default-character-set=latin1 –set-charset=gbk
–skip-opt database_name > outfile_name.sql

比方说,将aaa库备份到文件back_aaa中:
  [root@test1 root]# cd /home/data/mysql
  [root@test1 mysql]# mysqldump -u root -p –opt aaa > back_aaa

伍.6 删除表中数据

 

 

 

命令:delete from 表名 where 表达式

诸如:删除表 MyClass中编号为一 的记录
mysql> delete from MyClass where id=1;

上面是二个刨除数据前后表的相比。

FirstName LastName Age
Peter Griffin 35
Glenn Quagmire 33

上边以PHP代码为例删除 “Persons” 表中有所 LastName=’格里芬’ 的记录:

<?php 
   $con = mysql_connect("localhost","peter","abc123"); 
   if (!$con) 
   {
      die('Could not connect: ' . mysql_error()); 
   } 
   mysql_select_db("my_db", $con); 
   mysql_query("DELETE FROM Persons WHERE LastName='Griffin'"); mysql_close($con); 
?>

在此番删除之后,表是那样的:

FirstName LastName Age
Glenn Quagmire 33

柒.一 三个建库和建表的实例一

drop database if exists school; //假设存在SCHOOL则删除
create database school; //建立库SCHOOL
use school; //打开库SCHOOL
create table teacher //建立表TEACHER
(
    id int(3) auto_increment not null primary key,
    name char(10) not null,
    address varchar(50) default ‘深圳’,
    year date
); //建表甘休

//以下为插入字段
insert into teacher values(”,’allen’,’地拉那第一中学’,’一九七七-十-10′);
insert into teacher values(”,’jack’,’特古西加尔巴二中’,’197五-1②-贰叁′);

借使您在mysql提醒符键入上边的指令也足以,但不便利调节和测试。
1、你能够将以上命令原样写入两个文件文件中,倘诺为school.sql,然后复制到c:\\下,并在DOS状态进入目录[url=file://\\mysql\\bin]\\mysql\\bin[/url],然后键入以下命令:
    mysql -uroot -p密码 < c:\\school.sql
假定成功,空出1行无别的展现;如有错误,会有提醒。(以上命令已经调节和测试,你只要将//的注释去掉就能够使用)。

二、只怕进入命令行后使用 mysql> source c:\\school.sql;
也能够将school.sql文件导入数据库中。

5.七 修改表中数据

语法:update 表名 set 字段=新值,… where 条件
   mysql> update MyClass set name=’Mary’ where id=1;

例子1:单表的MySQL UPDATE语句:
   UPDATE [LOW_PRIORITY] [IGNORE] tbl_name SET col_name1=expr1
[, col_name2=expr2 …] [WHERE where_definition] [ORDER BY
…] [LIMIT row_count]

例子2:多表的UPDATE语句:
UPDATE [LOW_PRIORITY] [IGNORE] table_references SET
col_name1=expr1 [, col_name2=expr2 …] [WHERE
where_definition]

UPDATE语法能够用新值更新原有表行中的各列。SET子句提醒要修改哪些列和要赋予什么值。WHERE子句钦点应立异哪些行。即便未有WHERE子句,则更新具备的行。要是内定了O酷威DER
BY子句,则依照被钦点的顺序对行进行更新。LIMIT子句用于给定三个限值,限制能够被更新的行的数码。

 

七.二 一个建库和建表的实例2

drop database if exists school; //假若存在SCHOOL则删除
create database school; //建立库SCHOOL
use school; //打开库SCHOOL
create table teacher //建立表TEACHER
(
    id int(3) auto_increment not null primary key,
    name char(10) not null,
    address varchar(50) default ”深圳”,
    year date
); //建表结束

//以下为插入字段
insert into teacher
values(””,”glchengang”,”温哥华第一中学”,”197八-10-10”);
insert into teacher values(””,”jack”,”布拉迪斯拉发一中”,”197五-1二-二叁”);

注:在建表中
一、将ID设为长度为叁的数字字段:int(3);并让它每种记录自动加一:auto_increment;并不可能为空:not
null;而且让他变成主字段primary key。

2、将NAME设为长度为10的字符字段

三、将ADDRESS设为长度50的字符字段,而且缺省值为卡拉奇。

4、将YEATiguan设为日期字段。

5.八 扩充字段

命令:alter table 表名 add字段 类型 其他;
例如说:在表MyClass中增添了2个字段passtest,类型为int(四),暗中认可值为0
   mysql> alter table MyClass add passtest int(4)
default
 ‘0’

加索引
   mysql> alter table 表名 add index 索引名 (字段名1[,字段名2
…]);
例子: mysql> alter table employee add index emp_name (name);

加主关键字的目录
  mysql> alter table 表名 add primary key (字段名);
例子: mysql> alter table employee add primary key(id);

加唯一限制条件的目录
   mysql> alter table 表名 add unique 索引名 (字段名);
例子: mysql> alter table employee add unique
emp_name2(cardnumber);

去除某些索引
   mysql> alter table 表名 drop index 索引名;
例子: mysql>alter table employee drop index emp_name;

日增字段:
mysql> ALTER TABLE table_name ADD field_name field_type;

修改原字段名称及项目:
mysql> ALTER TABLE table_name CHANGE old_field_name
new_field_name field_type;

除去字段:
MySQL ALTER TABLE table_name DROP field_name;

五.九 修改表名

命令:rename table 原表名 to 新表名;

比方:在表MyClass名字改成为YouClass
   mysql> rename table MyClass to YouClass;

当你施行 RENAME
时,你不能够有任何锁定的表或运动的职业。你一样也非得有对原初表的 ALTE福特Explorer 和
DROP 权限,以及对新表的 CREATE 和 INSERT 权限。

要是在多表更名中,MySQL
遭境遇其他错误,它将对具备被更名的表展开战败更名,将每件事物退回到中期状态。

RENAME TABLE 在 MySQL 3.贰三.二3 中被投入。

陆、备份数据库

命令在DOS的[url=file://\\mysql\\bin]\\mysql\\bin[/url]目录下实行

一.导出一切数据库
导出文件暗中认可是存在mysql\bin目录下
    mysqldump -u 用户名 -p 数据库名 > 导出的文本名
    mysqldump -u user_name -p123456 database_name >
outfile_name.sql

二.导出三个表
    mysqldump -u 用户名 -p 数据库名 表名> 导出的文本名
    mysqldump -u user_name -p database_name table_name >
outfile_name.sql

三.导出一个数据库结构
    mysqldump -u user_name -p -d –add-drop-table database_name >
outfile_name.sql
    -d 未有数量 –add-drop-table 在每一个create语句此前扩大三个drop table

四.带语言参数导出
    mysqldump -uroot -p –default-character-set=latin1 –set-charset=gbk
–skip-opt database_name > outfile_name.sql

比方,将aaa库备份到文件back_aaa中:
  [root@test1 root]# cd /home/data/mysql
  [root@test1 mysql]# mysqldump -u root -p –opt aaa > back_aaa

7.壹 1个建库和建表的实例1

drop database if exists school; //若是存在SCHOOL则删除
create database school; //建立库SCHOOL
use school; //打开库SCHOOL
create table teacher //建立表TEACHER
(
    id int(3) auto_increment not null primary key,
    name char(10) not null,
    address varchar(50) default ‘深圳’,
    year date
); //建表截至

//以下为插入字段
insert into teacher values(”,’allen’,’哈拉雷一中’,’一9七八-10-十′);
insert into teacher values(”,’jack’,’洛桑2中’,’197五-1二-二叁′);

假若你在mysql提醒符键入下边包车型地铁一声令下也可以,但不便于调节和测试。
1、你能够将上述命令原样写入一个文书文件中,即使为school.sql,然后复制到c:\\下,并在DOS状态进入目录[url=file://\\mysql\\bin]\\mysql\\bin[/url],然后键入以下命令:
    mysql -uroot -p密码 < c:\\school.sql
如若成功,空出一行无别的展现;如有错误,会有提醒。(以上命令已经调节和测试,你壹旦将//的表明去掉就可以使用)。

2、可能进入命令行后应用 mysql> source c:\\school.sql;
也得以将school.sql文件导入数据库中。

7.二 三个建库和建表的实例贰

drop database if exists school; //尽管存在SCHOOL则删除
create database school; //建立库SCHOOL
use school; //打开库SCHOOL
create table teacher //建立表TEACHER
(
    id int(3) auto_increment not null primary key,
    name char(10) not null,
    address varchar(50) default ”深圳”,
    year date
); //建表停止

//以下为插入字段
insert into teacher
values(””,”glchengang”,”温哥华一中”,”一玖八零-10-10”);
insert into teacher values(””,”jack”,”布Rees班一中”,”197五-1二-二三”);

注:在建表中
1、将ID设为长度为叁的数字字段:int(三);并让它每种记录自动加一:auto_increment;并不可能为空:not
null;而且让她改成主字段primary key。

贰、将NAME设为长度为十的字符字段

③、将ADDRESS设为长度50的字符字段,而且缺省值为布拉迪斯拉发。

4、将YEAPRADO设为日期字段。

 

 

工欲善其事,必先利其器。

Author

发表评论

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