MySQL数据库的知识点

这篇博客详细介绍了MySQL数据库的使用,包括SQL语言的基础、数据类型、创建数据库和表、各种运算符、插入、更新和删除记录、多表查询及实战练习。内容涵盖了数据表的创建、DDL、DML和DCL,以及各种查询操作,如内连接、外连接和子查询。此外,还讨论了MySQL的性能、权限控制和不足之处。
摘要由CSDN通过智能技术生成

数据库MySQL
适用于中小型企业,MySQL数据库适合搭集群,单独拿一台MyCat出来管理许多子数据库
通俗地讲,数据库就是把一些数据整合到一起,其实质还只存在硬盘里

SQL语句(Structured Query Language;结构化查询语言)— 掌握语句是重点

SQL是Structured Query Language(结构化查询语言)的缩写。SQL是专为数据库而建立的操作命令集,是一种功能齐全的数据库语言。在使用它时,只需要发出“做什么”的命令,“怎么做”是不用使用者考虑的。

SQL语言由3种语言组成:

  • 1、DDL - 表
  • 2、DML - 数据
  • 3、DCL - 权限

MySQL特征:

  • 性能快捷、优化SQL语言、
  • 容易使用、
  • 多线程 和 可靠性、
  • 多用户支持、
  • 可移植性 和 开发源代码,
  • 遵循国际标准 和 国际化支持、
  • 为多种编程语言提供API

MySQL的不足之处:
不能直接处理XML数据、一些功能上支持的不够完善和成熟、不能提供任何OLAP(实时分析系统)功能

数据库系统的使用:
在这里插入图片描述
数据库基础知识
数据库由一批数据构成的 有序集合,这些数据被分门别类地存放在一些结构化的 数据表(table)里,而数据表之间又往往存在交叉引用的关系,这种关系使数据库又被称为 关系型数据库

  • 档案柜 <==> 数据库

  • 抽屉 <==> 表

  • 文件 <==> 记录

数据库:
在这里插入图片描述
数据表:
在这里插入图片描述
数据在表中的存放:
在这里插入图片描述

  • 数据 —— DML语言 (Data Manipulation Language ;数据操作语言):
    增(insert)、删(delete)、改(update)、查(select)

  • 权限 —— DCL语言(Data Control Language ;数据控制语言):

    用来控制存储许可、存取权限
    GRANT、REVOKE

  • 表 —— DDL语言 (Data Definition Language; 数据定义语言)

    用来建立数据库,数据库对象和定义其列

00、MySQL中使用SQL语言几点说明

  • 属于一个SQL语句,使用分号(;)结尾,否则mysql认为语句没有输入完

  • 箭头(->)代表SQL语句没有输入完

  • 取消SQL语句使用 ( \c )

  • SQL语句 关键字函数名 不区分大小写(Linux区分,Windows不区分)

  • 使用函数时,函数名 和 后面的括号 之间不能有空格

    表的主键(PRIMARY KEY)、
    唯一性 (UNIQUE)、
    非空值约束(NOT NULL)、

一、数据类型种类

数值型 分为 整型浮点型

  • 字符串:

在这里插入图片描述

  • 日期和时间值

存储如“2005 -1-1” 或者“12:00:00”这样的数值的值。在MySQL中日期是按”年-月-日”的顺序。

  • NULL值

是一种无类型的值,表示“空,什么也没有”。

  • NULL 和 NOT NULL

默认为NULL,即插入值时没有在此字段插入值时自动填NULL,如果指定了NOT NULL,则必须在插入值时在此字段添入值,不允许插入NULL值。

  • DEFAULT

可以通过此属性来指定一个缺省值,即如果没有在此列添加值,那么默认添加 DEFAULT 后指定值。

  • ZEROFILL

前导零填充数值类型值以达到列的显示宽度。

举例:

create table  test2(num1 int default 1,num2 int zerofill);

在这里插入图片描述

  • 字符串列类型
    在这里插入图片描述
    1、CHAR 和 VARCHAR类型

