2_MySQL数据库一(数据库的基本介绍和语法)

Day2 数据库

课程一 数据库基本介绍

一、数据库(DB|DataBase)的基本概念

  • a.意义:存储和管理数据的仓库,持久化存储数据的,实质上就是一个文件系统。
  • b.特点:

1.持久化存储数据
2.方便存储和管理数据
3.使用了统一的方式操作数据库—SQL

二、MySQL数据库软件

  • a.软件安装

安装成功:输入cmd命令->mysql -uroot -proot //用户名:uroot 密码:proot 也就是登陆数据库
安装失败:必须将mysql卸载干净,否则无法成功安装mysql软件。

  • b.软件配置(通过这些方式操控mysql)

1.启动和关闭mysql服务 方法
说明:安装好之后,mysql会在我们windows中安装相关服务,也就是一些没有界面的应用程序。
方式一:通过点点点,进入windows服务窗口设置
方式二:cmd命令:直接启动windows服务->services.msc
方式三:cmd命令使用管理员方式打开:->net start mysql ->net stop mysql
2.登录和退出 方法
方式(登录):1. mysql -uroot -p密码
2. mysql -hip -uroot -p连接目标的密码
3. mysql --host=ip --user=root --password=连接目标的密码
方式(登出):exit quit

  • d.mysql目录结构(介绍的软件的安装目录结构)

bin目录:相关的命令 可以通过cmd命令执行
data:日志文件 数据文件
include目录:c语言的头信息
lib目录:库包
share:一些错误信息
my.ini 文件:配置文件(将来如果需要修改软件的相关配置,那么就可以通过这个文件去修改)

  • e.MySQL数据文件目录(C盘中)

三个文件夹(对应三个数据库|里面存放多个表)
数据库:表
表:数据
数据:—

课程二 实操

一、SQL(语言)介绍

  • a.意义:结构化查询语言。其实就是定义了操作所有关系型数据库的规则。

每一种数据库操作的方式存在不一样的地方,称为方言。

  • b.SQL通用语法

1.可多行书写,以分号分隔;
2.使用空格和缩进增强可读性;
3.不区分大小写,但是关键字建议大写;
4. 3种注释 单行注释:-- 注释内容 或 # 注释内容 ; 多行注释:/注释内容/

二、SQL分类(4类)

  • a.第一类(DDL):操作数据库和表

详细解释:用来定义数据库对象,数据库,表,列。关键字:create drop alter 等

  • b.第二类(DML):增删改表中的数据

详细解释:用来对数据库中表的数据进行增删改,关键字: insert delete update 等

  • c.第三类(DQL):查询表中的数据

详细解释:查询数据库中表的记录(数据),关键字:select where 等

  • d.第四类(DCL):授权设置

详细解释:用来定义数据库的访问权限和安全级别,以及创建用户。关键字: GRANT REVOKE 等

三、DDL 操作数据库、表

  • a.操作数据库:CRUD

1.Create:创建
创建数据库的完整流程: create database if not exists db4 character set gbk;
2.Retrieve:查询
查询所有数据库的名称: show databases;
查询某个数据库的字符集:show create database 数据库名;
3.Update:修改
修改数据库的字符集: alter database 数据库名称 character set 字符集类型(编码类型)
4.Delete:删除
删除数据库: drop database if exists 数据库名称;
5.使用数据库
使用数据库: use 数据库名称;
查询当前正在使用的数据库名称:
select database();

  • c.操作表:CRUD

1.Create:创建表
复制表的操作: create table 目标表名 like 源头表名; 示例:create table stu like student;
创建表:注意最后一列是不用加逗号的
create table 表名(
列名1 数据类型1,
列名2 数据类型2,
列名3 数据类型3,

列名4 数据类型4
);
示例:create table student(
id int,
name varchar(32),
age int,
score double(4,1),
birthday date,
inset_time timestamp
);
数据类型(常用):
int:整数类型 示例:age int,
double:小数类型(参数一:小数总共最多有五位 参数二:小数点后保留 两位) 示例:score double(5,2) 表示这个小数最大是999.99
date(int a,int b):日期,只包含年月日,yyyy-MM-dd
datetime:日期时间:yyyy-MM-dd HH:mm:ss
timestamp:时间错类型 格式同datetime 注意:这个数据类型在没有被赋值时,自动赋值系统时间。
varchar(int a):字符串(参数:指定最大的字符) 示例:name varchar(6) 指定名字最长为三个字符
2.Retrieve:查询表
查询某个数据库中所有的表名称:show tables;
查询表结构: desc 表名;
3.Update:修改
修改表名: alter table 表名 rename to 新的表名;
修改表数据的字符集:alter table 表名 character set 字符集名称;
添加一列: alter table 表名 add 列名 数据类型;
修改列名称|数据类型:alter table 表名 change 列名 新列名 新数据类型;
alter table 表名 modify 列名 新数据类型;
删除列: alter table 表名 drop 列名;
4.Delete:删除
删除一个表: drop table if exists 表名;

四、SOLyog介绍

  • a.方便了视觉体验,但是仍然建议手敲代码。

五、DML:增删改表中的数据

  • a.添加数据:

添加数据:insert into 表名(列名1,列名2…) values(值1,值2…)
注意:
1.列名要和值的数量对应(列名数量>=值的数量);
2.要是要对表中所有值进行赋值,那么可以不写列名;
3.不确定要赋值什么的话可以赋值为null;
4.除了数字类型的值,其他都要用单引号或者双引号引起来;(日期示例:‘2017-12-28’)

  • b.删除数据:

