MySQL的基本使用

来源:互联网 发布:电脑网络电话软件 编辑:程序博客网 时间:2024/05/17 14:20

 

一、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

原创粉丝点击