CHAR类型 和 VARCHAR类型 长度范围都是0~255之间的大小。他们之间的差别在于MySQL处理存储的方式:

CHAR 类型 把这个大小视为值的准确大小(用空格填补比较短的值)。

VARCHAR 类型 把它视为最大值并且只使用了存储字符串实际上需要的字节数(增加了一个额外的字节记录长度)。

因而,较短的值当被插入一个语句为 VARCHAR类型 的字段时,将不会用空格填补(然而,较长的值仍然被截短 )。

在这里插入图片描述
2、BLOB 和 TEXT类型
BLOB是二进制的对象,如果想存储二进制数 BLOB 将是最佳选择,而 TEXT与之相同,只是BOLOB按照二进制编码排序(区分大小写),TEXT按照字符文本模式排序(不区分大小写)。

3、ENUM 和 SET类型
是特殊的串类型,其列值必须从固定的串集中选择,二者差别为前者必须是只能选择其中的一个值,而后者可以多选。(不推荐使用)

二、字符串列类型的可选属性

  • BINARY
    使用此属性可以使列值作为二进制串处理,即看成BLOB类型。

  • NULL 和NOT NULL
    同数值型功能相同

  • DEFAULT
    同数值型功能相同
    在这里插入图片描述
    在这里插入图片描述

说明:
每个时间和日期列类型都有一个零值,当插入 非法数值 时就用 零值 来添加
表示日期时必须先按:年,月,日的顺序给出

DATE ,TIME ,DATETIME 分别是存储日期,时间与日期和时间的组合,其格式为“YYYY-MM-DD”,“hh:mm:ss” 和 “YYYY-MM-DD hh:mm:ss”,对于 DATETIME类型,日期和时间部分都需要

TIMESTAMP
时间戳列类型以YYYYMMDDhhmmss的格式来表示值,其取值范围是19700101000000到2037年的某个时间,主要用于记录更改或创建某个记录
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
---------------------------------------------------------------------DDL-------------------------------------------------------------------------------------------------------------

三、创建数据库操作 ・DDL

建立数据库操作:
语法:create database 数据库名
叙述:创建一个具有指定名称的数据库。如果要创建的数据库已经存在,或者没有创建它的适当权限,则此语句失败。

例:建立一个student库。

mysql> create database student;

1.创建表

查询—>新建查询

建立表操作:

语法:

create table 表名(
列名1  列类型  [<列的完整性约束>],
列名2  列类型  [<列的完整性约束>], 
... ...);

叙 述:在当前数据库下新创建一个数据表。

列类型:表示该列的数据类型。

例:
建立一个表 school, 其由两列组成,第一列属性为非空,并做为主键,并自增

create table school(
  school_id  int(10) not null auto_increment primary key,
  school_name varchar(20) 				
);

   CREATE TABLE stu(
   Sno INT(4) PRIMARY KEY AUTO_INCREMENT,    #“4”表示学号类型
   Sname VARCHAR(20) UNIQUE,      #“20”表示字节长
   Ssex VARCHAR(4),               #“4”也表示字节长
   Sbirthday datetime,
   Stel VARCHAR(30)
   )

常见完整性约束:

PRIMARY  KEY 	            主码约束(主键)

UNIQUE						 唯一性约束

NOT  NULL				     非空值约束		
	
AUTO_INCREMENT	         用于整数列默认自增1

UNSIGNED                     无符号整数

DEFAULT default_value		默认值约束

DEFAULT cur_timestamp      创建新记录时默认保存当前时间(仅适用timestamp数据列)

ON UPDATE cur_timestamp     修改记录时默认保存当前时间(仅适用timestamp数据列)

CHARACTER SET name          指定字符集(仅适用字符串)

数据表类型:
在创建一个新的MySQL数据表时,可以为它设置一个类型,其中最重要的 3种类型

MyISAM:成熟、稳定和易于管理

InnoDB:加入事物、数据行级锁定
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值