第一节 数据库
1、数据库是什么
存储和管理数据的仓库,数据是有组织的进行存储。
数据库英文名是DataBase,简称DB
2、数据库管理系统
管理数据库的大型软件
英文:DataBase Management System,简称DBMS
3、数据库和数据库管理系统的关系
4、常见的数据库管理系统有哪些
5、SQL是什么
英文:Structured Query Language,简称SQL,结构化查询语言
操作关系型数据库的编程语言
定义操作所有关系型数据库的统一标准,可以使用SQL操作所有的关系型数据库管理系统,以后工作中如果使用到了其他的数据库管理系统,也同样的使用SQL来操作。
6、如何安装MySql及卸载
详情请看文档
一些语句
初始化MySql:mysqld --initialize-insecure
注册MySql服务:mysqld -install
启动MySql服务:net start mysql
停止MySql服务:net stop mysql
修改默认账户密码:mysqladmin -u root password 1234 //这里1234就是指默认管理员(即root账户)的密码,可以自行修改成你喜欢的
7、MySql的登录及退出
登录:mysql -uroot -p1234
登录参数:mysql -u用户名 -p密码 -h要连接的mysql服务器的ip地址(默认127.0.0.1) -P端口号(默认3306)
退出:exit或者quit
8、MySql数据模型
A、关系型数据库是什么
关系型数据库是建立在关系模型基础上的数据库,简单说,关系型数据库是由多张能互相连接的二维表组成的数据库,如下图,订单信息表和客户信息表都是有行有列二维表,我们将这样的称为关系型数据库。
B、关系数据库的优点
都是使用表结构,格式一致,易于维护
使用通用的SQL语言操作,使用方便,可用于复杂查询
关系型数据库都可以通过SQL进行操作,所以使用方便
复杂查询,现在需要查询001号订单数据,我们可以看到该订单是1号客户的订单,而1号订单是李聪这个客户。以后也可以在一张表中进行统计分析等操作
数据存储在磁盘中、安全。
C、数据模型
如上图,我们通过客户端可以通过数据库管理系统创建数据库,在数据库中创建表,在表中添加数据。创建的每一个数据库对应到磁盘上都是一个文件夹,表对应的是一个文件。
总结:MySql中可以创建多个数据库,每个数据库队形到磁盘上的一个文件夹
在每个数据库中可以创建多个表,每张都对应到磁盘上一个frm文件
每张表可以存储多条数据,数据会被存储到磁盘中MYD文件中
第二节 SQL
1、SQL简介
英文:Structured Query Language,简称SQL
结构化查询语言,一门操作关系型数据库的编程语言
定义操作所有关系型数据库的统一标准
对于同一个需求,每一种数据库操作的方式可能会存在一些不一样的地方,我们称为“方言”
2、通用语法
SQL语句可以单行或多行书写,以分号结尾
MySQL数据库的SQL语句不区分大小写,关键字建议使用大写
注释:
单行注释:-- 注释内容或者#注释内容(MySQL特有) 注意:使用--添加单行注释时,--后面一定要加空格,#这个格式没有要求
多行注释:/* 注释内容 */
3、SQL分类
DDL(Data Definition Language):数据定义语言,用来定义数据库对象:数据库,表,列等;DDL简单理解就是用来操作数据库,表等
DML(Data Mainpulation Language):数据操作语言,用来对数据库中表的数据进行增删改;DML简单理解就是对表中数据进行增删改
DQL(Data Query Language)数据查询语言,用来查询数据库表中表的记录(数据);DQL简单理解就是对数据进行查询操作,从数据库表中查询到我们想要的数据。
DCL(Data Control Language)数据控制语言,用来定义数据库的访问权限和安全级别,及创建用户;DCL简单理解就是对数据库进行权限控制。比如我让某一个数据库表只能让某一个用户进行操作等。
第三节 DDL:操作数据库
1、查询所有的数据库
SHOW DATABASES;
2、创建数据库
CREATE DATABASE 数据库名称;
CREAT DATABASE IF NOT EXISTS 数据库名称;//加了一个判断,如果不存在该数据库,则创建
3、删除数据库
DROP DATABASE 数据库名称;
DROP DATABASE IF EXISTS 数据库名称;
4、使用数据库
USE 数据库名称;
SELECT DATABASE();//查看当前使用的数据库
第四节 DDL:操作表(操作表就是对表进行增(Creat)删(Delete)改(Update)查(Retrieve))
1、查询表
SHOW TABLES;//查询当前数据库下所有表名称
DESC 表结构;//查询表结构
2、创建表
CREATE TABLE 表名(
字段名1 数据类型1,
字段名2 数据类型2,
...
字段n 数据类型n
)
注意:最后一行末尾,不能加逗号
实例:
CREATE TABLE tb_user(
id int,
username varchar(20),
password varchar(10)
)
3、数据类型介绍
数值:
tinyint : 小整数型,占一个字节
int : 大整数类型,占四个字节
eg : age int
double : 浮点类型
使用格式: 字段名 double(总长度,小数点后保留的位数)
eg : score double(5,2)
日期:
date : 日期值。只包含年月日
eg :birthday date :
datetime : 混合日期和时间值。包含年月日时分秒
字符串:
char : 定长字符串。
优点:存储性能高
缺点:浪费空间
eg : name char(10) 如果存储的数据字符个数不足10个,也会占10个的空间
varchar : 变长字符串。
优点:节约空间
缺点:存储性能底
eg : name varchar(10) 如果存储的数据字符个数不足10个,那就数据字符个数是几就占几个的空间
注意:其他类型参考资料中的《MySql数据类型.xlsx》
4、删除表
DROP TABLE 表名;
DROP TABLE IF EXISTS 表名;
5、修改表
修改表名:
ALERT TABLE 表名 RENAME TO 新的表名;//alert table student rename to stu;
添加一列:
ALERT TABLE 表名 ADD 列名 数据类型;//alert table student add adderss varchar(50)
修改数据类型:
ALERT TABLE 表名 MODIFY 列名 数据类型;//alert table student modift address char(50)
修改列名和数据类型:
ALERT TABLE 表名 CHANGE 列名 新列名 新数据类型;//alert table student change address addr varchar(50)
删除列:
ALERT TABLE 表名 DROP 列名;//alert table student drop addr;
第五节 Navicat安装及使用
详情请见文档,百度网盘
第六节 DML:DML主要是对数据进行增(insert)删(delete)改(update)操作。
1、添加数据
INSERT INTO 表名(列名,列名,...) VALUES(值1,值2,...);//给指定列添加数据
INSERT INTO 表名 VLAUSE(值1,值2,...);//给全部列添加数据
INSERT INTO 表名(列名1,列名2,…) VALUES(值1,值2,…),(值1,值2,…),(值1,值2,…)…;//批量添加数据
INSERT INTO 表名 VALUES(值1,值2,…),(值1,值2,…),(值1,值2,…)…;//批量添加数据
2、修改数据
UPDATE 表名 SET 列名=值1,列名2=值2,...[WHERE 条件];//修改表数据
注意:WHERE 条件可以不写,不写的话,将所有数据都进行修改,[]z表示的是里面的内容可以省略
3、删除数据
DELETE FROM 表名 [WHERE 条件];//删除数据
第七节 DQL
1、完整语法
2、基础语法
A、查询多个字段
SELECT 字段列表 FROM 表名;
SELECT * FROM 表名; -- 查询所有数据
B、去除重复记录
SELECT DISTINCT 字段列表 FROM 表名;
C、起别名
AS:AS也可以省略
select name,math as 数学成绩,english as 英文成绩 from stu;
select name,math 数学成绩,english 英文成绩 from stu;
3、条件查询
A、语法
SELECT 字段列表 FROM 表名 WHERE 条件列表;
B、条件列表里的运算符
C、模糊查询
例如:select * from stu where name like '马%';
4、排序查询
A、语法
SELECT 字段列表 FROM 表名 ORDER BY 排序字段名1 [排序方式1],排序字段名2 [排序方式2]...;
例如:select * from stu order by math desc , english asc ;
排序方式有两种:ASC:升序排列(默认值)
DESC:降序排列
注意:如果有多个排序条件,当前边的条件值一样时,才会根据第二条件进行排序
5、聚合函数
A、语法
SELECT 聚合函数名(列名) FROM 表;
注意:null值不参与所有聚合函数运算
B、聚合函数分类
count选取的列名:一般选择主键或者*
6、分组查询
A、语法
SELECT 字段列表 FROM 表名 [WHERE 分组前条件限定] GROUP BY [HAVING 分组后条件过滤];
注意:分组之后,查询的字段为聚合函数和分组字段,查询其他字段无任何意义
B、where和having区别
执行时机不一样:where是分组之前进行限定,不满足where条件,则不参与分组,而having是分组之后对结果进行过滤
可判断的条件不一样:where不能对聚合函数进行判断,having可以
C、where、having、聚合函数的执行顺序
where>聚合函数>having
7、分页查询
A、语法
SELECT 字段列表 FROM 表名 LIMIT 起始索引,查询条目数;
注意:上述语句中的起始索引是从0开始
B、起始索引的计算公式
起始索引=(当前页码-1) * 每页显示的条数
C、tips:
分页查询limit是MySQL数据库的方言
Oracle分页查询使用rownumber
SQL Server分页查询使用top
标签:--,数据库,表名,基础,查询,SQL,列名,MySql From: https://www.cnblogs.com/Flower--Dance/p/16715383.html