MySQL数据库的基本操作

Contents

  • 数据库简介
  • Windows系统下操作MySQL
    • 数据库的连接
    • MySQL初体验(查看数据库,表,数据,表结构,用户的信息)
    • MySQL基本操作指令(增、删、改、查)
 
数据库简介
数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,每个数据库都有一个或多个不同的API用于创建,访问,管理,搜索和复制所保存的数据。
我们也可以将数据存储在文件中,但是在文件中读写数据速度相对较慢。所以,现在我们使用 关系型数据库管理系统RDBMS)来存储和管理的大数据量。
所谓的关系型数据库, 是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据。
 
RDBMS的一些术语:
  • 数据库: 数据库是一些关联表的集合。.
  • 数据表: 表是数据的矩阵。在一个数据库中的表看起来像一个简单的电子表格(excel)。
  • 列: 一列(数据元素) 包含了相同的数据, 例如邮政编码的数据。
  • 行:一行(=元组,或记录)是一组相关的数据,例如一条用户订阅的数据。
  • 冗余:存储两倍数据,冗余可以使系统速度更快。(表的规范化程度越高,表与表之间的关系就越多;查询时可能经常需要在多个表之间进行连接查询;而进行连接操作会降低查询速度。例如,学生的信息存储在student表中,院系信息存储在department表中。通过student表中的dept_id字段与department表建立关联关系。如果要查询一个学生所在系的名称,必须从student表中查找学生所在院系的编号(dept_id),然后根据这个编号去department查找系的名称。如果经常需要进行这个操作时,连接查询会浪费很多的时间。因此可以在student表中增加一个冗余字段dept_name,该字段用来存储学生所在院系的名称。这样就不用每次都进行连接操作了。)
  • 主键:主键是唯一的。一个数据表中只能包含一个主键。可以使用主键来查询数据。
  • 外键:外键用于关联两个表
  • 复合键:复合键(组合键)将多个列作为一个索引键,一般用于复合索引。
  • 索引:使用索引可快速访问数据库表中的特定信息。索引是对数据库表中一列或多列的值进行排序的一种结构。类似于书籍的目录。
  • 参照完整性: 参照的完整性要求关系中不允许引用不存在的实体。与实体完整性是关系模型必须满足的完整性约束条件,目的是保证数据的一致性。
MySQL数据库

MySQL是最流行的关系型数据库管理系统,在WEB应用方面MySQL是最好的RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一。由瑞典MySQL AB公司开发,目前属于Oracle公司。MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。

Windows系统下操作MySQL

本文主要以Windows下,在CMD命令窗口下对MySQL进行操作。 

打开命令提示符CMD,在CMD中对MySQL进行操作(也可以利用Xshell脚本进行操作)。

1. MySQL初体验

1)如果是刚安装后的MySQL,默认情况下MySQL服务器的密码为空。

只需要输入mysql命令便可以连接到数据库

1
[root@host]  mysql

2) 如果MySQL中已经包含用户名,密码,便需要通过以下命令来连接到MySQL服务器。如图所示,当成功连接到MySQL服务器时,会输出 mysql>提示符。(命令中u表示username用户名,root为用户名;p表示password密码,应注意-和p连接,否则会连接失败)

1 C:\WINDOWS\system32>mysql -u root -p
2 Enter password: ******

 

 

 

 

 

 

 

 

 

2. MySQL数据库的基本操作注意此后大多命令操作的结尾都需要加 “

1)  显示数据库列表
1 show databases;   # 显示有哪些数据库

2) 当知道有哪些数据库后,使用其中某一个数据库指令

1 use mysql; # 使用其中一个名字叫做MySQL 的数据库

可以看到数据库的change。

3) 显示数据库中有哪些表

1 show tables;

此时,将会显示出名为mysql的这个数据库中包含有哪些存储列表。

 4) 显示表的结构,即表的行,列 以及各自的类型,属性等信息(desc可理解为描述的意思,describe)

1 desc user;   #(user是mysql中的一个表)

5) 查看表中的数据

select *from user\G;   #\G 可以让显示的信息调理

6) 查看当前已有的用户

1 select user from user;    (第一个user是上图中user表中的user数据,第二个user是user表)

3.  MySQL基本操作指令(增、删、改、查)

在对MySQL有一个初体验后,接下来对MySQL的增删改查进行一步步的探索。

1) 创建数据库

在进行一个新的项目开发时,需要建立一个新的、独立的数据库来存放信息。

1 create database oldboydb charset utf8;

oldboydb为创建新的数据库的名称,charset utf8 为采用uft-8的方式进行编码,能显示中文噢(默认是拉丁语系,只能显示英文),如果对中文没有特殊要求,此处可省略。

此时,再使用show databases;指令显示数据库,可以看到我们新建的数据库oldboydb。

2) 删除数据库

1 drop database oldboydb;  #但一般不要删除数据库

3) 创建表

前面介绍过,数据库实际上就是一些关联表的集合,创建了数据库之后,再创建表来存储数据信息。

1 create table student(
2         id int auto_increment,
3         name char(32) not null,
4         age int not null,
5         primary key(id)
6         );

在创建表时,需要包含以下信息:

  • 表的名称;
  • 表中各列的列名、属性、
  • 主键的声明(一个表只能有一个主键)

解释:上述代码中,student为表的名称;

         int为整型;

          auto_increment表示自增(因为id是一个序号,希望他自动添加);

         not null 表示非空;

         primary key 为主键声明;

         其余的 id, name, age为表的列名。

4) 写入数据

在创建了合适的表之后,就可以往数据库中写数据。

1 insert into student(name, age) values("张三",18);

5) 显示表中的数据信息

写入数据后,当需要查询时,可以显示表中的数据。

1 select *from student;

6) 数据库的查询

当数据量特别大时,便不能直接显示整个表,需要有条件的查询。

1 select  *from student limit 2 offset 1;   # 除了第一个以外 后面的2个

多条件查询(where关键字

1 select *from student where id>3;   # id>3的数据
2 select *from student where id>3 and age<20;   
3 select *from student where register_data like "2018-08%";   # 查询某月的数据

7) 修改数据

当数据发生了变化,需要对已有的数据进行更改

1 update student set name = "Du Yawei", age=26 where id =2;    # 将id为2的姓名,年龄进行修改 

8) 删除数据

1 drop from student where name = "Du Yawei";    # 也可以通过别的方式删除

9) 排序

通过某种方式来实现排序。

1 select *from student order by id desc;   # 通过id的降序排序    (ASC升序)

10) 统计group by

1 select name, count(*) from student group by name;

11)   修改表的本身 (alter关键字)

新增字段;删除字段;修改字段;修改字段属性

1 alter table student add sex enum("M","F");   # 新增字段sex
2 alter table student drop sex; #删除字段sex
3 alter table student change sex gender char(32) default "X";    # 将名为sex的字段改为gender, 并设置其格式为char(32) 默认为X
4 alter table student modify sex enum("M","F") not null;

12)  外键的使用

所谓外键(MUL),就是建立多个表之间的关联性。

1 create table study_record(
2         id int auto_increment not null,
3         day int not null,
4          status char(32) not null,
5         stu_id  int not null,
6         primary key(id),
7         key fk_student_key(stu_id),
8         constraint fk_student_key foreign key(stu_id) references student(id)
9         );

7-8行为外键建立的声明

 

 

 

 

 

 

 
 

 

转载于:https://www.cnblogs.com/monologuesmw/p/9724174.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值