写在前面 不要轻易删除数据库文件,否则卸载重装很麻烦
mysql的安装、初始化以及环境变量配置等不再重复,本文用以记录对mysql的常用操作。
1 . 连接数据库,开启cmd进入命令行下,在进入到数据库安装的目录的bin目录下,输入mysql -uroot -p
回车,输入密码,再回车即可连接到数据库。
2. 查看都有哪些数据库,输入命令
show databases;
显示出数据库都有哪些,第一次使用的时候只有如下四个
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
4 rows in set (0.00 sec)
3.创建数据库。
create database 数据库名字;
注意:创建数据库时,数据库名字你不带分号。再次执行show databases
会显示出刚创建的数据库。
4. 删除数据库。执行 drop database 数据库名称
即可删除此数据库。
5. 选择数据库。即进入到特定的某个数据库里面进行操作,只有进入到了数据库中才能完成数据库中表的创建删除等操作。执行use 数据库名称
即可。
mysql> use test01;
Database changed
6.对数据库进行操作,数据库是由许多表组成的,所以对数据库的操作可以认为是对表的操作。
创建数据表。创建数据表需要:表明、表字段名、定义每个表字段,
如果你不想字段为 null 可以设置字段的属性为not null, 在操作数据库时如果输入该字段的数据为null ,就会报错。
auto_increment定义列为自增的属性,一般用于主键,数值会自动加1。
primary key 关键字用于定义列为主键
engine 设置存储引擎,charset 设置编码。示例:
mysql> create table t1
-> (t1_id int not null auto_increment,
-> t1_name varchar(40) not null,
-> t1_author varchar(40) not null,
-> t1_price int not null,
-> primary key (t1_id)
-> )engine=innodb default charset=utf8;
Query OK, 0 rows affected (2.43 sec)
mysql> show tables;
+------------------+
| Tables_in_test02 |
+------------------+
| t1 |
+------------------+
1 row in set (0.00 sec)
以上实现了创建一个数据表,并验证是否创建成功。
7.删除数据表,和删除数据库语法相似。输入drop table 数据表名
即可。
8.往数据表插入数据.现在数据表已经创建好了但里面还没有数据,向数据表中插入数据方法很简单:(注意:如果数据是字符型,必须使用单引号或者引号,如:“value”。)
向数据表中添加数据可以一行一行添加,如下
mysql> insert into t1
-> (t1_name,t1_author,t1_price)
-> values
-> ("西游记","吴承恩",75);
Query OK, 1 row affected (2.24 sec)
多行数据一次性添加,如下
mysql> insert into t1
-> (t1_name,t1_author,t1_price)
-> values
-> ("水浒传","施耐庵",78),
-> ("三国演义","罗贯中",80),
-> ("红楼梦","曹雪芹",85);
Query OK, 3 rows affected (2.17 sec)
Records: 3 Duplicates: 0 Warnings: 0
9.查询数据表。对于以上的向数据表中插入数据如何得知成功与否呢,执行select * from 数据表名称
即可,对于之前的插入操作验证如下
mysql> select * from t1;
+-------+--------------+-----------+----------+
| t1_id | t1_name | t1_author | t1_price |
+-------+--------------+-----------+----------+
| 1 | 西游记 | 吴承恩 | 75 |
| 2 | 水浒传 | 施耐庵 | 78 |
| 3 | 三国演义 | 罗贯中 | 80 |
| 4 | 红楼梦 | 曹雪芹 | 85 |
+-------+--------------+-----------+----------+
10.更新数据。也即是把表中的数据更改,比如书的价格改变了就需要变动price
所以只需执行 类似update t1set t1_price=82 where t1_name='红楼梦' ;
步骤即可,结果如下:
mysql> update t1 set t1_price=82 where t1_name='红楼梦';
Query OK, 1 row affected (2.20 sec)
Rows matched: 1 Changed: 1 Warnings:
mysql> select * from t1;
+-------+--------------+-----------+----------+
| t1_id | t1_name | t1_author | t1_price |
+-------+--------------+-----------+----------+
| 1 | 西游记 | 吴承恩 | 75 |
| 2 | 水浒传 | 施耐庵 | 78 |
| 3 | 三国演义 | 罗贯中 | 80 |
| 4 | 红楼梦 | 曹雪芹 | 82 |
+-------+--------------+-----------+----------+
11.删除数据表中的指定数据:delete from t1 where t1_id=1;
重新查询一下就会发现 t1_id=1 的那一行被删除。
mysql> delete from t1 where t1_id=1;
Query OK, 1 row affected (2.23 sec)
mysql> select * from t1;
+-------+--------------+-----------+----------+
| t1_id | t1_name | t1_author | t1_price |
+-------+--------------+-----------+----------+
| 2 | 水浒传 | 施耐庵 | 78 |
| 3 | 三国演义 | 罗贯中 | 80 |
| 4 | 红楼梦 | 曹雪芹 | 82 |
+-------+--------------+-----------+----------+
3 rows in set (0.00 sec)
12.like 用法:向 t1 表中加入几个数据,可以使用like子句代替等号 =,like 通常与 % 一同使用,类似于一个元字符的搜索。
示例:select * from t1 where t1_author like ('%xml');
mysql> select * from t1 where t1_author like('%.xml');
+-------+---------+-----------+----------+
| t1_id | t1_name | t1_author | t1_price |
+-------+---------+-----------+----------+
| 5 | 1.name | 1.xml | 100 |
| 6 | 3.name | 3.xml | 300 |
| 7 | 2.name | 2.xml | 200 |
+-------+---------+-----------+----------+
3 rows in set (0.00 sec)
13.order by 可以用来排序。例如:t1_price 按升序排列:select * from t1 order by t1_price asc;
mysql> select * from t1 order by t1_price asc;
+-------+--------------+-----------+----------+
| t1_id | t1_name | t1_author | t1_price |
+-------+--------------+-----------+----------+
| 2 | 水浒传 | 施耐庵 | 78 |
| 3 | 三国演义 | 罗贯中 | 80 |
| 4 | 红楼梦 | 曹雪芹 | 82 |
| 5 | 1.name | 1.xml | 100 |
| 7 | 2.name | 2.xml | 200 |
| 6 | 3.name | 3.xml | 300 |
+-------+--------------+-----------+----------+
6 rows in set (0.00 sec)
按t1_id降序排列,如下
mysql> select * from t1 order by t1_id desc;
+-------+--------------+-----------+----------+
| t1_id | t1_name | t1_author | t1_price |
+-------+--------------+-----------+----------+
| 7 | 2.name | 2.xml | 200 |
| 6 | 3.name | 3.xml | 300 |
| 5 | 1.name | 1.xml | 100 |
| 4 | 红楼梦 | 曹雪芹 | 82 |
| 3 | 三国演义 | 罗贯中 | 80 |
| 2 | 水浒传 | 施耐庵 | 78 |
+-------+--------------+-----------+----------+
6 rows in set (0.00 sec)
14.改变数据表名:一般不会更改,如果要改,则执行alter table t1 rename t11;
即可
mysql> alter table t1 rename t11;
Query OK, 0 rows affected (2.38 sec)
mysql> show tables;
+------------------+
| Tables_in_test02 |
+------------------+
| t11 |
+------------------+
1 row in set (0.00 sec)
15.添加列表。执行alter table t2 add column t1_time varchar(15);
mysql> alter table t11 add column t1_time varchar(50);
Query OK, 0 rows affected (2.71 sec)
Records: 0 Duplicates: 0 Warnings: 0
mysql> select * from t11;
+-------+--------------+-----------+----------+---------+
| t1_id | t1_name | t1_author | t1_price | t1_time |
+-------+--------------+-----------+----------+---------+
| 2 | 水浒传 | 施耐庵 | 78 | NULL |
| 3 | 三国演义 | 罗贯中 | 80 | NULL |
| 4 | 红楼梦 | 曹雪芹 | 82 | NULL |
| 5 | 1.name | 1.xml | 100 | NULL |
| 6 | 3.name | 3.xml | 300 | NULL |
| 7 | 2.name | 2.xml | 200 | NULL |
+-------+--------------+-----------+----------+---------+
6 rows in set (0.00 sec)
mysql> update t11 set t1_time="这本书是2015年出版的" where t1_name='三国演义';
Query OK, 1 row affected (2.19 sec)
Rows matched: 1 Changed: 1 Warnings: 0
mysql> select * from t11;
+-------+--------------+-----------+----------+------------------------------+
| t1_id | t1_name | t1_author | t1_price | t1_time |
+-------+--------------+-----------+----------+------------------------------+
| 2 | 水浒传 | 施耐庵 | 78 | NULL |
| 3 | 三国演义 | 罗贯中 | 80 | 这本书是2015年出版的 |
| 4 | 红楼梦 | 曹雪芹 | 82 | NULL |
| 5 | 1.name | 1.xml | 100 | NULL |
| 6 | 3.name | 3.xml | 300 | NULL |
| 7 | 2.name | 2.xml | 200 | NULL |
+-------+--------------+-----------+----------+------------------------------+
6 rows in set (0.00 sec)