• 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:WINDOWSsystem32>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 userG;   #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行为外键建立的声明

    
    
  • 相关阅读:
    恢复ubuntu和windows的双引导
    手把手教你做MVC3中的完美分页控件
    201521123024 《Java程序设计》第5周学习总结
    201521123024 《Java程序设计》第1周学习总结
    201521123024 《Java程序设计》第6周学习总结
    201521123024 《Java程序设计》第2周学习总结
    201521123024 《Java程序设计》第4周学习总结
    201521123024《Java程序设计》第3周学习总结
    201521123024《Java程序设计》第7周学习总结
    201521123024《Java程序设计》第8周学习总结
  • 原文地址:https://www.cnblogs.com/monologuesmw/p/9724174.html
Copyright © 2020-2023  润新知