好猫网手机站
mysql数据库(零基础学sql要多久)
2022-08-16 12:54:46  浏览:31

mysql数据库(零基础学sql要多久)

mysql数据库(零基础学sql要多久)原创2021-06-08 09:30·追求源于热爱i

目录

    1.数据库基础

      1.1数据库基础概述

      1.2MySQL数据库介绍

      1.3MySQL数据库安装

      2数据库和数据表管理

        2.1数据库管理

        2.2数据表管理-数据表设计

        2.3数据表管理-创建表

        2.4数据表管理-修改表

        2.5数据表管理-修改表

        2.6数据表管理- 删除表

        3.图形化界面操作数据库

        4.简单查询与数据操作

          4.1基本查询语句

          4.2插入数据

          4.3修改数据

          4.4删除数据

          5.备份和恢复数据库

            5.1备份数据库

            5.2恢复数据库

            5.3图形界面备份和恢复数据库

            1.数据库基础 1.1数据库基础概述

            数据管理主要经历过程:

              手工管理阶段 :应用程序管理数据、数据不保存、不共享、不具有独立性。

              文件管理阶段:文件系统管理数据、数据可长期保存、但共享性差、冗余度大、独立性差。

              数据管理阶段:数据库系统管理数据、数据结构复杂、冗余小、易扩充、较高的独立性、统一数据控制。

              数据库的特征:

                数据结构化

                实现数据共享

                减少数据冗余

                数据独立性

                数据库类型(按数据模型特点分)

                  网状型数据库

                  层次型数据库

                  关系型数据库

                  网状数据库:采用记录类型为节点的网状数据模型



                  层次数据库:采用层次模型模拟现实世界中按层次组织起来的事物


                  关系型数据库:采用二维表结构组织和管理数据,并规定了表内和表间数据的依赖关系


                  关系数据库是指一些相关的表和其他数据库对象的集合。对于关系数据库来说,关系就是表的同义词。

                    表是由行和列组成(类似二维数组的结构)。

                    列包含一组命名的属性(也称字段)。

                    行包含一组记录,每行包含一条记录。

                    行和列的交集称为数据项,指出了某列对应的属性在某行上的值,也称为字段值。

                    列需定义数据类型,比如整数或者字符型的数据。

                    关系数据库的数据结构图示:


                    1.2MySQL数据库介绍

                      MySQL是由瑞典 MySQL AB公司开的一种开放源代码的关系型数据库管理系统(RDBMS),目前属于 Oracle 旗下产品。

                      MySQL数据库系统使用最常用的数据库管理语言——结构化查询语言(SQL)进行数据库管理。

                      SQL语言主要是用来操作关系型数据库的一本语言,称之为结构化查询语句。

                      SQL语句主要分为:

                        DQL:数据查询语言,用于对数据进行查询,如select

                        DML:数据操作语言,对数据进行增加、修改、删除,如insert、udpate、delete

                        TPL:事务处理语言,对事务进行处理,包括begin transaction、commit、rollback

                        DCL:数据控制语言,进行授权与权限回收,如grant、revoke

                        DDL:数据定义语言,进行数据库、表的管理等,如create、drop

                        CCL:指针控制语言,通过控制指针完成表的操作,如declare cursor

                        MySQL的特点:

                          使用C和C++编写,并使用了多种编译器进行测试,保证源代码的可移植性

                          全面支持SQL的GROUP BY和ORDER BY子句,支持聚合函数(COUNT()、COUNT(DISTINCT)、AVG()、STD()、SUM()、MAX()和MIN())。你可以在同一查询中混来自不同数据库的表。

                          为多种编程语言提供了API,如C、C++、Python、Java、Perl、PHP、Eiffel、Ruby等 支持多种存储引擎

                          1.3MySQL数据库安装

                          MySQL服务端(在Linux系统)

                            下载安装

                            sudo apt-get install mysql-server

                              启动服务

                              sudo service mysql start

                                查看服务是否启动

                                ps ajx|grep mysql  sudo service mysql status

                                  停止服务

                                  sudo service mysql stop

                                    重启服务

                                    sudo service mysql restart

                                    配置

                                      配置文件目录为/etc/mysql/mysql.conf.d

                                      进入目录,打开mysqld.cnf,可以看到配置项

                                      bind-address表示服务器绑定的ip,默认为127.0.0.1

                                      port表示端口,默认为3306

                                      datadir表示数据库目录,默认为/var/lib/mysql

                                      generallogfile表示普通日志,默认为/var/log/mysql/mysql.log

                                      log_error表示错误日志,默认为/var/log/mysql/error.log



                                      MySQL客户端

                                        客户端为开发人员使用,常用的有命令行客户端、navicat图形界面客户端等。

                                        下载安装命令行客户端
                                        sudo apt install mysql-client

                                        连接数据库
                                        mysql -u root -p123456
                                        -u后面跟的是数据库的账户名,-p密码 -p与密码之间不能有空格如果-p后面不加密码,那么回车后会要求输入密码。



                                        注:按ctrl+d或输入quit 或者 exit命令退出

                                        2数据库和数据表管理 2.1数据库管理

                                          连接数据库

                                          mysql -u账号 -p密码 -h主机地址 -P端口 mysql -uroot -pmysql

                                            查看数据库版本

                                            select version();

                                              显示当前时间

                                              select now();

                                                查看所有数据库:

                                                show databases;

                                                  创建数据库

                                                  create database 数据库名 charset=utf8;



                                                  注:创建库的时候一定要指定编码utf8,utf8中间没有-,跟pyhton中写编码有点区别

                                                    切换数据库:

                                                    use 数据库名

                                                      查看当前正在使用哪个数据库

                                                      select database();

                                                        删除数据库

                                                        drop database 数据库名;


                                                        2.2数据表管理-数据表设计

                                                          数据表设计包括ER图、表的主键、字段、数据类型、约束、表之间关系的设计

                                                          E-R(Entity-Relationship)模型即实体-关系模型主要用于定义数据的存储需求,该模型已经广泛用于关系数据库设计中。E-R模型由实体、属性和关系三个基本要素构成。



                                                          主键(Primary Key)

                                                            数据库表要求表中的每一行记录都必须是唯一的,即在同一张表中不允许出现完全相同的两条记录。

                                                            在设计数据库时,为了保证记录的“唯一性”,最为普遍、最为推荐的做法是为表定义一个主键(primary key)。

                                                            数据库表中主键有以下两个特征:

                                                              表的主键可以由一个字段构成,也可以由多个字段构成(这种情况称为复合主键)。

                                                              数据库表中主键的值具有唯一性且不能取空值(NULL),当数据库表中的主键由多个字段构成时,每个字段的值不能取NULL值。

                                                              实体间的关系与外键(Foreign Key)

                                                                班级实体和班主任实体之间为一对一关系,班级实体和学生实体之间为一对多关系,学生实体和课程实体之间为多对多关系。

                                                                实体间的关系可以通过外键来表示。如果表A中的一个字段a对应于表B的主键b,则字段a称为表A的外键。此时存储在表A中字段a的值,同时这个字段值也是表B主键b的值。



                                                                约束(Constraint)

                                                                  约束是定义在表上的一种强制规则。当为某个表定义约束后,对该表做的所有SQL操作都必须满足约束的规则要求,否则操作将失败。

                                                                  约束类型:


                                                                  2.3数据表管理-创建表

                                                                    查看当前数据库中的表

                                                                    show tables;

                                                                      创建表



                                                                      注:建表主要是前面是字段,字段后面跟的是约束条件。

                                                                        创建学生表


                                                                          comment 注释,在创建表的时候如果字段很多,防止忘记字段是存什么数据的,可以给字段添加注释。


                                                                            查看创建表的sql语句

                                                                            show create table 表名; 2.4数据表管理-修改表

                                                                            添加字段

                                                                              alter table 表名 add 列名 类型;

                                                                              给students添加一个生日字段


                                                                              删除字段

                                                                                alter table 表名 drop 字段名字;

                                                                                将students表中的gender字段删除


                                                                                2.5数据表管理-修改表

                                                                                修改字段
                                                                                第一种,不修改字段名只修改类型及约束

                                                                                alter table 表名 modify 列名 类型及约束;


                                                                                第二种,需要修改字段名字

                                                                                alter table 表名 change 原名 新名 类型及约束;


                                                                                2.6数据表管理- 删除表 drop table 表名;

                                                                                删除学生表


                                                                                3.图形化界面操作数据库

                                                                                下载安装图形界面工具Navicat
                                                                                Navicat官网:
                                                                                https://www.navicat.com.cn/
                                                                                mysql 刚装好root账号默认只能本地登录,不能在其他机器登录的。使用Navicat连接之前,先在命令行客户端将mysql的用户登录权限进行修改;
                                                                                修改步骤:
                                                                                (1)mysql -uroot -p123456 连接数据库
                                                                                (2)use msyql 进入mysql数据库
                                                                                (3)select host,user from user; 查看账号有哪些权限
                                                                                (4)将root登录权限修改成所有主机都能登录

                                                                                grant all privileges on *.* to \\\'root\\\'@\\\'%\\\';

                                                                                (5)注释配置文件的bind-address

                                                                                /etc/mysql/mysql.conf.d/mysqld.cnf配置文件里面的bind-address注释掉
                                                                                使用Navicat连接MySQL

                                                                                  打开安装好的Navicat客户端点击 连接—>mysql----填写账号密码,主机地址是你安装msyql的ubuntu ip地址,点击连接测试弹出连接成功,说明Navicat已经连接上了mysql,点击确定。

                                                                                  连接成功后可以看到所有数据库



                                                                                  创建数据库

                                                                                    在左侧栏空白处右击,点击“新建数据库”

                                                                                    在弹出框里填写数据库名,编码格式,选择utf-8




                                                                                    创建数据表

                                                                                      选择表然后点击新建表



                                                                                      创建一个班级表

                                                                                        对于id字段,需要设置为int类型,无符号,自动增长,主键,非空



                                                                                        创建好表后,还可以对表进行编辑

                                                                                          打开表,设计表,删除表


                                                                                          4.简单查询与数据操作 4.1基本查询语句

                                                                                          select * from 表名;

                                                                                          select * from students;   查询students表中的所有内容



                                                                                          指定字段查询

                                                                                            select 字段1,字段2 from 表名;

                                                                                            比如只想看id,name这两列

                                                                                            select id,name from students;


                                                                                            4.2插入数据

                                                                                            全列插入

                                                                                              insert into 表名 values (…)

                                                                                              在上节课中创建的students学生表中插入学生信息

                                                                                              insert into students values(0,\\\'韩信\\\',0,\\\'广州\\\');



                                                                                              注:全列插入时,有多少个字段,必须插入多少个字段,即使默认可以为空的字段也要占位。主键自增也需要占位一般使用0占位。
                                                                                              部分插入

                                                                                                insert into 表名 [字段1,字段2] values (值1,值2);



                                                                                                全列多行插入

                                                                                                  多行插入每一行的内容写在一个小括号内,用逗号分隔多行。

                                                                                                  insert into 表名 values (...),(....),(....);


                                                                                                  部分列多行插入

                                                                                                  insert into 表名 (字段1,字段2) values (..),(..);


                                                                                                  4.3修改数据

                                                                                                    update 表名 set 字段=xxx where 字段=xxx;

                                                                                                    update students set hometown=\\\'珠海\\\' where id= 5;



                                                                                                    注:修改某一行内容一定要加where限定条件,否则会造成全表修改,除非你想要修改整张表。

                                                                                                    4.4删除数据

                                                                                                      删除id为3的程咬金

                                                                                                      delete from students where id =3;



                                                                                                      注:删除行也要加限定条件,不加的话会造成全表删除

                                                                                                      5.备份和恢复数据库 5.1备份数据库

                                                                                                        备份数据库的所有表的数据

                                                                                                        mysqldump –uroot –p 数据库名 > python.sql;

                                                                                                         mysqldump -uroot -p python >python.sql

                                                                                                          提示输入密码,mysql的密码


                                                                                                            备份数据库的某个数据表的数据

                                                                                                            mysqldump –uroot –p 数据库名 数据表名> class.sql;

                                                                                                            msyqldump -uroot -p python class > class.sql


                                                                                                            5.2恢复数据库

                                                                                                              恢复数据库之前要先手动创建库

                                                                                                              mysql -uroot –p 新数据库名 < python.sql


                                                                                                              5.3图形界面备份和恢复数据库

                                                                                                                备份数据库,转储SQL文件即可以进行数据库备份