9.3.2 MySQL的常用操作
MySQL自带了许多命令行工具,如mysql、mysqladmin、mysqldump、mysqlimport等,其中,最重要的是mysql工具,它是SQL命令解释器,通过它能够执行SQL语句。下面为读者介绍一些MySQL常用的操作命令。
图9-7 设置默认字符集(左)
图9-8 设置root用户的密码(右)
在“开始”菜单中找到MySQL命令行工具"MySQ L5.5Command Line Client",输入root用户的密码连接到MySQL数据库服务器,也可以打开DOS窗口,输入如下命令:
- mysql –h localhost –u root -p
上述命令表示使用root用户连接到本机的MySQL数据库,连接成功后会显示mysql>提示符,如图9-9所示。
图9-9 连接本机的MySQL数据库
连接到MySQL数据库之后,可以执行创建数据库、创建表、插入数据、添加用户等常用操作。
说明 如果读者不习惯用命令行工具操作MySQL数据库,可以考虑使用phpMyAdmin,它是一款使用PHP编写的MySQL数据库管理工具,官方主页为:http://www.phpmyadmin.net。
1.database相关操作
1)显示当前服务器的数据库列表:
- mysql> show databases;
- +--------------------+
- | Database |
- +--------------------+
- | information_schema |
- | mysql |
- | performance_schema |
- | test |
- +--------------------+
2)创建一个名为liufeng的数据库:
- mysql> create database liufeng;
- Query OK, 1 row affected (0.00 sec)
3)选择使用数据库liufeng:
- mysql> use liufeng;
- Database changed
4)设置客户端字符集为utf8(通常在use database_name之后执行该操作):
- database_name之后执行该操作):
- mysql> set names utf8;
- Query OK, 0 rows affected (0.00 sec)
5)查询当前使用的数据库:
- mysql> select database();
- +------------+
- | database() |
- +------------+
- | liufeng |
- +------------+
- 1 row in set (0.00 sec)
6)删除数据库:
- mysql> drop database liufeng;
- Query OK, 0 rows affected (0.04 sec)
2.table相关操作
1)显示数据库test中的所有表:
- mysql> show tables;
- Empty set (0.00 sec)
2)创建一张名为user的表(包含id、姓名和年龄):
- mysql> create table user(id int auto_increment primary key, name varchar(30), age int);
- Query OK, 0 rows affected (0.48 sec)
说明 auto_increment表示字段id的值是自动增长的,在每次插入记录时会自动增加1,无须手动赋值。primary key表示字段id是主键,能够唯一标识一条记录。
3)显示user表的建表语句:
- mysql> show create table user;
- +-------+-----------------------------------------------------------------------+
- | Table | Create Table|
- +-------+-----------------------------------------------------------------------+
- | user | CREATE TABLE `user` (
- `id` int(11) NOT NULL AUTO_INCREMENT,
- `name` varchar(30) DEFAULT NULL,
- `age` int(11) DEFAULT NULL,
- PRIMARY KEY (`id`)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8 |
- +-------+-----------------------------------------------------------------------+
- 1 row in set (0.00 sec)
4)查看user表的表结构:
- mysql> desc user;
- +-------+-------------+------+-----+---------+----------------+
- | Field | Type | Null | Key | Default | Extra |
- +-------+-------------+------+-----+---------+----------------+
- | id | int(11) | NO | PRI | NULL | auto_increment |
- | name | varchar(30)| YES | | NULL | |
- | age | int(11) | YES | | NULL | |
- +-------+-------------+------+-----+---------+----------------+
- 3 rows in set (0.01 sec)
5)删除user表:
- mysql> drop table user;
- Query OK, 0 rows affected (0.35 sec)
3.记录的增删改查
1)创建user表并插入两条记录:
- mysql> create table user(id int auto_increment primary key, name varchar(30), age int);
- Query OK, 0 rows affected (0.79 sec)
- mysql> insert into user(name, age) values('liufeng', 29);
- Query OK, 1 row affected (0.36 sec)
- mysql> insert into user(name, age) values('luyao', 28);
- Query OK, 1 row affected (0.14 sec)
说明 在插入记录时,无须对自动增长auto_increment的字段id赋值。
2)查询user表的所有记录:
- mysql> select * from user;
- +----+---------+------+
- | id | name | age |
- +----+---------+------+
- | 1 | liufeng | 29 |
- | 2 | luyao | 28 |
- +----+---------+------+
- 1 rows in set (0.00 sec)
3)查询user表中name等于liufeng的记录:
- mysql> select * from user where name='liufeng';
- +----+---------+------+
- | id | name | age |
- +----+---------+------+
- | 1 | liufeng | 29 |
- +----+---------+------+
- 1 row in set (0.00 sec)
4)删除user表中id等于2的记录:
- mysql> delete from user where id=2;
- Query OK, 1 row affected (0.11 sec)
5)将user表中name等于liufeng的记录的age修改为28:
- mysql> update user set age=28 where name='liufeng';
- Query OK, 1 row affected (0.12 sec)
- Rows matched: 1 Changed: 1 Warnings: 0
6)查询user表的总记录数:
- mysql> select count(*) from user;
- +----------+
- | count(*) |
- +----------+
- | 1 |
- +----------+
- 1 row in set (0.00 sec)