MySQL

目录

一.MySQL数据库

1.关系型数据库

2.数据模型

二.SQL

1.SQL通用语句

2.SQL语句分类

三.DDL

1.数据库操作

2.表操作---查询

3.表操作---创建

4. 表操作---数据类型

5. 表操作---修改

6.表操作---修改

7.表操作---删除

 四.SQL图形化界面工具---Navicat

五.DML

 1.添加数据

2.修改数据

3.删除数据

六.DQL

1.基本查询

 2.条件查询

 3.聚合函数

 4.分组查询

5.排序查询

 6.分页查询

 7.执行顺序

七.DCL

1.管理用户

2.权限控制


一.MySQL数据库

1.关系型数据库

概念:建立在关系模型基础上,由多张相互连接的二维表组成的数据库,通过表来存储数据。不通过表来存储数据的数据库是非关系型数据库。

特点:使用表存储数据,格式统一,便于维护。使用SQL 语言操作,标准统一,使用方便。

2.数据模型

我们可以通过客户端连接MySQL管理系统DBMS,使用MySQL语句通过数据库管理系统创建数据库,也可以使用MySQL语句通过管理系统在指定的数据库中创建表,在一个数据库服务器中可以创建多个数据库,在一个数据库中可以创建多个表,这个表就是二维表,在表中就可以存储一条一条的记录。

二.SQL

1.SQL通用语句

注意(可以不看):1.SQL语句可以单行或多行书写,以分号结尾

                                 2.SQL语句可以使用空格/缩进来增强语句的可读性

                                 3.MySQL数据库的SQL语句不区分大小写,关键字建议使用大写

                                 4.注释:单行注释:--注释内容   或   #注释内容(MySQL)特有

                                               多行注释:/*注释内容*/

2.SQL语句分类

分类全称说明
DDLData Definition Language数据定义语言,用来定义数据库对象(数据库,表,字段)
DMLData Manipulation Language数据操作语言,用来对数据库表中的数据进行增删改
DQLData Query Language数据查询语言,用来查询数据库中表的记录
DCLData Control Language数据控制语言,用来创建数据库用户,控制数据库的访问权限

三.DDL

1.数据库操作

1)查询:查询所有数据库:show databases;

                查询当前数据库:select databases;

2)创建数据库:create database【if not exists】数据库名【default charset字符集】【collate 排序规则】;

3)删除:drop database【if exists】数据库名;

4)使用:use 数据库名;

(注意创建成功的话,会出现Query OK。不能重复创建同名的数据库,会出现错误)

 (注意可以使用if语句来判断是否存在此数据库,存在就不创建,不存在就创建。另外我们也可以创建响应字符集的数据库,我创建的是使用utf8来存储数据的数据库)

删除和创建的规则大致相同,这里就不另外写例子了(绝对不是因为想偷懒)

 (注意这里如果要使用select database应该在其后添加一个括号,否则会执行错误)

2.表操作---查询

1)查询当前数据库所有表:show tables;

2)查询表结构:desc表名;

3)查询指定表的建表语句:show create table表名;

3.表操作---创建

create table 表明(

                                字段1 字段1类型[comment 字段1注释],

                                字段2 字段2类型[comment 字段2注释],

                                ........

                             )[comment 表注释];

(注意,最后一个字段是没有逗号的)

4. 表操作---数据类型

MySQL中的数据类型有很多,主要分为三类:数据类型,字符串类型,日期时间类型

5. 表操作---修改

1)添加字段:alter table 表名 add 字段名 类型(长度)[comment 注释] [约束];

在员工个人信息表中,我添加了一项家庭成员数量

2)修改字段和字段类型:alter table 表名 change 旧字段名 新字段名 类型(长度)[comment 注释] [约束];

修改数据类型:alter table 表名 modify 字段名 新数据类型(长度);

3)删除字段:alter table 表名 drop 字段名;

在员工表中我把nickname先改为username再删除了username

6.表操作---修改

1)修改表名:alter table 表名 rename to 新表名;

7.表操作---删除

1)删除表:drop table[if exists] 表名;

2)删除指定表,并重新创建该表:truncate table 表名;(注意使用这条语句删除表重建后,重建的表是空白的没有保留以前的信息)

 四.SQL图形化界面工具---Navicat

