> 文章列表 > 15天计划学习MySQL(基础篇)--第一天

15天计划学习MySQL(基础篇)--第一天

15天计划学习MySQL(基础篇)--第一天

黑马MySQL学习笔记

1.了解MySQL

1.什么是数据库

英文单词DataBase,简称DB。按照一定格式存储数据的一些文件的组合。
顾名思义:存储数据的仓库,实际上就是一堆文件。这些文件中存储了具有特定格式的数据。

2.什么是SQL

SQL:结构化查询语言
程序员需要学习SQL语句,程序员通过编写SQL语句,然后DBMS负责执行SQL语句,最终来完成数据库中数据的增删改查操作。

3.关于SQL语句的分类

SQL语句有很多,最好进行分门别类,这样更容易记忆。
分为:

DQL:数据查询语言(凡是带有select关键字的都是查询语句)select...
DML:数据操作语言(凡是对表当中的数据进行增删改的都是DML)insert delete updateinsert 增delete 删update 改这个主要是操作表中的数据data。DDL:数据定义语言凡是带有create、drop、alter的都是DDL。DDL主要操作的是表的结构。不是表中的数据。create:新建,等同于增drop:删除alter:修改这个增删改和DML不同,这个主要是对表结构进行操作。TCL:不是王牌电视。是事务控制语言包括:事务提交:commit;事务回滚:rollback;DCL:是数据控制语言。例如:授权grant、撤销权限revoke....

4.什么是MySQL

	MySQL是数据库管理系统中的一种,是市面上最流行的数据库管理软件之一MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。MySQL是一种关系型数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语言。MySQL 软件采用了双授权政策,分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型和大型网站的开发都选择 MySQL 作为网站数据库。

5.SQL通用语法

  • SQL语句可以单行或多行书写,以分号结尾。
  • SQL语句可以使用空格/缩进来增强语句的可读性
  • MySQL数据库的SQL语句不区分大小写,关键字建议使用大写
  • 注释
    • 单行注释:–注释内容或#注释内容(MySQL特有)
    • 多行注释:/* 注释内容 */

2.MySQL数据类型和操作符

1.数据类型简介

数值数据类型:TINYINT 、SMALINT 、MEDIUMINTINTBIGINTFLOATDOUBLEDECIMAL
日期/时间类型:YEARTIMEDATEDATETIMETIMESTAMP
字符串类型:CHARVARCHARBINARYVARBINARYBLOBTEXTENUMSET

2.数据类型

1.整数类型
类型说明 存储需求 有符号的取值范围 无符号的取值范围
tinyint 1字节 -128-127 0~255
smallint 2字节 -32768-32767 0~65535
mediumint 3字节 -8388608-8388607 0~16777215
int 4字节 -2147483648-2147483647 0~4294967295
bigint 8字节 -9223372036854775808 - 9223372036854775807 0~18446744073709551615
2.浮点型和定点型
类型说明 说明 存储需求 无符号的取值范围
float 单精度浮点型 4字节 3.402823466EE+38 ~ -1.175494251E-38
double 双精度浮点型 8字节 -1.7976931348623157E+308 ~ -2.2250738585072014E-308
decimal 压缩的严格定点数 M+2个字节 不固 定 不固定
3.日期/时间类型
类型说明 存储需求 日期格式 日期范围
year 1字符 YYYY 1901~2155
time 3字符 HH:MM:SS -838:59:59 ~ 838:59:59
date 3字节 YYYY-MM-DD 1000-01-01 ~ 9999-12-31
datetime 8字节 YYYY-MM-DD HH:MM:SS 1000-01-01 00:00:00 ~ 9999-12-31 23:59:59
timestamp 4字节 YYYY-MM-DD HH:MM:SS 1970-01-01 00:00:01 UTC ~ 2038-01-19 03:14:07 UTC
4.字符串类型
类型 说明 存储需求
char() 固定长度的文本字符串 M 字节,1 <= M <= 255
varchar() 可变长度的文本字符串 L+1 字节,在此 L <= M 和 1 <= M <= 255
tinytext 非常小的文本字符串 L+1 字节,在此 L < 2^8
text 小的文本字符串 L+2 字节,在此 L < 2^16
mediumtext 中等大小的文本字符串 L+3 字节,在此 L < 2^24
longtext 大的文本字符串 L+4 字节,在此 L < 2^32
enum 枚举类型,只有一个枚举字符串值 1 或 2 个字节,取决于枚举值的数目(最大值 65535)
set 一个设置,字符串对象可以有零个或所得set成员 1, 2, 3, 4 或 8 个字节,取决于集合成员的数量 (最多64个成员)
5.二进制字符串
二进制类型 说明 存储需求
bit(M) 位字段类型 大约(M+7)/8 个字节
binary(M) 固定长度的二进制字符串 M个字节
varbinary(M) 可变长度的二进制字符串 M+1个字节
tinyblob(M) 小的BLOB L+1 字节,在此 L < 2^8
blob(M) 小的BLOB L+2 字节,在此 L < 2^16
meidumblob(M) 中等大小的BLOB L+3 字节,在此 L < 2^24
longblob(M) 非常大的blob L+4 字节,在此 L < 2^32

3.操作符

1.算数运算符
运算符 作用
+ 加法
- 减法
* 乘法
/ 除法
% 求余
2.其他运算符
运算符 作用
= 等于
<=> 安全的等于
<> 不等于
> 大于
< 小于
>= 大于等于
<= 小于等于
is null 判断一个值是否为null
is not null 判断一个值是否不为null
least 当有两个或多个参数时,返回最小值
greatest 当有两个或多个参数时,返回最大值
between … and … 判断一个值是否落在两个值之间
in (值1,值2,值3) 判断一个值是否是in列表中的任意一个值
not in (值1,值2,值3) 判断一个值是否不是in列表中的任意一个值
like 通配符匹配
regexp 正则表达式匹配
3.逻辑运算符
运算符 作用
not或! 逻辑非
and或&& 逻辑与
or或|| 逻辑或
xor 逻辑异或
4.位运算符
运算符 作用
| 位或
& 位与
^ 位异或
<< 位左移
>> 位右移
         | 正则表达式匹配                         |
3.逻辑运算符
运算符 作用
not或! 逻辑非
and或&& 逻辑与
or或|| 逻辑或
xor 逻辑异或
4.位运算符
运算符 作用
| 位或
& 位与
^ 位异或
<< 位左移
>> 位右移
~ 位取反