首页 > 数据库 >MySql的学习

MySql的学习

时间:2022-10-16 14:55:23浏览次数:53  
标签:事务 -- 数据库 表名 mysql 学习 MySql TABLE

1:什么是数据库:用来存储数据,管理数据 (DB DataBase)

2:数据库的分类

  (1)关系型数据库:MySql,SqlServer,DB2,就是表和表之间,行和列之间的关系进行数据存储

  (2)非关系型数据库:json字符串,一般通过键值对的方式存储,Redis,MongDBM,通过对象的属性存储

3:什么是DBMS?:关系型数据库管理系统

4:MySql的简介:是一个关系型数据库管理系统,前世是瑞典MySqlAB公司,现在属于Oracle下的产品,MySql是最好的RDBSM(Relation Database Management System),体积小,速度快。

5:MySql的安装教程:摘抄自:https://blog.csdn.net/qq_59636442/article/details/123058454(比较全面)(注意:在安装之前确保电脑已经卸载干净mysql,否则会出现安装不成功的情况)

6:基本命令行的

  (1)mysql -uroot -p:查看mysql的版本,输入命令后会让你输入密码,然后链接上mysql

  (2)show databases;查看所有的数据库,注意分号必须加上

  (3)切换数据库 use school:切换到school数据库

  (4)show tables:查看数据库中所有的表

  (5)describe student :查看当前表的所有信息

  (6)exit;退出链接

7:操作数据库

  (1)创建数据库的命令:CREATE DATABASE if NOT EXISTS web :创建一个web数据库

  (2)删除数据库的命令:DROP DATABASE if EXISTS web:删除数据库web

   (3)查看所有的数据库:show databases

8:列的数据类型的详细讲解(必须)

  (1)数值类型

    tinyint:十分小的数据,1个字节

    smallint:较小的数据,2个字节

    mediumint:中等大小的数据,3个字节

    int:标准的整数,4个字节(常用)--对应java中的int

    bigint:较大的数据 8个字节

    float:浮点数 4个字节

    double:浮点数,8个字节

    decimal:字符串形式的浮点数类型,金融计算的业务一般用这个

  (2)字符串类型

    char:字符固定大小的0-255

    varchar:可变的字符串,大小0-65535--对应java中的String

    tinytext:微型文本:2^8-1

    text:文本串 2^16-1

  (3)时间日期(java中的是java.util.Date)

    date:YYYY-MM-DD:时间格式

    time:HH:MM:SS:时间格式

    datetime:YYYY-MM-DD HH:MM:SS:最常用的时间格式

    timestamp:时间戳,1970.1.1到现在的毫秒数

    year:年份的表示

  (4)null:空,不要使用null进行运算

9:简单的建表语句

CREATE TABLE
IF
    NOT EXISTS `op` (
        `id` INT ( 4 ) NOT NULL AUTO_INCREMENT COMMENT '学号',
        `name` VARCHAR ( 30 ) NOT NULL DEFAULT '匿名' COMMENT '姓名',
        `age` VARCHAR ( 20 ) NOT NULL DEFAULT '10' COMMENT '年龄',
    PRIMARY KEY ( `id` ) 
    )

 创建表的公式:

CREATE TABLE [IF NOT EXISTS]     `表名`(
    `字段名` 列类型 [属性] [索引] [注释],
    `字段名` 列类型 [属性] [索引] [注释],
)[表的类型][表的字符集]

 10:MyISAM和InnoDB的区别:(数据库的引擎)

  (1):InnoDB:是mysql默认使用的引擎,支持事务,支持数据行锁定,支持外键约束,不支持全文索引,表的空间较大

  (2):MySAM:早期使用的,在mysql5.0版本以前使用的引擎,不支持事务,不支持数据行锁定,不支持外键约束,支持全文索引,表的空间大小

总结:MyISAM节约空间,速度较快,InnoDB:安全性高,支持事务的处理。

11:修改表和删除表字段的sql语句

-- 修改表名:ALTER op 旧表名 RENAME AS 新表名
ALTER TABLE op RENAME AS op1
-- 增加表的字段 ALTER TABLE 表名 ADD moneny INt(11) 列属性
ALTER TABLE op1 ADD money INT(11)
-- 修改表的字段(重命名,修改表的约束)
ALTER TABLE op1 MODIFY money VARCHAR(11)  -- 修改约束
ALTER TABLE op1 CHANGE money money1 INT(1) -- 重命名
-- 删除表的字段
ALTER TABLE op1 DROP money1

12:数据库表中的外键:外键在数据库中的作用主要是起一个约束的作用,建立两个表之间的关系,外键表示一个表中的字段被另外一个表中的一个字段引用,

13:DDML语言(增删改)

  (1)添加语句

-- INSERT INTO 表名 ('字段1','字段2','字段3') VALUES('值1','值2','值3')
-- 插入多条数据 INSERT INTO 表名 ('字段1','字段2','字段3') VALUES ('值1','值2','值3'),('值1','值2','值3')

  (2)修改语句

