-- 连接到数据库服务器
mysql -h localhost -u root -p
mysql --default-character-set=latin1 -uroot -pxxxx (对齐)
-- 创建数据库
create database 数据库名 charset=utf8;
-- 查看所有库
show databases;
-- 选择数据库
use 库名
-- 查看库下面的表
show tables;
-- 告诉服务器你的字符集
set names gbk/utf8/...;
-- 创建数据表
-- auto_increment定义列为自增的属性,一般用于主键,数值会自动加1
-- not null 在操作数据库时如果输入该字段的数据为NULL ,就会报错
-- primary key 用于定义列为主键
-- default 默认值
-- unsigned 只能添加正数,当不设置unsigned时,我们可以添加负数进去
-- decimal(m,d) 例如decimal(5,2) height列最多可以存储5位数字,小数位数为2位; 因此,范围是从-999.99到999.99
create table students(
id int unsigned primary key auto_increment not null,
name varchar(20) default 0,
age int unsigned default 0,
height decimal(3,2)
)charset utf8;
创建数据库
创建一个test的数据库
- 当我们创建数据库没有指定字符集和校验规则时
- 系统使用默认,字符集 utf8; 校验规则是 utf8_general_ci
- utf8支持中文 utf8_general_ci 是支持utf8 ,并且不区分大小写
mysql> create database test;
Query OK, 1 row affected (0.00 sec)
创建一个test1数据库
- charater set 给该数据库指定的字符集, 通常我们使用utf8
- collate 校验规则 , 就是指的表的排序的规则和查询时的规则
mysql> create database test1 character set utf8 collate utf8_general_ci;
Query OK, 1 row affected (0.00 sec)
显示数据库
语法:show databases
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| test |
| test1 |
+--------------------+
5 rows in set (0.00 sec)
显示创建数据库的指令
语法:show create database 数据库名
- mysql 建议我们关键字使用大写,但是这个不是必须
- `` 反引号, 他可以避免你使用的 数据库名称,刚好是关键字
- /!40100 default …/ 表示如果当前mysql版本 大于 mysql4.01 版本就执行
//show create table 表名
mysql> show create database test;
+----------+---------------------------------------------------------------+
| Database | Create Database |
+----------+---------------------------------------------------------------+
| test | CREATE DATABASE `test` /*!40100 DEFAULT CHARACTER SET utf8 */ |
+----------+---------------------------------------------------------------+
1 row in set (0.00 sec)
删除数据库
语法:drop database [if exists] 数据库名
mysql> drop database test1;
Query OK, 0 rows affected (0.01 sec)
mysql> drop database test1;
ERROR 1008 (HY000): Can't drop database 'test1'; database doesn't exist
//兼容性写法 不报错
mysql> drop database if exists test1;
Query OK, 0 rows affected, 1 warning (0.00 sec)
查看当前mysql数据库连接进程情况
语法:show processlist
- mysql默认端口号是3306
- 这里的2577是用户端口号
mysql> show processlist;
+----+------+----------------+------+---------+------+-------+------------------+
| Id | User | Host | db | Command | Time | State | Info |
+----+------+----------------+------+---------+------+-------+------------------+
| 2 | root | localhost:2577 | NULL | Query | 0 | NULL | show processlist |
+----+------+----------------+------+---------+------+-------+------------------+
1 row in set (0.00 sec)
备份,恢复数据库
备份语法:mysqldump -u root -p 数据库 > 数据存放路径
注意:mysqldump是一个专门备份exe程序,因此不能在mysql下执行,需要重新开新窗口执行
//备份test1数据库
C:\Users\zy>mysqldump -u root -p test1 > F:/wnmp/mysql5.5.27/data/backup/test1.bak
Enter password:
恢复数据库,进入到mysql管理控制台,在mysql下恢复备份
//创建空数据库 存放将要恢复的数据 名称任意 但最好和删除的数据库保持一致
mysql> create database test1;
Query OK, 1 row affected (0.00 sec)
//选择这个数据库
mysql> use testbak;
Database changed
//恢复备份数据
mysql> source F:/wnmp/mysql5.5.27/data/backup/test1.bak;
Query OK, 0 rows affected (0.00 sec)
Query OK, 0 rows affected (0.00 sec)
//查看数据库中的数据表
mysql> show tables;
+-------------------+
| Tables_in_test1 |
+-------------------+
| students |
+-------------------+
1 row in set (0.00 sec)
//查看表中数据
mysql> select * from students;
+----+-------+------+--------+
| id | name | age | height |
+----+-------+------+--------+
| 1 | lufei | 18 | 1.75 |
+----+-------+------+--------+
1 row in set (0.00 sec)
备份,恢复数据表
可以只备份和恢复数据库的某几张表
备份语法:mysqldump -u root -p 数据库 表名1 表名2 > 数据存放路径
//备份数据表,注意 最后没有分号
C:\Users\zy>mysqldump -u root -p test1 students > F:/wnmp/mysql5.5.27/data/backup/test1_students.bak
Enter password:
//删除该数据表
mysql> drop table students;
Query OK, 0 rows affected (0.02 sec)
//恢复数据表
mysql> source F:/wnmp/mysql5.5.27/data/backup/test1_students.bak;
Query OK, 0 rows affected (0.00 sec)
Query OK, 0 rows affected (0.00 sec)
//查看数据
mysql> select * from students;
+------+------+
| id | name |
+------+------+
| 1 | aa |
| 2 | bb |
+------+------+
2 rows in set (0.00 sec)
数据库的修改操作
对数据库的修改主要指的是修改它的字符集(character set),校验规则(collate)和存储引擎(engine)
修改某个数据库的的字符集
mysql> alter database test character set utf8;
Query OK, 1 row affected (0.00 sec)
mysql> alter database test charset=utf8;
Query OK, 1 row affected (0.00 sec)
修改某个数据库的的校验规则
mysql> alter database test collate utf8_general_ci;
Query OK, 1 row affected (0.00 sec)