视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
MySQL笔记
2025-09-25 17:46:48 责编:小OO
文档
Mysql 安装

本教程以版本为例,更高版本安装过程与此类似。阅读前,请下载4.1.22,下载地址:www.mysql.com或http://www.skycn.com/soft/24418.html

   下载后是个ZIP的压缩包:mysql-4.1.22-win32.zip(注意找在Windows下使用的安装包),用WinZip或WinRAR解压缩后运行setup.exe进行安装,如图3.1。 

  图3.1

  安装过程与其它Windows安装程序一样,首先出现的是安装向导欢迎界面,见图3.2。

  图3.2

直接点击“Next”,继续,选择安装类型,见图3.3。 

图3.3 这里有3个类型:Typical(典型)、Complete(完全)、Custom(自定义)。选择“自定义”(Custom)安装,然后点“Next”下一步,出现自定义安装界面,见图3.4。 

图3.4 默认情况下MySQL将会被安装到C:Program FilesMySQLMySQL Server 4.1文件夹里面。自己可以改路径,点“Change”更改路径。我嫌它路径太长,更改到了E:MySQL Server 4.1目录下,见图3.4.1。 

图3.4.1 点“OK”后回到自定义安装界面,可看见路径已经改为你设置的路径了,见图3.4.2。 

图3.4.2 

本文来自: 编程入门网 http://www.bianceng.cn/data/MySQL/200710/5109.htm

本文来自: 编程入门网 http://www.bianceng.cn/data/MySQL/200710/5109.htm

点“Next”,准备开始安装,见图3.5。

图3.5 点“Install”开始安装,见图3.6。 

图3.6 完成后出现创建MySQL.com帐号的界面,如果是首次使用MySQL,选“Create anew free MySQL.com accout”,见图3.7。 

    图3.7 点“Next”,输入你的Email地址和自己设定的用于登录MySQL.com的密码,见图3.7.1。

图3.7.1 填完后点“Next”进入第二步,见图3.7.2。 

见图3.7.2 在这里填写姓名等相关信息,填完点“Next”,进入第三步,见图3.7.3。 

阅读次数: 

本文来自: 编程入门网 http://www.bianceng.cn/data/MySQL/200710/5109_2.htm

图3.7.3 

  填完电话号码、公司名称等信息后,点“Next”,然后出现预览你刚才填的信息的界面,再点“Next”出现安装完成界面,见图3.8。

图3.8 注意,这里有个配置向导的选项(Configure the MySQL Server now),建议勾选立即配置你的MySQL。许多说安装完MySQL后无法启动,原因就在于没有配置MySQL。点击“Finish”完成安装,并开始配置MySQL,见图3.9。 

图3.9 点“Next”,进入配置类型选择页面。选“Detailed configuration”(详细配置),见图3.10。 

图3.10 点“Next”,进入服务类型选择页面。选“Developer Machine”(开发者机器),这样占用系统的资源不会很多,见图3.11。 

图3.11 点“Next”后,进入数据库用法选择页面。选择“Multifunctional Database”,见图3.12。 

本文来自: 编程入门网 http://www.bianceng.cn/data/MySQL/200710/5109_3.htm

   mysql安装图解教程 

来源:责编:编程入门 作者:mysql.cn/Saulzy 

图3.12 点“Next”,进入选择InnoDB数据存放位置页面,见图3.13。 

图3.13 不用更改设置,直接放在Installation Path安装目录里即可,然后点“Next”,选择MySQL的同时联接数,见图3.14。 

    图3.14

  选择“Manual Setting”,设置为100(根据自己需要,酌情设置),点“Next”,配置MySQL在TCP/IP通讯环境中的端口,见图3.15。

图3.15 选择默认的3306端口即可。点“Next”,选择MySQL中的字符设置,见图3.16。 

图3.16 注意,这里的选择将会影响你是否能在MySQL中使用中文。我们选择gb2312字符集以便支持简体中文,繁体中文选big5。点“Next”,设置Windows服务选项,见图3.17。 

阅读次数: 

 

 

本文来自: 编程入门网 http://www.bianceng.cn/data/MySQL/200710/5109_4.htm

图3.17 注意,这里的选择很关键。“Install As Windows Service”一定要勾选,这是将MySQL作为Windows的服务运行。“Service Name”就用默认的“MySQL”或者你喜欢的服务名(推荐用默认的“MySQL”)。下面的“Launch the MySQL Server automatically”一定要勾选,这样Windows启动时,MySQL就会自动启动服务,要不然就要手工启动MySQL。许多人说安装MySQL后无法启动、无法连接、出现10061错误,原因就在这里。点“Next”,设置根帐号root的登录密码,见图3.18。 