删除数据:delete from 表名[where 条件]
注意:1.不加条件时,会删除所有表中的数据,但是不推荐使用,因为有多少条记录就会执行多少次操作;
2.如果要删除所有记录(推荐使用):truncate table 表名 这个是先删除表,然后创建空表。

  • c.修改数据:

修改数据:UPDATE 表名 SET 列名1=值1,列名2=值2… WHERE 条件;
注意:不加条件时,会修改所有表中的数据。

六、DQL:查询表中数据

  • a.完整语法

– DQL查询数据
select – 字段列表(列名称)
from – 表名列表
where – 条件列表(对值进行筛选)
group by – 分组字段(通过列名称对应的值进行分组)
having – 分组之后条件
order by – 排序
limit – 分页限定
;

  • b.查询完整的数据

格式:SELECT * FROM 表名;

  • c.一些额外的语法归纳:

1.在select后边:distinct 去重复结果;AS 或者 空格 给字段重命名;
IFNULL(字段名,替换的值) 判断是否是null并且将其替换;
2.在where后边:java中的比较运算符逻辑运算符; 建议使用 and|or|is|is not(is
用于和null的比较);between 值1 and 值2 判断阈值,包括等于;
in(值1,值2…)判断相等;like(用于匹配字符串) 模糊运算
符(用到占位符 _|代表一位 和 %|代表任意长度)

  • d.筛选操作示例:

– 去重复结果
select distinct address from student3;
select distinct name,address from student3;
– 计算math和english分数之和(注意null和任何数相加为null)
select name,math,english,math+english from student3;-- 去除重复 distinct
select name,math,english,math+ifnull(english,0) from student3;-- 使用函数 IFNULL(字段名,值)
select name,math 数学,english 英语,math+ifnull(english,0)as 总分 from student3; – 别名用 AS 或者 空格
– 查询年龄大于|等于|小于20岁(用到比较运算符)
select * from student3 where age>=20&&age<=30;
select * from student3 where age>=20 and age<=30;-- 推荐使用and
select * from student3 where age between 20 and 30;-- 也可以使用between
select * from student3 where age in(20,22,23);-- 使用in函数,判断或者相当于20||22||23
select * from student3 where english=null;-- 报错,null比较特殊,不能用来比较运算
select * from student3 where english is null;-- 当有值要和null做比较时,要用is关键字
select * from student3 where english is not null;-- 注意 is not中的not要放在is的后边
– 查询姓马的人(用到模糊查询)
select * from student3 where name like ‘马_’;-- 使用的时候要注意了,你可以筛选的字段的长度范围<=你like表达式后面跟的字段+占位符的长度
select * from student3 where name like ‘%德%’;-- 注意,这里的%可以长度为0,代表的长度是任意的
select * from student3 where name like ‘___’;

数据库入门语法归纳

一、DDL(date definition language)数据定义语言

  • a.数据库操作

1.创建 create database if not exists 数据库名 character set 字符编码格式;
2.查询 show databases;
show create database 数据库名;
select database(); 查看当前数据库
3.修改 alter database 数据库名称 character set 字符编码格式;
4.删除 drop database if exists数据库名称;
5.使用 use 数据库名;

  • b.表操作

1.创建 create table 目标表名 like 源头表名; 复制表
create table 表名(列名1 数据类型1,列名2 数据类型2,列名3 数据类型3,…列名4 数据类型4);
2.查询 show tables;
desc 表名;
3.修改 alter table 表名 change 原列名 新列名 新数据类型;
alter table 表名 modify 原列名 新列名;
alter table 表名 rename to 新表名;
alter table 表名 character set 新字符编码格式;
alter table 表名 add 列名 数据类型;
alter table 表名 drop 列名;
4.删除 drop table if exists 表名;

二、DML(date manipulation language)数据操作语言

  • a.插入数据 insert into 表名(列名1,列名2…) values(值1,值2…)
  • b.删除数据 delete from 表名[where 条件]

truncate table 表名;

  • c.更新数据 UPDATE 表名 SET 列名1=值1,列名2=值2… WHERE 条件;

三、DQL(data query language)数据查询语言

  • a.完整语法

– DQL查询数据
select – 字段列表(列名称)
from – 表名列表
where – 条件列表
group by – 分组字段(通过列名称对应的值进行分组)
having – 分组之后条件
order by – 排序
limit – 分页限定

  • b.现阶段使用

select|字段 distinct|
as|
空格|
算术运算符|
ifnull(字段名,替换的值)
from|表名
where|条件(值) 逻辑运算符|
比较运算符|
and|
or|
between 值1 and 值2|
is(值|null)|
is not(值|null)|
like (_|%)|
in(values…)

四、DCL权限定义

总结理解:

一、对三大类语法的使用选择判别:DDL数据库,表属性类型设置建设根基;DML对表中数据进行

操作,属性值的内容在这里基本完成;DQL对已经处理好的表格的数据过滤分析,取出我们需
要的数据。

1.DDL理解:create show use drop alter desc

2.DML理解:insert into where delete from inset set

3.DQL理解:detect from where

发布了21 篇原创文章 · 获赞 9 · 访问量 1490

猜你喜欢

转载自blog.csdn.net/qq_43230007/article/details/104155798