数据库的基本操作

-- 连接到数据库服务器
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.99999.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)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值