-- UPDATE 表名 SET '字段名1' = '值1','字段名2'='值2' WHERE id = '1' 修改id为1的数据,修改的sql语句记得加条件

  where:条件运算符,大于等于小于,在某个区间中即可

  (3)删除语句

-- DELETE FROM 表名 where id = '1'

 TRUNCATE和delete的区别

  (1)TRUNCATE:截断表会重新设置自增列,计数会归零,不会影响事务

  (2)delete的删除问题:当用delete删除表的时候,重新启动数据库,如果是InnoDB:自增会从1开始(因为他是存在内存中的,断电即失),MyISAM:继续从上一个增量开始,因为他是存在文件中的,不会失去

14:DQL(数据库中的重点)

-- SELECT * FROM '表名' as 别名
mysql中常见的函数:
    concat(a,b):链接字符串的函数
    DISTINCT:去重,去除select查询结果中重复的数据 例如:select DISTINCT '字段名' from table
    and(&&):逻辑与(两个为真,结果为真)
    ||(or):逻辑或(一个为真结果为真)
    not(!):逻辑非(取反,真即假)
模糊查询
  like关键字:a like b,like结合%(表示0-任意个字符)_(表示一个字符)
  in:表示在一个范围内 a in (a1,a2,a3)
连表查询

 15:mysql中常用的聚合函数

 16:mysql中的事务(要么都成功,要么都失败)

  (1)事务的ACID,原子性,一致性,隔离性,持久性

  原子性:事务的原子性必须是一个原子的操作序列单元,事务中包含各项操作在一次执行过程中,只允许出现全部成功执行或者全部不执行

  一致性:事务的一致性是指事务的执行不能破坏数据库的完整性和一致性,一个事务在执行前和执行后,数据库都必须保证一致性

  隔离性:事务的隔离性发生在并发环境中,并发的事务是相互隔离互不干扰的,一个事务的执行不能被其他事务干扰。

  持久性:事务的持久性也被称为永久性,是指一个事务一旦提交,它对数据库中对应的数据的更新状态变更就是永久性的。一旦事务成功结束,那么它对数据库所做的更新都会被用久保存下来。

 

标签:事务,--,数据库,表名,mysql,学习,MySql,TABLE
From: https://www.cnblogs.com/xst0716/p/16696860.html

相关文章

  • C语言基础学习1
    //day1!!!!!#define_CRT_SECURE_NO_WARNINGS1#include<stdio.h>//意思是包含stdio.h里面的头文件包含输入输出里面的函数intmain(){printf("hellowwold.\n");//pri......
  • 计算机小白开启自己的学习历程
    我是一个计算机小白,但是有时候就是这样自己越不了解的东西越想去尝试学习,今天是我学习C语言的第一天,希望自己能坚持下去,坚持不断学习的道路!最终希望自己找到属于自己开阔的......
  • navicat连接mysql数据库提示失败,提示2059错误
    Navicat连接数据库失败,提示2059错误,如下图参考资料发现使用的数据库版本是mysql8版本,不是mysql5.7版本MYSQL新版本(8以上版本)的用户登录账户加密方式是【caching_sha2_passwo......
  • java学习笔记36
    面向对象super详解子类调用父类的方法与属性packageoopzong.oop.oop4;​publicclassApplication{  publicstaticvoidmain(String[]args){    Stud......
  • Python MySQL_基础01
    01.示例:使用Python创建MySQL数据库#1.首先创建一个cursor(),然后将SQL命令作为字符串传递给execute()方法importmysql.connectordataBase=mysql.connector.......
  • 信息安全系统设计与实现学习笔记7
    一、知识点归纳以及自己最有收获的内容1、知识点归纳第4章并发编程1、并行顺序算法——begin-end包含多个步骤,通过单个任务依次执行,每次执行一个步骤并行算法—......
  • 20201322陈俊池学习笔记7
    第四章并发编程4.1并行计算导论在早期,大多数计算机只有一个处理组件,称为处理器或中央处理器(CPU)。受这种硬件条件的限制,计算机程序通常是为串行计算编写的。要求解某个......
  • 2022-2023-1 20221408《计算机基础与程序设计》第七周学习总结
    第七周学习总结作业信息这个作业属于哪个课程:https://edu.cnblogs.com/campus/besti/2022-2023-1-CFAP这个作业的要求在哪里:https://www.cnblogs.com/rocedu/p/9577842......
  • 【MySQL】实战教程笔记
    序言感谢林晓斌老师,感谢他的教程:https://funnylog.gitee.io/mysql45/MySQL的基础架构主要分为两层服务层连接器:管理连接,验证权限。尽量使用长连接查询缓存:对一个表......
  • Mysql单表访问方法,索引合并,多表连接原理,基于规则的优化,子查询优化
    参考书籍《mysql是怎样运行的》非常推荐这本书,通俗易懂,但是没有讲mysql主从等内容书中还讲解了本文没有提到的子查询优化内容,本文只总结了常见的子查询是如何优化的系......