图3.18 “Modify Security Settings”是设置根帐号的密码,输入你设定的密码即可。“Create An Anonymous Account”是创建一个匿名帐号,这样会导致未经授权的用户非法访问你的数据库,有安全隐患,建议不要勾选。点“Next”,MySQL配置向导将依据你上面的所有设定配置MySQL,以便MySQL的运行符合你的需要,见图3.19。 

图3.19 点“Execute”开始配置,当出现“Service started successfully”时,说明你的配置完成,MySQL服务启动成功,见图3.20。 

图3.20 点“Finish”完成,整个MySQL的配置完成,剩下的就是用MySQL客户端连接MySQL服务器,然后使用了。 

  呼~~,终于写完啦!想不到写原创文章这么累,要想写出精品更累,真辛苦了哪些为大家奉献、写精品的人了。希望大家尊重各作者的劳动成果,给作者更大的动力为大家创作。

 

本文来自: 编程入门网 http://www.bianceng.cn/data/MySQL/200710/5109_5.htm

MySQL初学者之使用指南

1 .CMD;

D:\\mysql –h localhost –u root –p  //连接mysql

2.  Exit                          //退出mysql连接库;

3.  USE  DATABASE_NAME      //切换数据库;

4.Show databases;                //显示数据库列表;

5.  desc table_name                //j显示数据库表的内容结构;

6.Show tables                    //显示数据库中的所有表;

7.Create database_name           //建库;

8.Create table +表名  (  )         // 

9.  insert into +表名(列名,)values( , ,)  //插入数据库

10.Update  +表名  set 列名1=新值,列名2=新值, where condition.条件//删除数据

11. delete form  表+  where +条件;//删除数据;

12.修改表结构---------添加一个字段,列

    alter talbe +表名

add 列名 +列属性;

13.修改表结构:-------修改列属性;

alter talbe +表名

modify 列名 +列属性;

14.修改表结构,-------删除列;

alter talbe +表名

drop column +列名;

15.删除表

drop talbe  表名;

16.查询表中数据;

select [distinct]  name1,stock from shop_jb where +条件+ 

group by name1,stock order by name1

17. 使用limit来使用查询的个数;在SQL中用top来

limit (起始位置,记录个数)

select * from  jb  limit 2,4;

select * from  jb  order id limit 2,4;   

18.使用like 

select * from  yw  where  tel  like  ‘3%’

select * from  yw  where  tel   like ‘_3%’

19. 连合查询:自连接,外连接,左外连接,

20. 备份数据库;

   格式:

D:\\mysql\\bin>mysqldump -u root -p mysql -B shop>d:\\back.sql

Enter password: ***

D:\\mysql\\bin>

MySQL与SQL的异同

项目SQL

MySQL

1 字符

CharChar(8)
VarcharVarchar(10)
2 整数

Int整数
小数Decimal(6,2)

 (p小数和整数除小数点的总长度,s小数位数)最大为9999.99

3 日期

Date包含时分秒只有年月日没有时分秒
Datetime包含时分秒
convert##
4 检查

Check(‘a’or’b’)有(检查)

Enum(复合数据类型)

enum(‘男’,‘女’)检查

5 图像

Blob( 图像)

二进制
Image(存图像)

二进制
6 约束

Primary key主键约束
Foreign key外键约束
Default缺省约束
Unique唯一约束
Check无(使用enum)

7 标识

identityAuto_increment
Mysql中常用函数

数学函数1abs(x)返回x 的决对值

2ceiling( x)大于x的最小整数

3floor(x)返回小于x的最大整数

4rand()返回0-1的随机数

5round( x,y)x小数,y为对x四舍五入保留位数

round(123.4567,2)-------------------//123.46
6Mod (x,y)返回x%y-------x除以y 的余数。

7Greatest(x,y,….)返回集合中最大的数值
8Least(x1,x2,….)返回集合中最小的数值。

字符串函数

1Ascii (char )返回字符串最左端的ascii码

2Char(x1,x2,…..)返回由x1,x2代表的字符串组成的String

3Concat( x1,x2….)由x1,x2…..连接成的字符串

4Insert(str原串, start,length,替串)----------------插入并代替

5replace(原,查,替)

6substring(str,start,length)截串
7Length(str)返回字符串所占用的字节数
日期函数1Now()返回系统日期函数有时分秒
2Current_date( )只有年月日
3Date_add(date1,interval int format )增加整数后的日期