下载好以后点击连接,然后点击MySQL就可以新建连接了,连接名自己起,记住密码和用户名,其他的可以不用改。创建好以后右键点击自己创建的连接,再点击创建新建数据库就可以新建一个数据库。在自己创建的数据库,右键点击表新建表就可以在数据库中创建一个表。其中名,类型可以自己设置。

五.DML

 1.添加数据

1)给指定字段添加数据:insert into 表名(字段1,字段2,...) values(值1,值2...);

2)给全部字段添加数据:insert into 表名 values(值1,值2...);

3)批量添加数据:insert into 表名(字段1,字段2...) values(值1,值2...),(值1,值2...),

                              (值1,值2...);

                               insert into 表名 values(值1,值2...),(值1,值2...),(值1,值2...);

注意:1)插入数据时,指定的字段顺序需要与值的顺序是意义对应的。

           2)字符串和日期型数据应该包含在引号中。

           3)插入的数据大小,应该在字段的规定范围内。

2.修改数据

update 表名 set 字段名1=值1,字段名2=值2,...[where 条件];

注意:修改语句的条件可以有,也可以没有,如果没有条件,则会修改整张表的所有数据。

3.删除数据

delete from 表名 [where 条件];

注意:1)delete语句的条件可以有,也可以没有,如果没有条件,则会深处整张表的所有数据。

           2)delete语句不能删除某一个字段的值(可以使用update,把update的字段的值设为                         none)。

最终结果是个空表

六.DQL

1.基本查询

1)查询多个字段:select 字段1,字段2,字段3...from 表名;

                               select*from 表名;

2)设置别名:select 字段1[as 别名1],字段2【as 别名2】...from 表名;

3)去除重复记录:select distinct 字段列表 from 表名;

 2.条件查询

1)语法:select 字段列表 from 表名 where 条件列表;

2)条件

 3.聚合函数

1)介绍:将一列数据作为一个整体,进行纵向计算。

2)常见聚合函数

函数共能
count统计数量
max最大值
min最小值
avg平均值
sum求和

3)语法:select 聚合函数(字段列表) from 表名;

注意:所有的null值不参与所有聚合函数运算。

 4.分组查询

1)语法:select 字段列表 from 表名 [where 条件] group by 分组字段名[having 分组后过滤条件];

2)where和having的区别:

执行时机不同:where是分组之前进行过滤,不满足where条件,不参与分组;而having是分组之后对结果进行过滤。

判断条件不同:where不能对聚合函数进行判断,而having可以。

3)注意:执行顺序where>聚合函数>having

                分组之后,查询的字段一般为聚合函数和分段字段,查询其他字段无任何意义

5.排序查询

1)语法:select 字段列表 from 表名 order by 字段1 排序方式1,字段2 排序方式2; 

2)排序方式:ASC:升序(默认值)

                       DESC:降序

注意:如果是多字段排序,当第一个字段值相同时,才会根据第二个字段进行排序

 6.分页查询

1)语法:select 字段列表 from 表名 limit 起始索引,查询记录数;

注意:1)起始索引从0开始,起始索引=(查询页码-1)*每页显示记录数

           2)分页查询是数据库的方言(数据库和数据之间不同的地方),不同的数据库有不同的实

           现mysql中是limit

          3)如果查询的是第一页数据,起始索引可以省略,直接简写为limit 10

 7.执行顺序

表名列表------>条件列表------>分组字段列表------->分组后条件列表------>字段列表------>排序字段列表------>分页参数

七.DCL

1.管理用户

1)查询用户:use mysql;      select*from user;

2)创建用户:create user ‘用户名’@'主机名' identified by ‘密码’;

3)修改用户密码:alter user ‘用户名’@‘主机名’ identified with mysql_native_password by ‘新密码’;

4)删除用户:drop user ‘用户名’@‘主机名’;

 注意:主机名可以使用%通配

2.权限控制

1)常用权限

权限说明
all,all privleges所有权限
select查询数据
insert插入数据
update修改数据
delete删除数据
alter修改表
drop删除数据库/表/视图
create创建数据库/表

2)查询权限:show grants for ’用户名‘@’主机名‘;

3)授予权限:grant 权限列表 on 数据库名.表名 to ’用户名‘@’主机名‘;

4)撤销权限:revoke 权限列表 on 数据库名.表名 from ’用户名‘@’主机名‘;

注意:多个权限要使用逗号分隔 

           授权时,数据库和表名可以使用*进行匹配,代表所有

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值