MYSQL知识点

数据库概述

数据库与数据库管理系统

数据库(Database,DB)是指将大量数据保存起来,通过计算机加工而成的可以进行高效访问的数据集合。

而用来管理数据库的计算机系统称为数据库管理系统(Database Management System,DBMS)。

数据库管理系统的种类有:

层次数据库(Hierarchical Database,HDB):把数据通过层次结构(树形结构)的方式表现出来。

关系数据库(RDB):采用由行和列组成的二维表来管理数据,类似于 Excel 表。它使用专门的 SQL(Structured Query Language,结构化查询语言)对数据进行操作,这种类型的 DBMS 称为关系数据库管理系统(Relational Database Management System,RDBMS)。

面向对象数据库(OODB):把数据以及对数据的操作集合起来以对象为单位,面向对象数据库就是用来保存这些对象的数据库。

XML数据库(XMLDB):实现对 XML 形式的数据进行高速处理。

键值存储系统(KVS):单纯用来保存查询所使用的主键(Key)和值(Value)的组合

SQL:Structure Query Language。(结构化查询语言)

SQL的分类:

DDL数据定义语言

用来定义数据库对象:库、表、列等。包括创建表,修改表,删除表

有以下指令:

  • CREATE : 创建数据库和表等对象

  • DROP : 删除数据库和表等对象

  • ALTER : 修改数据库和表等对象的结构

DML数据操作语言

用来定义数据库记录:是对表中数据的操作。包括插入,更新,删除数据

有以下指令:

  • SELECT :查询表中的数据

  • INSERT :向表中插入新数据

  • UPDATE :更新表中的数据

  • DELETE :删除表中的数据

DCL数控制语言

用来定义访问权限和安全级别

有以下指令:

  • COMMIT : 确认对数据库中的数据进行的变更

  • ROLLBACK : 取消对数据库中的数据进行的变更

  • GRANT : 赋予用户操作权限

  • REVOKE : 取消用户的操作权限

DQL数据查询语言

用来查询记录(数据):只有SELECT语句

MySQL语句的基本书写规则

MySQL 语句以分号(;)为结尾,它的关键字、表名和列名不区分大小写,但是插入到表中的数据是区分大小写的。

数据库的名称只能使用小写字母。

字符串和日期常数需要使用单引号(')括起来(MySQL 也可以使用双引号(")),单词之间需要使用半角空格或者换行符进行分隔。

数字常数无需加注单引号,直接书写数字即可。

表的创建

1> 命名规范

只能使用半角英文字母、数字、下划线(_)作为数据库、表和列的名称, 名称必须以半角英文字母开头且不能重复。

2> 数据类型

所有的列必须指明数据类型,数据类型主要分为:数字型、字符型和日期型。细分来说,有以下数据类型:

名称类型说明

TINYINT 短整型范围为0~255

INT 整型4字节整数类型,范围约+/-21亿

BIGINT 长整型8字节整数类型,范围约+/-922亿亿

INTEGER 整数不能用来存放小数

REAL(FLOAT(24)) 浮点型4字节浮点数,范围约+/-1038

DOUBLE 浮点型8字节浮点数,范围约+/-10308

DECIMAL(M,N)(NUMERIC(M,N)) 高精度小数由用户指定精度的小数,例如,DECIMAL(20,10)表示一共20位, 其中小数10位,通常用于财务计算

CHAR(N) 定长字符串存储指定长度的字符串,例如,CHAR(100)总是存储100个字符的字符串,不足字符数要求的话使用半角空格补足,若未指定则默认为char(1)

VARCHAR(N) 变长字符串存储可变长度的字符串,例如,VARCHAR(100)可以存储0~100个字符的字符串

BOOLEAN 布尔类型存储True或者False

DATE 日期类型存储日期,例如,2018-06-22

TIME 时间类型存储时间,例如,12:20:59

DATETIME 日期和时间类型存储日期+时间,例如,2018-06-22 12:20:59

3> 约束

在定义每一列的时候,我们可以在最后为该列加上相关的约束,例如:

AUTO_INCREMENT 编号从1开始,并1为基数递增,每个表只允许一个 AUTO_INCREMENT 列,而且它必须被索引(如使它成为主键)

DEFAULT <数值> 为某列设置默认值,MySQL不允许使用函数作为默认值,它只支持常量

PRIMARY KEY 将某一列或某几列设置为主键

NOT NULL 该列不能插入空数据

COMMENT ‘<注释信息>’ 这不算是约束,用在列后对列进行注释说明

表的删除

①删除数据库

DROP DATABASE <数据库名称>;

②删除表

DROP TABLE <表名称>;

还有一种删除表的方法,先判断表是否存在,如果存在便删除:

DROP TABLE IF EXISTS <表名>;

③删除视图

DROP VIEW <视图名称>;

表的一些操作

添加列

ALTER TABLE <表名> ADD [COLUMN] <列的定义> ;

这里列的定义就是像创建表时列的定义一样。

删除列

ALTER TABLE <表名> DROP COLUMN <列名> ;

重命名列名

ALTER TABLE <表名> CHANGE COLUMN <旧列名> <新列的定义>;

定义外键

ALTER TABLE <表名1> ADD CONSTRAINT <约束名称> FOREIGN KEY (<表1列名>) REFERENCES <表名2> <表2列名>;

如果对单个表进行多个更改,可以使用单条 ALTER TABLE 语句,每个更改用逗号分隔。

重命名表名

RENAME TABLE <旧表名> TO <新表名>;

可以同时对多个表进行重命名:

RENAME TABLE <旧表名1> TO <新表名1>, <旧表名2> TO <新表名2>, <旧表名3> TO <新表名3>, ...;

表的查询

SELECT语句

SQL 语句中最基础的语句就是 SELECT 语句,通过 SELECT 语句查询并选取出必要数据的过程称为匹配查询或查询(query)。

SELECT 语句的基本语法如下:

SELECT <列名1>, <列名2>, ...

FROM <表名>

WHERE <条件表达式>

LIMIT m, n;

SELECT 子句中列举了希望从表中查询出的列的名称:

该子句中的列名还可以写作<表名>.<列名>,这对于FROM子句中存在不止一个表时非常有用。

查询结果中列的顺序和该子句中的顺序相同。SELECT子句中可以只用一个星号( * ),星号代表全部列的意思。但是使用星号无法设定列的显示顺序,这时会按照 CREATE TABLE 语句的定义对列进行排序。

可以使用 AS 关键字为列设定别名,同样也可以使用该关键字在 FROM 子句中对表设置别名。注意,允许设置汉字别名,设定汉语别名时需要使用双引号( " ),使用双引号可以设定包含空格(空白)的别名。此外,AS 关键字可以省略。

该子句中可以使用 DISTINCT 关键字删除重复行。注意两点:在使用 DISTINCT 时, NULL 也被视为一类数据;DISTINCT 关键字只能用在第一个列名之前,对多列数据同时进行去重。

SELECT 子句中还可以书写常数,主要包括字符串常数、数字常数和日期常数,查询结果有多少行,就会有多少行的常数。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值