4Date_sub(date1,interval int format ) 减去整数后的日期

5Year(date1 )/month(date1)/day(date1)返回指定日期的年月日部分

例:查从第三条到第六条数据通信Limit(mysql)  与top(sql)

(mysql)select * from jb(limit  2, 4)  从数组下标为2开始, 共显示四条记录

(SQL)

select top 4  *  from shop_yw where ywid not in(select top 2 ywid from shop_yw order by ywid )order by ywid

例:

mysql> select now();

+---------------------+

| now()               |

+---------------------+

| 2007-07-15 18:21:22 |

+---------------------+

1 row in set (0.01 sec)

insert into xs(id,sale,quantity,date2,ywid)values(4,100,11,'2007-6-18',1)

mysql> create table xs

-> (

-> id int,sale decimal(6,2),

-> quantity int,date2 date,

-> ywid int,foreign key(id) references jb(id),foreign key(ywid) references y

w(ywid)

-> );

Query OK, 0 rows affected (0.09 sec)

有很多朋友虽然安装好了mysql但却不知如何使用它。在这篇文章中我们就从连接mysql、修改密码、增加用户等方面来学习一些mysql的常用命令。 

一、连接mysql。 

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

1、 例1:连接到本机上的mysql。 

首先在打开DOS窗口,然后进入目录mysql_in,再键入命令mysql -uroot -p, 回 

车后提示你输密码,如果刚安装好mysql,超级用户root是没有密码的, 故直接回 

车即可进入到mysql中了,mysql的提示符是:mysql> 

or

D:\\mysql\\bin>mysql - h localhost - u root - p

Enter password: ***

D:\\mysql\\bin>mysql -hlocalhost -uroot -p

Enter password: ***

例:2

例:3 

mysql> select address, substring(address,2,4) from yw;

+---------+------------------------+

| address | substring(address,2,4) |

+---------+------------------------+

| rewre   | ewre                   |

| rerere  | erer                   |

| rere    | ere                    |

| ddfdfsd | dfdf                   |

| rere    | ere                    |

+---------+------------------------+

5 rows in set (0.00 sec)

mysql> desc yw;

例5:id为2商品销售最大和最小的业务员名

mysql> select ywid,max(quantity) from xs where id=2 group by ywid union select y

wid,min(quantity) from xs where id=2 group by ywid;

+------+---------------+

| ywid | max(quantity) |

+------+---------------+

|    1 |            11 |

|    2 |             1 |

+------+---------------+

2 rows in set (0.02 sec)

例6:至少卖出3种商品

mysql> select ywid from xs group by ywid having count(distinct id)>=3;

+------+

| ywid |

+------+

|    1 |

|    4 |

+------+

例:7,查询当月即7月卖出的商品名总量,

mysql> select name1,sum(quantity)zl,sum(sale*quantity)ze from jb a join xs b on

a.id=b.id where month(date2)= month(now()) group by name1;

+-------+------+---------+

| name1 | zl   | ze      |

+-------+------+---------+

| cdrom | 10   | 9000.00 |

+-------+------+---------+

1 row in set (0.01 sec)

例:8;dvd销售情况,

mysql> select name2,name1,sum(quantity)zl from jb a join xs b on a.id=b.id join

yw c on b.ywid=c.ywid where name1='dvd'group by name2,name1 order by zl desc;

+-------+-------+------+

| name2 | name1 | zl   |

+-------+-------+------+

| sds   | dvd   | 4    |

| sdsad | dvd   | 1    |

+-------+-------+------+

2 rows in set (0.00 sec)

9.查询大于卖出所有商品的平均单价。

mysql> select name1,sale from jb a join xs b on a.id=b.id where sale>(select av

(sale)from xs);

+-------+---------+

| name1 | sale    |

+-------+---------+

| vcd   | 9999.99 |

+-------+---------+

1 row in set (0.00 sec)

10.查询相同库存量的商品名称。

mysql> select a.name1 ,a.stock from jb a join jb b on a.stock=b.stock where a.i

<>b.id;

+-------+-------+

| name1 | stock |

+-------+-------+

| vcd   |   100 |

| dvd   |   100 |

| key   |   180 |

| fan   |   180 |

+-------+-------+

2、 例2:连接到远程主机上的mysql。假设远程主机的IP为:110.110.110.110, 用户 

名为root,密码为abcd123。则键入以下命令: 

mysql -h110.110.110.110 -uroot -pabcd123

(注:u与root可以不用加空格,其它也一样)

3、 退出mysql命令: 

exit(回车)

