您的位置:首页 > 数据库 > MySQL

MySQL的基本使用

2011-03-31 16:17 351 查看
一、MySQL数据库的安装与启动

1、从Windows命令行启动和关闭MySQL服务器

C:/Program Files/MySQL/MySQL Server 5.1/bin/mysqld --console

C:/Program Files/MySQL/MySQL Server 5.1/bin/mysqldadmin -u root -p shutdown

2、以Windows服务方式管理MySQL服务器

C:/Program Files/MySQL/MySQL Server 5.1/bin/mysqld --install 服务名 --安装MySQL服务,默认服务名为MYSQL

NET START MYSQL --启动MySQL服务

NET STOP MYSQL --停止MySQL服务

C:/Program Files/MySQL/MySQL Server 5.1/bin/mysqld --remove --卸载MySQL服务

3、测试MySQL安装

C:/> C:/Program Files/MySQL/MySQL Server 5.1/bin/mysqlshow -u root -p mysql

C:/> C:/Program Files/MySQL/MySQL Server 5.1/bin/mysqladmin -u root -p version status proc

C:/> C:/Program Files/MySQL/MySQL Server 5.1/bin/mysql -u root -p test

二、MySQL数据库的基本使用

C:/Program Files/MySQL/MySQL Server 5.1/bin/mysql -uroot

mysql>show databases;

显示命令

1、显示数据库列表:

show databases;

初始时MySQL有两个数据库:mysql和test。mysql库很重要它里面有MYSQL的系统信息,修改密码和新增用户,实际上就是操作mysql库。

2、显示库中的数据表:

use mysql; --打开库

show tables;

3、显示数据表的结构:

desc[ribe] 表名;

4、建库:

create database 库名;

5、建表:

use 库名;

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

6、删库和删表:

drop database 库名;

drop table 表名;

7、将表中记录清空:

delete from 表名;

8、显示表中的记录:

select * from 表名;

9、显示当前数据库

select database();

三、MySQL命令行的基本使用

1、第一条命令

mysql> select version(),current_date();

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

| version() | current_date() |

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

| 3.23.25a-debug | 2001-05-17 |

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

1 row in set (0.01 sec)

mysql>

此语句显示mysql服务器的版本号和当前日期。mysql语句不区分大小写。

2、多行语句

一条命令可以分成多行输入,直到出现分号“;”为止:

mysql> select

-> USER()

-> ,

-> now()

->;

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

| USER() | now() |

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

| ODBC@localhost | 2001-05-17 22:59:15 |

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

1 row in set (0.06 sec)

mysql>

注意中间的逗号和最后的分号的使用方法。

3、一行多命令

输入如下命令:

mysql> SELECT USER(); SELECT NOW();

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

| USER() |

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

| ODBC@localhost |

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

1 row in set (0.00 sec)

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

| NOW() |

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

| 2001-05-17 23:06:15 |

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

1 row in set (0.00 sec)

mysql>

注意中间的分号,命令之间用分号隔开。

4、取消命令

如果不想执行正在输入过程中的一个命令,输入/c取消它:

mysql> SELECT

-> USER()

-> /c

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

);

--数据类型

1. 数值类型:

tinyint //1个字节

samllint //2个字节

int,integer //4个字节

bigint //8个字节

float //4个字节

decimal(M,D),numeric(M,D) //存储精确数值,M为精度,D为小数位数

bit(M) //存储位字段,M范围为1到64

2. 字符类型:

char(M)

varchar(M)

binary(M)

varbinary(M)

blob,text

3. 日期类型:

datetime 'YYYY-MM-DD HH:MM:SS'

date 'YYYY-MM-DD'

timestamp

time 'HH:MM:SS'

year YYYY

--插入语句

insert into teacher (name,address,year) values('glchengang','深圳一中','1976-10-10');

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

--使用模式匹配筛选数据

使用“_”匹配任何单个字符,而“%”匹配任意数目字符(包括零字符)。

mysql> SELECT * FROM teacher WHERE name LIKE 'g%' OR name LIKE '_ack';

--使用正则表达式匹配数据

使用REGEXP和NOT REGEXP操作符(或RLIKE和NOT RLIKE,它们是同义词)进行正则表达式匹配

mysql> SELECT * FROM teacher WHERE name RLIKE '^g'; --匹配字段name以g开头的所有数据

--使用事务

mysql> CREATE TABLE CUSTOMER (A INT, B CHAR (20), INDEX (A))

-> ENGINE=InnoDB;

mysql> BEGIN;

mysql> INSERT INTO CUSTOMER VALUES (10, 'Heikki');

mysql> COMMIT;

mysql> SET AUTOCOMMIT=0;

mysql> INSERT INTO CUSTOMER VALUES (15, 'John');

mysql> ROLLBACK;

mysql> SELECT * FROM CUSTOMER;

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

| A | B |

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

| 10 | Heikki |

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

1 row in set (0.00 sec)

mysql>

--建立外键:

CREATE TABLE parent(id INT NOT NULL,PRIMARY KEY (id)) TYPE=INNODB;

CREATE TABLE child(id INT, parent_id INT,

INDEX par_ind (parent_id),

FOREIGN KEY (parent_id) REFERENCES parent(id) ON DELETE CASCADE

) TYPE=INNODB;

五、执行sql脚本和导入数据

1、执行sql脚本

方式1:

C:/> C:/Program Files/MySQL/MySQL Server 5.1/bin/mysql -u root -p < sql脚本文件

方式2:

mysql> source sql脚本文件

mysql> /. sql脚本文件

2、将文本数据导入数据库中

a、文本数据应符合的格式:

数据之间用tab键隔开,null值用n来代替。例:

3 rose 深圳二中 1976-10-10

4 mike 深圳一中 1975-12-23

b、数据传入命令:

mysql> load data local infile '文件名' into table 表名;

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

六、备份数据库:(命令在DOS的mysqlbin目录下执行)

mysqldump --opt school>school.sql --将数据库school备份到school.sql文件,school.sql是一个文本文件,文件名可任取。

七、MySQL安全

1、增加新用户

方法一:使用create user语句添加新用户,使用grant语句授权

create user user1 idetified by 'pwd1';

grant all privileges on *.* to 'user1'@'localhost' identified by 'pwd1' with grant option; --超级用户,具有完全权限,只

能从本机连接

grant all privileges on *.* to 'user1' identified by 'pwd1' with grant option; --超级用户,具有完全权限,可以从其它主机

连接

grant reload,process on *.* to 'admin'@'localhost'; --没有密码,只能从本机连接

方法二:直接操作MySQL授权表

mysql>insert into mysql.user (host,user,password) values('localhost','user1','');

mysql>insert into mysql.user (host,user,password) values('localhost','user1',PASSWORD('')); --加密密码

mysql>flush privileges; --重新授权表

2、删除用户

drop user user1;

3、重新设置密码

方法一:

mysqladmin -u user_name -h host_name password 'newpwd'

方法二:

mysql>set password for user_name = PASSWORD('newpwd');

mysql>set password = password('newpwd'); --修改自己的密码

八、创建存储过程

mysql> delimiter //

mysql> CREATE PROCEDURE simpleproc (OUT param1 INT)

-> BEGIN

-> SELECT COUNT(*) INTO param1 FROM t;

-> END

-> //

Query OK, 0 rows affected (0.00 sec)

===============

九、字符编码

my.ini

[mysql]

default-character-set = utf8

[mysqld]

port=3306

character-set_server=utf8
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: