zoukankan      html  css  js  c++  java
  • 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行为外键建立的声明

    
    
  • 相关阅读:
    SAP OPEN UI5 Step 8: Translatable Texts
    SAP OPEN UI5 Step7 JSON Model
    SAP OPEN UI5 Step6 Modules
    SAP OPEN UI5 Step5 Controllers
    SAP OPEN UI5 Step4 Xml View
    SAP OPEN UI5 Step3 Controls
    SAP OPEN UI5 Step2 Bootstrap
    SAP OPEN UI5 Step1 环境安装和hello world
    2021php最新composer的使用攻略
    Php使用gzdeflate和ZLIB_ENCODING_DEFLATE结果gzinflate报data error
  • 原文地址:https://www.cnblogs.com/monologuesmw/p/9724174.html
Copyright © 2011-2022 走看看