二、修改密码。 

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

1、 例1:给root加个密码ab12。首先在DOS下进入目录mysqlbin,然后键入以下命令 

mysqladmin -uroot password ab12

注:因为开始时root没有密码,所以-p旧密码一项就可以省略了。 

2、 例2:再将root的密码改为djg345。 

mysqladmin -uroot -pab12 password djg345

另一种方法: 

shell>mysql -u root -p

mysql>SET PASSWORD FOR root=PASSWORD("root");

三、增加新用户。(注意:和上面不同,下面的因为是mysql环境中的命令, 所以后面都带一个分号作为命令结束符) 

格式: 

grant select on 数据库.* to 用户名@登录主机 identified by "密码"

例1、增加一个用户test1密码为abc,让他可以在任何主机上登录, 并对所有数据库有查询、插入、修改、删除的权限。首先用以root用户连入mysql,然后键入以下命令: 

grant select,insert,update,delete on *.* to test1@"%" Identified 

by "abc";

但例1增加的用户是十分危险的,你想如某个人知道test1的密码,那么他就可以在internet上的任何一台电脑上登录你的mysql数据库并对你的数据可以为所欲为了,解决办法见例2。 

例2、增加一个用户test2密码为abc,让其只可以在localhost上登录, 并可以对数据库mydb进行查询、插入、修改、删除的操作(localhost指本地主机, 即mysql数据库所在的那台主机),这样用户即使用知道test2的密码,也无法从internet上直接访问数据库,只能通过mysql主机上的web页来访问了。 

grant select,insert,update,delete on mydb.* to test2@localhost 

identified by "abc";

如果你不想test2有密码,可以再打一个命令将密码消掉。 

grant select,insert,update,delete on mydb.* to test2@localhost 

identified by "";

有关数据库方面的操作。注意:你必须首先登录到mysql中,以下操作都是在mysql的提示符下进行的,而且每个命令以分号结束。

一、操作技巧 

1、 如果你打命令时,回车后发现忘记加分号,你无须重打一遍命令,只要打个分号回车就可以了。也就是说你可以把一个完整的命令分成几行来打,完后用分号作结束标志就OK。 

2、 你可以使用光标上下键调出以前的命令。但以前我用过的一个mysql旧版本不支持。我现在用的是mysql-3.23.27-beta-win。 

二、显示命令 

1、 显示数据库列表。 

show databases;

刚开始时才两个数据库:mysql和test。 mysql库很重要它里面有mysql的系统信息,我们改密码和新增用户,实际上就是用这个库进行操作。 

2、 显示库中的数据表: 

use mysql; //打开库,学过FOXBASE的一定不会陌生吧

show tables;

3、 显示数据表的结构: 

describe 表名;

4、 建库: 

create database 库名;

5、 建表: 

use 库名;

create table 表名(字段设定列表);

6、 删库和删表: 

drop database 库名;

drop table 表名;

7、 将表中记录清空: 

delete from 表名;

8、 显示表中的记录: 

select * from 表名;

三、一个建库和建表以及插入数据的实例 

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','深圳一中','1976-10-10');

insert into teacher values('','jack','深圳一中','1975-12-23');

注:在建表中 

(1) 将ID设为长度为3的数字字段:int(3),并让它每个记录自动加一: auto_increment,并不能为空:not null,而且让它成为主字段primary key 

(2) 将NAME设为长度为10的字符字段 char(10)

(3) 将ADDRESS设为长度50的字符字段,而且缺省值为深圳。varchar和char有什么区别呢,只有等以后的文章再说了。 

(4) 将YEAR设为日期字段。 

如果你在mysql提示符键入上面的命令也可以,但不方便调试。 你可以将以上命令原样写入一个文本文件中假设为school.sql,然后复制到c:下,并在DOS状态进入目录mysql_in,然后键入以下命令: 

mysql -uroot -p密码 < c:school.sql

