MYSQL-学习笔记

一、数据库概述

1、数据库(DataBase,DB):指长期保存在计算机的存储设备上,按照一定规则组织起来,可以被各种用户或应用共享的数据集合

2、数据库管理系统(DataBase Management System,DBMS):指一种操作和管理数据库的大型软件,用于建立、使用和维护数据库,对数据库进行统一管理和控制,以保证数据库的安全性和完整性。用户通过数据库管理系统访问数据库中的数据。

3、数据库软件应该为数据库管理系统:数据库是通过数据库管理系统创建和操作的。

4、数据库:存储、维护和管理数据的集合。

 

二、Sql的分类

1、DDL(Data Definition Language):数据定义语言,用来定义数据库对象:库、表、列等;

2、DML(Data Manipulation Language):数据操作语言,用来定义数据库记录(数据);

3、DCL(Data Control Language):数据控制语言,用来定义访问权限和安全级别;

4、DQL(Data Query Language):数据查询语言,用来查询记录(数据)。

 

三、 DDL:操作数据库、表、列等

使用的关键字:CREATE、 ALTER、 DROP

1、操作数据库

(1)、创建:

             Create database mydb1;

            Create database mydb2 character set gbk;

             Create database mydb3 character set gbk COLLATE gbk_chinese_ci;

(2)、查询:

           Show databases: 查看当前数据库服务器中的所有数据

           Show  create  database mydb2:查看前面创建的mydb2数据库的定义信息

           Drop database mydb3:删除前面创建的mydb3数据库

(3)、修改:

          alter database mydb2 character set utf8:查看服务器中的数据库,并把mydb2的字符集修改为utf8;

(4)、删除:

           Drop database mydb3;

(5)、其他:

             Select database():查看当前使用的数据库

             Use mydb2:切换数据库

2、操作数据表

(1)、语法:

            create table 表名(字段1 字段类型,字段2 字段类型,...字段n 字段类型);

(2)、常用数据类型:

             int:整型

            double:浮点型,例如double(5,2)表示最多5位,其中必须有2位小数,即最大值为999.99;

            char:固定长度字符串类型;    char(10)     'aaa       '  占10位

            varchar:可变长度字符串类型; varchar(10)  'aaa'  占3为

            text:字符串类型;

            blob:字节类型;

            date:日期类型,格式为:yyyy-MM-dd;

            time:时间类型,格式为:hh:mm:ss

            timestamp:时间戳类型 yyyy-MM-dd hh:mm:ss  会自动赋值

           datetime:日期时间类型 yyyy-MM-dd hh:mm:ss

(3)、其他:

           SHOW TABLES:当前数据库中的所有表

           DESC employee:查看表的字段信息

           SHOW CREATE TABLE user:查看表格的创建细节

           DROP TABLE user :删除表

 

四、DML操作(重要)

DML是对表中的数据进行增、删、改的操作

1、插入操作:INSERT

INSERT INTO 表名(列名1,列名2 ...)VALUES(列值1,列值2...);

2、修改操作:update

UPDATE 表名 SET 列名1=列值1,列名2=列值2 。。。 WHERE 列名=值

3、删除操作:delete

DELETE 表名 【WHERE 列名=值】

注意:DELETE 删除表中的数据,表结构还在;删除后的数据可以找回。TRUNCATE 删除是把表直接DROP掉,然后再创建一个同样的新表。删除的数据不能找回。执行速度比DELETE快。

 

五、DQL操作

        DQL数据查询语言 (重要),数据库执行DQL语句不会对数据进行改变,而是让数据库发送结果集给客户端。查询返回的结果集是一张虚拟表。

1、基础查询

     1.1 查询所有列:SELECT * FROM stu;

     1.2 查询指定列:SELECT sid, sname, age FROM stu;

2、条件查询

     条件查询就是在查询时给出WHERE子句

3、模糊查询

       _ 任意一个字母; %:任意0~n个字母

4、字段控制查询

    4.1 去除重复记录:DISTINCT

    4.2 给列名添加别名:AS

5、排序

       ORDER BY 字段名 ASC;升序

       ORDER BY 字段名 DESC;降序

6、聚合函数

       sum avg max min count

7、分组查询

       注: 凡和聚合函数同时出现的列名,则一定要写在group by 之后

       注:having与where的区别:

              1.having是在分组后对数据进行过滤,where是在分组前对数据进行过滤

              2.having后面可以使用分组函数(统计函数), where后面不可以使用分组函数。

              WHERE是对分组前记录的条件,如果某行记录没有满足WHERE子句的条件,那么这行记录不会参加分组;而HAVING是对分组后数据的约束。

8、limit

LIMIT用来限定查询结果的起始行,以及总行数。

    

六、数据库的完整性

1、实体完整性

        实体:即表中的一行(一条记录)代表一个实体(entity)

        实体完整性的作用:标识每一行数据不重复。

        约束类型: 主键约束(primary key)  唯一约束(unique)  自动增长列(auto_increment)

2、域完整性

        域完整性的作用:限制此单元格的数据正确,不对照此列的其它单元格比较域代表当前单元格

         域完整性约束:数据类型 非空约束(not null) 默认值约束(default)  

         check约束(mysql不支持)check(sex='男' or  sex='女')

3、引用完整性(参照完整性)

       外键约束:FOREIGN KEY

4、表与表之间的关系

       一对一,一对多

 

七、多表查询(非常非常重要)

1、合并结果集

2、连接查询

3、自然连接

4、子查询

5、自查询

 

八、mysql数据库的备份与恢复

1、生产SQL脚本——导出数据

在控制台使用mysqldump命令可以用来生成指定数据库的脚本文本,但要注意,脚本文本中只包含数据库的内容,而不会存在创建数据库的语句!所以在恢复数据时,还需要自已手动创建一个数据库之后再去恢复数据。

  mysqldump –u用户名 –p密码 数据库名>生成的脚本文件路径

 

注意,mysqldump命令是在Windows控制台下执行,无需登录mysql!!!

 

2、执行sql脚本——恢复数据

前提:必须先创建数据库名

第一种方式:msyql>SOURCE C:\mydb1.sql                                   需要登录mysql

第二种方式:C:>mysql -uroot -p123 mydb1<c:\mydb1.sql               不需要登录mysql   

 

 

 

 

 

 

 

 

 

 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值