目前mysql的最新版本为5.0它具备了支持嵌套子句和存储过程。
在windows上安装mysql比较简单,我们只需要按照安装向导进行操作就可以了
在安装后,我们可以选择给mysql的root用户设置密码、或者是允许非本机的其他机器用root用户连接到
mysql数据库上
对于安装为windows服务之后,我们要启动或关闭mysql数据库只需要在windows服务关系器中启动、关闭就可以了
对于mysql也可以在cmd命令行中启动和关闭
启动mysql的命令为
mysqld-nt -uroot --console
mysqld-nt 为mysql服务启动程序 相应的还有mysqld-max-nt等等
-u 参数表示后面的为mysql的用户
--console 为从控制台启动
关闭mysql的命令为
mysqladmin -uroot -ppassword shutdown
-u 后面为mysql用户
-p 用户对应的密码
也可以在命令行上将mysql安装为服务,可以使用如下方法
mysqld-nt --install
移出服务的方法为
mysqld-nt --remove
显示mysql版本 mysql --version
你可以通过发出GRANT语句增加新用户:
shell> mysql --user=root mysql
mysql> GRANT ALL PRIVILEGES ON *.* TO monty@localhost
IDENTIFIED BY 'something' WITH GRANT OPTION;
mysql> GRANT ALL PRIVILEGES ON *.* TO monty@"%"
IDENTIFIED BY 'something' WITH GRANT OPTION;
mysql> GRANT RELOAD,PROCESS ON *.* TO admin@localhost;
mysql> GRANT USAGE ON *.* TO dummy@localhost;
mysql> FLUSH PRIVILEGES; #这条指令使得权限修改生效
这些GRANT语句安装3个新用户:
monty
可以从任何地方连接服务器的一个完全的超级用户,但是必须使用一个口令('something'做这个。注意,我们必须对monty@localhost和monty@"%"发出GRANT语句。如果我们增加localhost条目,对localhost的匿名用户条目在我们从本地主机连接接时由mysql_install_db创建的条目将优先考虑,因为它有更特定的Host字段值,所以以user表排列顺序看更早到来。
admin
可以从localhost没有一个口令进行连接并且被授予reload和process管理权限的用户。这允许用户执行mysqladmin reload、mysqladmin refresh和mysqladmin flush-*命令,还有mysqladmin processlist。没有授予数据库有关的权限。他们能在以后通过发出另一个GRANT语句授权。
dummy
可以不用一个口令连接的一个用户,但是只能从本地主机。全局权限被设置为'N'--USAGE权限类型允许你无需权限就可设置一个用户。它假定你将在以后授予数据库相关的权限。
mysql中将数据库和表备份为sql语句的方法为
Usage: mysqldump [OPTIONS] database [tables]
OR mysqldump [OPTIONS] --databases [OPTIONS] DB1 [DB2 DB3...]
OR mysqldump [OPTIONS] --all-databases [OPTIONS]
mysqldump -uroot -proot databasename > test.sql
-u 用户名
-p 密码
databasename 要导出的数据库名
> 导出到的sql文件
--default-character-set=name
设置缺省的字符集,对导出具有中文的数据特别有用。
-A, --all-databases 导出所有的数据库,跟使用-B参数然后接上所有的数据库名称具有相同的功能。
--add-drop-database 加上该参数之后,就会在新建数据库的语句之前加上 'DROP DATABASE'
--add-drop-table 加上该参数之后,就会在新建表的语句之前加上 'drop table' .
-B, --databases 这个参数用户指定要导出的数据库名称,可以做到选择性的导出数据库,并且会在导出文件中加上'USE db_name;'
导入sql语句的方法为
若是有建库语句的话,则直接使用
mysql -uroot -proot < test.sql
若是没有建库的语句,则要先登录进去使用 create database test;来建立一个名为test(或者其他名称)的数据库。
然后使用
mysql -uroot -proot -Dtest < test.sql
等等这些方面就可以了
--default-character-set=name
设置客户端使用的缺省字符集
-D, --database=name 设置使用的数据库名
-f, --force 设置在sql语句中有错误时,也强制执行。
-h, --host=name 连接的主机地址
-p, --password[=name]
连接数据库时,所使用的密码;若在-p后没有接密码,则会在控制台提示输入密码
-u, --user=name 连接数据库所使用的用户名
-V, --version 显示当前数据库客户端的版本。
修改root用户密码,并使修改生效
mysql> UPDATE user SET Password=PASSWORD('new_password')
WHERE user='root';
mysql> FLUSH PRIVILEGES;
在MySQL 3.22和以上版本中,你可以使用SET PASSWORD语句:
shell> mysql -u root mysql
mysql> SET PASSWORD FOR root=PASSWORD('new_password');
更改管理员密码
在一切正常后,要做的第一件事情是更改管理员的密码。你可以运行mysqladmin (请注意,此命令不一定在你的path中,所以最好是转到此命令的目录中直接执行):
# mysqladmin -u root password newpassword
此命令把root用户的口令变成newpassword。当然你可以把口令换成其它,因为这个很容易破解。
持功能。在本指南里面,我力图使过程简单明了,突出主题
进入mysql时,你需要提供一个MySQL用户和此用户的口令。如果数据库运行在其它机器上,而不是你所在的这台机器上,你需要指定主机名。
命令:
mysql -h <主机名> -u <用户名> -p <数据库名>
Enter password: ********
MYSQL 有缺省库mysql, 在此系统中,缺省的口令为空,打回车即可。
例如,在此机器上,你可以敲入:
# mysql -u root -p mysql
Enter password:
屏幕如下提示:
Welcome to the MySQL monitor. Commands end with ; or .
Your MySQL connection id is 459 to server version: 3.22.23a-log
Type 'help' for help.
mysql>
这就进入了mysql 的工作环境, 进入到名为mysql 的数据库中。
你可看见mysql>提示后的一些介绍信息:
提示符 mysql> 告诉你mysql准备为你输入命令。
退出MySQL
在你成功地连接后,你可以在mysql>提示下打入QUIT随时断开:
mysql> QUIT
Bye
你也可以键入control-D断开。
操作MySQL
在之前要指出的是:一条操作即是一条SQL语句,注意随后要跟上一个分号,以标志此条语句的结束。而且一条SQL 语句不必全在一个单独行给出,可以写入多行,最后以分号结束此语句的输入。
在之前要指出的是:一条操作即是一条SQL语句,注意随后要跟上一个分号,以标志此条语句的结束。而且一条SQL 语句不必全在一个单独行给出,可以写入多行,最后以分号结束此语句的输入。
创建数据库
命令:CREATE DATABASE <数据库名>
例如,建立一个名为 test 的数据库
mysql> CREATE DATABASE test;
删除数据库
命令: DROP DATABASE <数据库名>
例如,删除名为 test 的数据库
mysql> DROP DATABASE test
连接数据库
命令: USE <数据库名>
例如,如果test数据库存在,尝试存取它:
mysql> USE test
屏幕提示:
Database changed
建表
命令:CREATE TABLE <表名> ( <字段名1> <类型1> [,..<字段名n> <类型n>]);
例如,建立一个名为table_1的表,此表记录班上的人员及平均成绩,那么用字段 id 代表编号,为数字类型,且编号唯一,不能为空, 缺省值为 0 ; 用字段 name 代表人名,为字符型,不为空;用字段 degree 代表成绩,为数字型,可为空。编号id 为此表的关键字。建表如下:
mysql> CREATE TABLE table_1 (
> id INT(4) DEFAULT '0' NOT NULL,
> name CHAR(20) NOT NULL
> degree DOUBLE(16,2) ,
> PRIMARY KEY(id));
删除表
命令:DROP TABLE <表名>
例如,删除表名为 table_1 的表
mysql> DROP TABLE table_1;
插入数据
命令:INSERT INTO <表名> [( <字段名1>[,..<字段名n > ])]
VALUES ( 值1 )[, ( 值n )]
例如,往表 test 中插入二条记录, 这二条记录表示:编号为1的名为joan 的成绩为96.45, 编号为2 的名为jeanny 的成绩为82.99.
mysql> INSERT INTO test VALUES(1,'joan',96.45),(2,'jeanny',82.99);
查询表中的数据
命令: SELECT <字段1,字段2,...> FROM < 表名 > WHERE < 表达式 >
例如,查看表 test 中所有数据
mysql> SELECT * FROM test;
屏幕显示:
+----+-------------+----------+
| id | name | degree |
+----+-------------+----------+
| 1 | joan | 96.45 |
| 2 | jeanny | 82.99 |
+----+-------------+----------+
删除表中数据
命令: DELETE FROM < 表名 > WHERE < 表达式 >
例如,删除表 test 中编号为1 的记录
mysql> DELETE FROM test WHERE id=1;
字段类型
1.INT[(M)]
正常大小整数类型
2.DOUBLE[(M,D)] [ZEROFILL]
正常大小(双精密)浮点数字类型
3.DATE
日期类型。支持的范围是1000-01-01到9999-12-31。MySQL以YYYY-MM-DD格式来显示DATE值,但是允许你使用字符串或数字把值赋给DATE列
4.CHAR(M)
定长字符串类型,当存储时,总是是用空格填满右边到指定的长度
5.BLOB TEXT
BLOB或TEXT类型,最大长度为65535(2^16-1)个字符。
6.VARCHAR
变长字符串类型
1: 显示数据库
SHOW DATABASES,
2:当前选择的数据库,
mysql> SELECT DATABASE();
+------------+
| DATABASE() |
+------------+
| test ;
+------------+
| DATABASE() |
+------------+
| test |
+------------+
3: 当前数据库包含的表信息:
mysql> SHOW TABLES;
+---------------------+
| Tables in test
mysql> SHOW TABLES;
+---------------------+
| Tables in test |
+---------------------+
| mytable1 |
| mytable2 |
+---------------------+
4: 获取表结构
mysql> desc mytable1;
+---------+-------------+------+-----+---------+-------+
| Field mysql> desc mytable1;
+---------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------+-------------+------+-----+---------+-------+
| s1 | varchar(20) | YES |NULL | |
+---------------------+------+-----+---------+-------+
mysql数据库的授权
mysql>grant select,insert,delete,create,drop
on *.* (或test.*/user.*/..)
to 用户名@localhost
identified by 密码;
如:新建一个用户帐号以便可以访问数据库,需要进行如下操作:
mysql> grant usage
-> ON test.*
-> TO testuser@localhost;
Query OK, 0 rows affected (0.15 sec)
此后就创建了一个新用户叫:testuser,这个用户只能从localhost连接到数据库并可以连接到test 数据库。下一步,我们必须指定testuser这个用户可以执行哪些操作:
mysql> GRANT select, insert, delete,update
-> ON test.*
-> TO testuser@localhost;
Query OK, 0 rows affected (0.00 sec)
此操作使testuser能够在每一个test数据库中的表执行SELECT,INSERT和DELETE以及UPDATE查询操作。现在我们结束操作并退出MySQL客户程序:
mysql> exit
Bye