
mysql基础
catch_dreamer
这个作者很懒,什么都没留下…
展开
-
在Linux系统下mysql无法插入中文的解决方法
1、首先用以下命令查看mysql的编码输入show variables like %character%;来查看mysql的编码,这里的编码为utf-8,如下:2、修改表的编码在创建表格时将表格的编码设置为mysql的编码即可,这里设置为utf8,如果表格已经创建,则通过修改表选项的方法修改相应编码即可。创建表时直接修改编码命令:create table tableName(字段)charset utf8;修改表选项的方法修改表的编码命令:``````alter table tableNa原创 2020-10-12 10:40:01 · 1929 阅读 · 0 评论 -
十一、mysql中数据表的字段(列)的属性(约束)详解
1、列属性定义及分类列属性:真正约束字段的是数据类型,但是数据类型的约束很单一,所以需要一些额外的约束,来更加保证数据的合法性。列属性主要分为:null/not null、default、primary key、unique key、auto_increment、comment。下面依次进行介绍。2、null和not null属性虽然数据库在插入数据时(当使用插入特定字段的数据时),其他字...原创 2019-10-21 13:57:52 · 3204 阅读 · 0 评论 -
十、mysql数据库中数据表的数据类型——字符串类型
在SQL中,将字符串总共分为了6类,分别为:(char,varchar,text,blob,enum,set),具体情况如下:1、定长字符串(char)定长字符串(char)在定义的时候,就已经确定了该数据在磁盘存储的长度。char(n):n代表长度length,即字符串的长度,最大长度可以为255,例如:在utf8编码环境下,存储char(4)这种类型的数据,需要4*3=12个字节的空间...原创 2019-10-20 21:56:29 · 3033 阅读 · 0 评论 -
九、mysql数据库中数据表的数据类型——时间日期类型
1、时间日期类型的各种细分datetime:格式:YYYY-mm-dd HH:mm:ss;可以取0;可以表示的范围从1000-01-01 00:00:00到9999-12-31 23:59:59 。date:日期,就是datetime中的date部分,范围为1000-01-01到9999-01-01。time:时间,也就是datetime中time的部分,从00:00:00到23:59:5...原创 2019-10-20 19:21:38 · 3863 阅读 · 0 评论 -
八、mysql数据库中数据表的数据类型——数值类型
所谓的数据类型,即是对数据进行统一的分类,从系统的角度出发,为了能够使用统一的方式进行管理,更好的利用有限的空间。SQL中将数据大体分为三种类型:数值类型、时间日期类型和字符串类型。1、整型在SQL中要更多的节省磁盘空间,所以又将整型细分为了5个类型,分别如下:tinyint:使用1个字节存储,范围为-128~127smallint:使用2个字节存储,范围为-32768-32767m...原创 2019-10-20 18:04:57 · 978 阅读 · 0 评论 -
七、mysql在某些情况下插入数据时引起的乱码问题及校对集
1、中文数据的乱码问题中文数据乱码的问题本质是字符集的问题,字符集指的是二进制与字符的对应关系。案例:环境(编码为gbk(windows默认编码)的cmd窗口下),插入中文数据insert into student values(4,'六子','男');,此时就可能会出现错误(如插入的汉字字符变为了字节码),这是由于客户端和mysql服务端的编码不一致引起的,解决方案如下:查看mysql服...原创 2019-10-20 15:16:14 · 196 阅读 · 0 评论 -
六、mysql中关于表中数据的基本操作
mysql中关于数据的基本操作有增、删、改、查四类,下面依次介绍1、新增数据新增数据有两种情况,一是给全表字段添加数据,而是给表的部分字段添加数据,下面分别来看:一、给全表字段插入数据的基本语法:insert into 表名 values(值1,...,值n),...,(值1...,值n);实例:insert into student values(1,'李华);注:此语法中,不需要指定...原创 2019-10-20 14:10:18 · 182 阅读 · 0 评论 -
五、mysql中关于数据表的常用操作
对于mysql数据表来讲,主要的基本及常用操作分为增、查、改、删四个方面,下面依次进行说明。1 新建数据库表(表与字段密不可分) >基本语法:create table [if not exists] 表名( 字段名 类型 [约束条件], ..., 字段名 类型 [约束条件] )[...原创 2019-10-20 13:23:43 · 192 阅读 · 0 评论 -
四、删除数据库操作
删除指定的数据库 >删除数据库的基本语法:drop database 数据库名; >实例:删除mx数据库 >执行删除数据库语句时...原创 2019-10-18 20:47:50 · 334 阅读 · 0 评论 -
三、查看和更新数据库的方法
1、查看数据库相关的信息的语法1 查看所有数据库 基本语法:show databases; 实例:2 使用某个数据库 在mysql中,除了创建数据库的操作外,必须要先进入到某个具体的数据库,才可以进行创建表等其它的一系列操作。  ...原创 2019-10-18 11:47:31 · 580 阅读 · 0 评论 -
二、mysql中新建数据库语法及解析
1、增加/新建数据库(基本语法):create database 数据库名 [库选项];,其中库选项主要分为两个方面:字符集设定和校对集设定,具体情况如下: >字符集设定:charset/ character set,具体的字符集有gbk和utf8 等; >...原创 2019-10-17 13:04:20 · 467 阅读 · 0 评论 -
一、数据库理论基础
1、数据库的定义 数据库是长期存储在计算机内、有组织的、可共享的大量数据的集合。 数据库中的来讲具有永久存储、有组织和可共享三个基本特点。2、数据库的分类 &...原创 2019-10-16 22:57:00 · 3363 阅读 · 0 评论 -
十二、mysql中索引的简单介绍及各种索引的创建和删除
1、几乎所有的索引都是建立在字段之上,索引指的是系统根据某种算法,将已有的数据(未来可能新增的数据),单独建立一个文件,文件能够实现快速匹配的数据,并且能够快速的找到对应表中的记录。2、索引的意义:提高查询数据的效率,约束数据的有效性(唯一性等)3、增加索引的前提条件索引本身会产生索引文件(该文件有时可能比数据文件本身还要大),会非常耗费磁盘空间。如果某个字段需要作为查询的条件经常使用,...原创 2019-10-21 21:42:37 · 150 阅读 · 0 评论 -
十三、数据表(表中记录)之间的关系简介
1、关系在数据库的设计中,一张表是一个实体,而关系指的就是表与表的记录之间的关系,需要注意的是,关系指的是表间记录的关系,不能用于同一张表内的记录的描述。关系分为3大类,主要有:一对一,一对多(多对一)、多对多;下面依次介绍。2、一对一一对一指的是一张表中的一条记录只对应于其他表中的一条记录,而其他表中的一条记录,在本表中也只对应一条记录。3、一对多(多对一)一张表中有一条记录可以对应...原创 2019-10-21 21:57:02 · 2416 阅读 · 0 评论 -
十四、范式(简介及三大范式)及逆规范化
1、范式的基本理论1 范式的定义范式(Normal Format)是离散数学中的一种知识,是为了解决数据的存储与优化的问题;保存数据之后,凡是能够通过关系寻找出来的数据,坚决不再重复存储,终极目标是为了减少数据的冗余。范式是一种分层结构的规范,共分为六层,每一层都比上一层更加严谨(本文只介绍三种范式),若要满足下一层范式的前提是要满足上一层范式。2 六层范式以及范式对于数据库设计的指导1...原创 2019-10-21 22:59:07 · 2163 阅读 · 0 评论 -
二十六、数据库事务的隔离级别及带来的问题
一般来讲,数据库包括以下四种隔离级别:读未提交(Read Uncommitted)读提交(Read Committed)可重复读(Repeated Read)串行化(Serializable)各种隔离级别的定义1、Read Uncommitted:最低的隔离级别。一个事务可以读取另一个事务并未提交的更新结果。注: 如无特殊情况,基本是不会使用这种隔离级别的。2、Read Com...原创 2019-10-24 20:33:31 · 450 阅读 · 0 评论 -
三十一、mysql的存储过程
1、存储过程的创建存储过程的定义: 存储过程简称过程,procedure,是一种用来处理数据的方式,存储过程可以被理解为是一种没有返回值的函数。创建存储过程的基本语法: delimiter $$ create procedure 过程名字(参数列表) begin 过程体; //如果过程之中需要显示数据,用select即可 end $$ del...原创 2019-10-25 16:59:38 · 181 阅读 · 0 评论 -
三十、SQL中的函数
1、系统函数原创 2019-10-25 13:09:02 · 203 阅读 · 0 评论 -
二十九、SQL中的if分支和while循环
代码执行结构有三种:顺序结构、分支结构、循环结构;其中顺序结构太过简单,这里不做介绍,主要介绍分支和循环结构。1、if分支分支结构: 事先准备多个代码块,按照条件选择性执行某段代码if分支的基本语法:附:在mysql中,只有if分支 if 条件判断 then 执行体; else 执行体; end if;实例: 触发器结合if分支,判断商品库存...原创 2019-10-24 22:31:40 · 731 阅读 · 0 评论 -
二十八、触发器
1、触发器简介触发器定义: 触发器(trigger)是指事先为某张表绑定好一段代码,当表中的某些内容发生改变的时候,系统会自动触发代码、执行;触发器的组成部分: 事件类型,触发时间,触发对象事件类型的分类: 增(insert)、删(delete)、改(update)三种类型;触发时间的分类: 前(before)、后(after)触发对象: 表中的每一条记录(行)注: 一张表中只能拥...原创 2019-10-24 22:07:30 · 276 阅读 · 0 评论 -
二十七、SQL中的变量(SQL编程基础)
变量分类: 和大部分编程语言一样,SQL中的变量总的分为系统变量和自定义变量。系统变量定义: 系统定义好的变量,大部分时候用户根本不需要使用系统变量,系统变量是用来控制服务器的表现的,如:autocommit、auto_increment等;查看系统变量的方法: show variables [like 'patterns'];//经查看总的系统变量有三百多个。其中,like部分和show ...原创 2019-10-24 21:03:57 · 468 阅读 · 0 评论 -
二十五、数据库事务
事务的定义: 事务(transaction)是一系列要发生的连续的操作的集合事务安全的定义: 一种连续操作同时满足(实现)的一种机制事务安全的意义的定义: 事务安全的意义是保证数据操作的完整性事务操作的分类: 事务操作分为两种,为自动事务(默认的)和手动事务,下面会详细介绍。1、手动操作(事务操作)手动事务操作流程开启事务:告诉系统以下所有的操作(写)不要直接写入到数据表,先存放到...原创 2019-10-24 19:49:43 · 189 阅读 · 0 评论 -
二十四、mysql数据备份与还原
数据表备份与还原备份: 将当前已有的数据或者记录保留。还原: 将已经保留的数据恢复到对应的表中。做备份和还原的原因:防止数据丢失 被盗、误删除等保护数据记录数据备份还原的方式有: 数据表备份、单表数据备份、SQL备份、增量备份。数据表备份定义: 不需要通过SQL来备份,直接进入到数据库文件夹复制对应的表结构及数据文件,以后还原的时候,直接将备份的内容放进去即可。数据表备份有前...原创 2019-10-24 18:22:22 · 127 阅读 · 0 评论 -
二十三、视图——二
本部分主要讲通过视图去修改源表中的数据的方法以及这种修改方式的一些限制,这里主要从以下几个方面进行详细说明。1、通过视图向源表中插入数据在视图中对源表数据新增就是直接对视图进行数据新增;基本语法: insert into 视图名[(字段名列表)] values(值列表);实例://通过head_master_view视图向其基表class中插入数据(其中class表中有两个字段,一个为i...原创 2019-10-24 17:32:45 · 210 阅读 · 0 评论 -
二十二、视图——一
1、视图的创建视图的定义: view是一种有结构(有行有列),但是没结果(结构中不真实存放数据)的虚拟表,虚拟表的结构来源不是自己定义,而是从对应的基表中产生(视图的数据来源)。创建视图的基本语法:create view 视图名 as select语句;创建视图实例: 创建两个视图,一个基于单表,一个基于多表1、单表:create view computer as select id,c...原创 2019-10-24 15:23:05 · 219 阅读 · 0 评论 -
二十一、SQL语句的执行顺序以及mysql中SQL的执行顺序(附加)
1、SQL语句的执行顺序SQL语句的执行顺序如下所示:from 子句on 子句join 子句where 子句group by(可以开始使用select中的别名,以下步骤自然也可以使用)统计函数(如:avg,sum等)having 子句select 关键字部分distinct 子句order by 子句从以上顺序中不难发现,所有的查询语句都是从from开始执行的,在执行过程...原创 2019-10-24 13:46:07 · 277 阅读 · 0 评论 -
二十、子查询
1、子查询的定义及分类定义: 子查询(sub query)是指总的查询是在某个结果之上进行的查询,即是一条select语句内部包含了另外一条select语句。分类的方法: 子查询可以按照两种方式进行分类,分别为按子查询语句在外部查询语句的位置分类、按子查询查询的结果分类;按照子查询语句的位置分类:from子查询:子查询跟在from之后where子查询:子查询跟在where之后exi...原创 2019-10-24 11:43:20 · 248 阅读 · 0 评论 -
十九、mysql联合查询
1、联合查询基础定义: 将多次查询(多条select语句)在记录上进行拼接(字段不会增加)的查询即是联合查询基本语法: select 语句1 union [union选项] select 语句2 union [union选项] .... select 语句n;注: 多条select语句构成,每一条select语句获取的字段数必须严格一致(但是字段类型...原创 2019-10-23 22:48:26 · 264 阅读 · 0 评论 -
十八、数据表中的外键及其相关操作
1、新增外键(foreign key)外键的定义如果一张表中有一个字段(非主键)指向另外一张表的主键,那么将该字段称之为外键。新增外键的方法可以在创建表或者在创建好之后进行新增,但是要考虑到数据的问题,如果再创建表且表中已有数据之后新增,那么想要作为主键的字段中就不能有重复数据或者null。新增外键的方法一: 创建表的时候增加外键foreign key(外键字段) references...原创 2019-10-23 22:01:06 · 1288 阅读 · 0 评论 -
十七、mysql中对于数据表中记录/数据的一些中级操作三
1、limit子句limit子句是一种限制结果的语句(本质上是限制数量);该语句主要有两种使用方式:1、用来限制长度,即数据量(比如查询多少条记录或者更新多少条记录等)基本语法:limit n表示取出n条数据实例:查询前3个学生的信息2、限制起始的位置和数量(长度),比如从第2个开始,找出后面连续的3个基本语法:limit n,m从n开始,找m个数据,需要注意的是,n从0开始,也就是...原创 2019-10-23 11:58:39 · 165 阅读 · 0 评论 -
十六、mysql中对于数据表中记录/数据的一些中级操作二
1、数据源数据源定义及分类数据源即指数据的来源,在select语句中体现的就是from后面的部分;在关系型数据库中,其数据源就是数据表,本质上只要保证数据类似二维表,最终都可以作为数据源;数据源分为多种:单表数据源、多表数据源、查询语句。各种数据源的示例及语法1、单表数据源:select * from 表名;2、多表数据源:select * from 表名1,表名2,....,表名n;...原创 2019-10-23 09:54:37 · 306 阅读 · 0 评论 -
十五、mysql中对于数据表中记录/数据的一些中级操作一
mysql中,对于数据基本的增删改查前面(https://blog.youkuaiyun.com/catch_dreamer/article/details/102648209)已经介绍过了,本节介绍一些关于数据的增删改查的较高级(中级操作)。1、高级数据新增(主键冲突)基本语法:insert into 表名[(字段1,...,字段n)] values(字段1,...,字段n);主键冲突:想要插入的数...原创 2019-10-22 21:21:06 · 272 阅读 · 0 评论