• 【Mysql数据库】学习笔记


    一、数据库的创建

      create database database_name  DEFAULT CHARACTER SET utf8;  //创建一个数据库  

      drop database database_name;  //删除数据库

      1.1 DOS常用命令

        1.1.1 数据库命令

          mysqld install      // 安装MySQL数据库服务

                    net start mysql 或 net stop mysql     // 启动或停止MySQL服务

          mysql -u username -p  // 登录MySQL管理系统  

          use database_name;  // 引用数据库

          show databases;    // 显示所有数据库

          source path(.sql文件路径)  //导入数据库文件,生成数据库,即根据sql脚本生成数据库;例如:source F:mysql.sql

        1.1.2 数据表操作命令

          show tables;         // 显示某数据库中所有表

          desc table _name;   //显示表的字段信息

          show create table table_name;  //显示表的创建信息

       1.2 查询关系运算符

    • =、 !=、 <>、<、<=、>、>=;
    • between   ·····  and ········;
    • in(set) ; //set是集合
    • is null;is not null
    • and ;
    • or;
    • not;
    • like  '%三';          //%表示任意多个字符,_表示任意单个字符

      1.3 内连接和外连接

        >内连接:

            select  t1.id,t1.name,t1.age,t2.score  from table1_name t1  join table2_name t2 on t1.id=t2.id

            或:

            select  t1.name,t1.age,t2.score  from table1_name t1 , table2_name t2 where t1.id=t2.id

        >外连接:

            select  t1.id,t1.name,t1.age,t2.score  from table1_name t1  left join table2_name t2 on t1.id=t2.id    //左连接

            或:

            select  t1.id,t1.name,t1.age,t2.score  from table1_name t1 right join table2_name t2 on t1.id=t2.id    //右连接

            select  t1.id,t1.name,t1.age,t2.score  from table1_name t1 full join table2_name t2 on t1.id=t2.id    //全连接,MySQL不支持!

       1.4 数据库备份和恢复

        a. 备份  

          mysqldump -u root -p123 database_name>d:myDBdemo.sql 

        b. 恢复

           mysql -u root -p123 database_name<d:myDBdemo.sql

          或:

          进入需要还原到的目的数据库;

          source d:myDBdemo.sql

    二、基本表的创建

      2.1 创建表

       数据类型:int,char,varchar,text(字符串类型),blob(字节类型);double(5,2)表示最多5位,其中2位小数。

        create table 表名

        (

          字段名1 数据类型 [not null] [默认值],

          字段名2 数据类型,

          字段名3 数据类型

        );

      例如:

        create table student

        (

          stu_num int auto_increment,  //自增量

          stu_name char(10) not null,

          stu_gender char(2),

          stu_score int,

          primary key(stu_num),  //主键

          foreign key(stu_name) references anotherTable_name(stu_name)  //外键

        );

      2.2 常用约束

          主键约束: primary key(字段名);  //或在定义字段时直接在后面追加 primary key

        外键约束: foreign key(字段名) references 表名(字段名);

        非空约束: 字段名 数据类型 not null

        唯一性约束: 字段名 数据类型 unique

        默认约束: 字段名 数据类型 default 默认值

        自增量: 字段名 数据类型 auto_increment  //默认初始值为1,增量为1;如需从100开始,可以设置为auto_increment=100

      2.3 修改表

        alter table 旧表名 rename 新表名  //修改表名

        alter table 表名 modify 字段名 数据类型;  //修改字段数据类型

        alter table 表名 change 旧字段名 新字段名 新数据类型  //修改字段名

        alter table 表名 add 新字段名 数据类型  //添加字段

        alter table 表名 drop 字段名  //删除字段

        alter table 表名 AUTO_INCREMENT=100  //设置自增量初始值为100

       2.4 删除表

        drop table [if exist] 表名;

    三、CRUD增删改查操作

    3.1 数据插入-Insert

      1. 插入单条记录

        insert into 表名(字段名,字段名,字段名)  //当插入所有字段时,字段名可以省略

        values('值1','值2','值3');

      2. 插入多条记录

        insert into 表名(字段名,字段名,字段名)

        values('值1','值2','值3'),

          ('值1','值2','值3'),

          ('值1','值2','值3');

      3. 插入一个查询结果

        insert into 表名()

        select xxx  //返回值个数应和需插入字段个数相同

        from xxx

    3.2 数据删除-Delete

      delete from student(表名)

      where name='zs'; 


    3.3 数据修改-Update

      update student(表名)

      set score=90

      where name='zs';

    3.4 数据查询-select

      1. 模式

        select number,name,score

        from student

        where age>20

        group by 字段名[字段名,字段名,字段名]  //一个或多个字段名

          having <条件表达式>    //分组后的条件

        order by 字段名 [ASC|DESC],字段名[ASC|DESC];  //默认升序

      2. 常用聚合函数

        count(*)     //计算记录个数

        count(字段名)  //对一列中的值计算个数

        sum(字段名)   //求一列值得总和(数值型数)

        avg(字段名)    //求一列值得平均值(数值型数)

        max(字段名)    //求一列值得最大值

        min(字段名)    //求一列值得最小值

    四、视图的创建

        create view view_name(字段名,字段名,字段名)

        as <select查询语句>

      例如:

        create view stu_sub(stu_num,stu_name)  //创建视图

        as select stu_num,stu_name

          from student;

        drop view stu_sub;  //删除视图



    五、触发器

        create trigger trigger_name  //创建触发器

        on table(表名)

        for insert|delete|update

        as <sql_statement>(sql语句)

      例如:

        create trigger student_backup  //学生备份表随学生表的改变而改变

        on student        

        for insert,delete,update

        as

        begin

          if((select count(*) from deleted) > 0)

          begin

            delete from student_backup

            where stu_name in(select stu_name from deleted)

          end

          if((select count(*) from inserted) > 0)

          begin

            insert into student_backup

            select *

            from inserted

          end

        end

           

    六、事务

      6.1 事务四大特性

        原子性;

        一致性;

        隔离性;

        持久性。

      6.2 事务隔离级别

        赃读:一个事务A读取另一个事务B未提交的数据;

        不可重复读:一个事务A读取另一个事务B提交后的数据(update);

        虚读(幻读):一个事务A读取另一个事务B插入的数据(insert),前后不一致。

        以上情况均为事务A已开启,但未提交时发生!

        四个级别:

        1* read uncommitted :赃读,不可重复读,虚读都有可能发生;

        2* read commited :避免赃读。不可重复读,虚读都有可能发生;

        4* repeatable read :避免赃读,不可重复读。虚读有可能发生;

        8* serializable :避免赃读,不可重复读、虚读;

        级别越高,安全性越高,性能越差!

       6.3 查看和设置事务级别

        查看当前事务隔离级别:select @@tx_isolation;  //dos命令

        设置事务隔离级别:set transaction isolation level 四个级别之一;  //dos命令

        设置隔离级别,必须在开启事务之前!

        

        

  • 相关阅读:
    Django实现自定义template页面并在admin site的app模块中加入自定义跳转链接(一)
    yaml中的锚点和引用
    Kafka查看topic、consumer group状态命令
    手把手教你写一个脚手架
    可视化拖拽组件库一些技术要点原理分析(三)
    《带你入门前端工程》开源了
    可视化拖拽组件库一些技术要点原理分析(二)
    实验 7: OpenDaylight 实验——Python 中的 REST API 调用
    实验 6:OpenDaylight 实验——OpenDaylight 及 Postman 实现流表下发
    实验 5:OpenFlow 协议分析和 OpenDaylight 安装
  • 原文地址:https://www.cnblogs.com/guoxh/p/6535885.html
Copyright © 2020-2023  润新知