如果成功,空出一行无任何显示;如有错误,会有提示。(以上命令已经调试,你只要将//的注释去掉即可使用)。 

四、将文本数据转到数据库中 

1、 文本数据应符合的格式:字段数据之间用tab键隔开,null值用来代替。例: 

3 rose 深圳二中 1976-10-10 

4 mike 深圳一中 1975-12-23 

2、 数据传入命令load data local infile "文件名" into table 表名; 

注意:你最好将文件复制到mysql_in目录下,并且要先用use命令选表所在的库。 

五、导出和导入数据:(命令在DOS的mysql_in目录下执行) 

导出表 

mysqldump --opt school > school.sql

注释:将数据库school中的表全部备份到school.sql文件,school.sql是一个文本文件,文件名任取,打开看看你会有新发现。 

mysqldump --opt school teacher student > school.teacher.student.sql

注释:将数据库school中的teacher表和student表备份到school.teacher.student.sql文件,school.teacher.student.sql是一个文本文件,文件名任取,打开看看你会有新发现。 

导入表 

mysql

mysql>create database school;

mysql>use school;

mysql>source school.sql;

(或将school.sql换为school.teacher.sql / school.teacher.student.sql)

导出数据库 

mysqldump --databases db1 db2 > db1.db2.sql

注释:将数据库dbl和db2备份到db1.db2.sql文件,db1.db2.sql是一个文本文件,文件名任取,打开看看你会有新发现。 

(举个例子: 

mysqldump -h host -u user -p pass --databases dbname > file.dump

就是把host上的以名字user,口令pass的数据库dbname导入到文件file.dump中。) 

导入数据库 

mysql < db1.db2.sql

复制数据库 

mysqldump --all-databases > all-databases.sql

注释:将所有数据库备份到all-databases.sql文件,all-databases.sql是一个文本文件,文件名任取。 

导入数据库 

mysql

mysql>drop database a;

mysql>drop database b;

mysql>drop database c;

...

mysql>source all-databases.sql; (或exit退出mysql后 mysql < all-databases.sql)

后记: 

其实mysql的对数据库的操作与其它的SQL类数据库大同小异, 您最好找本将SQL的书看看。我在这里只介绍一些基本的,其实我也就只懂这些了,呵呵。 

最好的mysql教程还是"晏子"译的"mysql中文参考手册"。不仅免费,每个相关网站都有下载,而且它是最权威的。可惜不象"PHP4中文手册"那样是chm的格式, 在查找函数命令的时候不太方便。 

3.打开数据库:use dbname; 

显示所有数据库:show databases; 

显示数据库mysql中所有的表:先use mysql;然后show tables; 

显示表的列信息:describe user;(显示表mysql数据库中user表的信息); 

4.创建一个可以从任何地方连接服务器的一个完全的超级用户,但是必须使用一个口令something做这个 

GRANT ALL PRIVILEGES ON *.* TO monty@localhost IDENTIFIED BY 'something' WITH GRANT OPTION;

GRANT ALL PRIVILEGES ON *.* TO monty@"%" IDENTIFIED BY 'something' WITH GRANT OPTION;

5.删除授权: 

REVOKE ALL PRIVILEGES ON *.* FROM root@"%";

USE mysql;

DELETE FROM user WHERE User="root" and Host="%";

FLUSH PRIVILEGES;

6. 创建一个用户custom在特定客户端weiqiong.com登录,可访问特定数据库bankaccount 

mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP ON bankaccount.* 

TO custom@weiqiong.com IDENTIFIED BY 'stupid';

7.重命名表: 

ALTER TABLE t1 RENAME t2;

为了改变列a,从INTEGER改为TINYINT NOT NULL(名字一样), 

并且改变列b,从CHAR(10)改为CHAR(20),同时重命名它,从b改为c: 

ALTER TABLE t2 MODIFY a TINYINT NOT NULL, CHANGE b c CHAR(20);

增加一个新TIMESTAMP列,名为d: 

ALTER TABLE t2 ADD d TIMESTAMP;

在列d上增加一个索引,并且使列a为主键: 

ALTER TABLE t2 ADD INDEX (d), ADD PRIMARY KEY (a);

删除列c: 

ALTER TABLE t2 DROP COLUMN c;

增加一个新的AUTO_INCREMENT整数列,命名为c: 

ALTER TABLE t2 ADD c INT UNSIGNED NOT NULL AUTO_INCREMENT,ADD INDEX (c);

注意,我们索引了c,因为AUTO_INCREMENT柱必须被索引,并且另外我们声明c为NOT NULL, 

因为索引了的列不能是NULL。 

8.删除记录: 

DELETE FROM t1 WHERE C>10;

9.改变某几行: 

UPDATE t1 SET user=weiqiong,password=weiqiong;

10.用name列的头10个字符创建一个索引: 

CREATE INDEX part_of_name ON customer (name(10));

建表:

mysql> create table xs

-> (

-> id int,

-> sale decimal(6,2),

-> quantity int,

-> date2 date,

-> ywid int,

-> foreign key (id) references jb(id),

-> foreign key (ywid) references yw(ywid)

-> );

Query OK, 0 rows affected (0.11 sec)下载本文

显示全文
专题