MySQL了解和基本的SQL语句

一、数据库了解

(一)了解

1.定义:存储数据的仓库

2.特点:

​ 优点:持久化存储,管理方便

​ 数据库数据是一文件形式存储在服务器上。

​ 访问:SQL语句

3.数据库分类:

​ 关系型:二维表

​ 非关系型:没有同意的访问语言。Redis(用于缓存),MongoDB,

4.常见数据库:MySQL,Oracle,DB2

5.MySQL服务器启动和停止

(二)链接数据库:

1.dos命令行:

​ 1)本地链接:

​ (a)MySQL -u用户名 -p密码。

​ (b)脱敏方式:MySQL -u用户名 -p

回车在输入密码,密码会隐藏显示

​ 2)远程链接:MySQL -h远程主机ip -u用户名 -p密码

​ 3)退出:exit或者quit

2.图形化界面Navicat

二、SQL语言

(一)SQL语言介绍

1.定义:Structured Query Language
2.基础语法格式:

2.1所有SQL语句一分号结尾

2.2 SQL语言部分大小写

2.3注释:–空格 单行注释,

3.分类:

DDL,数据定义语言,建库建表

DML,数据操作语言,增删改记录

DQL:数据查询语言,查询记录

DCL:数据控制(权限控制和用户管理)

(二)DDL语言(建库建表和修改表)

补充:big5繁体中文编码表,case insensitive大小写不敏感

1.建库
1.创建数据库
create database 数据库名;
create database if not exists 数据库名;-- 判断如果不存在则创建
2.创建表的同时指定字符集(编码表)
create database 数据库名 character set 字符集;
3.查看创建表结构
show create database 数据库名;
4.查看当前使用的数据库
select database();
5.切换数据库
use 数据库名;
6.删除数据库
drop database 数据库名;
2.建表
1.创建表格(注意最后一行字段类型结尾 没有逗号)
create table 表名称(
	字段名1 字段类型,
	字段名2 字段类型,
	...,
	字段名n 字段类型
);
2.查看当前数据库中的所有表
show tables;
3.查看某个表结构
desc 表名称;
4.查看创建表的SQL语句
show create table 表名称;
5.创建相同的表结构
create table 新表明 like 旧表名
6.删除表
drop table表名称;
drop table if exists 表名称;-- 判断存在则删除
3.修改(针对列的操作)
1.修改表格:添加列
alter table 表名称 add 字段名 字段类型;
2.修改列类型
alter table 表名称 modify 字段名,新的字段类型;
3.修改字段名和字段类型
alter table 表名称 change 旧字段名 新字段名 新字段类型;
4.删除列
alter table 表名称 drop 字段名;
5.修改表名称
rename 就表明 to 新表明;

(三)DML增删改表格内数据记录(数据操作)

1.新增记录
1.在一个表格中插入全部的字段值()
insert into 表名称 values (值1,值2...);
2.插入部分的字段,未插入字段的值默认是NULL
insert into 表名 (字段名1, 字段名2) values (值1, 值2);
3.插入多条记录
insert into 表名 values (值1, 值2, ...),(值1, 值2, ...),(值1, 值2, ...);
2.修改记录
1.不带条件修改数据,修改所有行的记录
update 表名 set 字段名=新值;
2.带条件修改数据,修改满足条件的记录
update 表名 set 字段名=新值 where 条件;
3.一次修改多个字段值
update 表名 set 字段名=新值,字段名=新值,字段名=新值;

注意:带判断条件用where。另外一个语句当中只能有1个where。

3.删除记录
1.不带条件删除数据(删除表中所有的记录,只删除记录不删除表结构)
delete from 表名称;
2.带条件删除数据(删除符合条件的记录,只删除记录不删除表结构)
delete from 表名称 where 条件;
3.高效删除表格中所有数据
-- 注意:这个语句相当于删除整个表,在重新创建一个表名称相同的表。
truncate table 表名称;

(四)DQL查询表格中的数据(数据查询)

1.简单查询
1.查询表格中所有行和列的数据,星号*表示所有列(查看)
select * from 表名称;
-- 注意:如果表格中数据量巨大时,查询表格中所有数据应该列出所有字段名,即:
select 字段名1,字段名2...from 表名称;
2.查询表格中所有航部分列的数据
select 字段名1,字段名2...from 表名称;
2.指定列的别名
1.指定列的别名(列名也就是字段名)
select 列名 as 别名 from 表格名
-- as可以省略
3.查询某个列的数据,并从结果集中取出重复行
1.一个字段去重
select distinct 列名 from 表名;
2.多个字段去重,必须是全部字段一样,才会去重
select distinct 列名1,列名2 from表名;
4.查询结果参与运算
1.查询某列数据并和一个固定数值运算的结果
select 列名+数值 from 表名;
2.查询某两列数据运算的结果
select 列名+列名 from 表名;
5.条件查询
1.取出表中的每条数据,返回满足条件的结果集
select * from 表名 where 条件;

2.条件运算符

运算符说明
>大于
>=大于等于
<小于
<=小于等于
=等于
<>不等于
!=不等于,mysql可以用

3.逻辑运算符

逻辑运算符说明
and 或 &&全真为真
or 或 ||见真为真
not 或 !取反
6.条件中的关键字
1.in关键字。-- 相当于or的作用
select * from 表名 where 列名 in(值1,值2,值3)
2.between... and关键字。-- 范围查询。相当于 小值<= && >=大值
selectselect * from 表名 where 列名 between 小值 and 大值
3.like关键字。-- 模糊查询
select * from 表名 where 列名 like '字符串'
-- 注意:模糊查询需要配合通配符使用

MySQL通配符

通配符说明
%匹配零个或多个字符
_匹配一个字符
5.判断列值是否为空,不要写成 =NULL
is null 
6.IFNULL()方法:如果这一列有值,则显示它的值,
如果为NULL,则显示后面默认值
ifnull(字段名, 默认值)
6.查询结果排序
1.根据指定列的值升序排列。order by 列名 asc(上升:ascend)
select * from 表名 order by 列名 asc;
2.根据指定列的值升序排列。order by 列名 decs(下降:descend)
select * from 表名 order by 列名 desc;
7.聚合函数(针对列的操作)

通过对一列的值进行计算,然后返回一个结果值。聚合函数会忽略空值NULL不会参与运算。

SQL中的聚合函数作用
count(列名)统计个数(行)
sum(列名)求和,对数值类型的列求和
avg(列名)求平均值,对数值类型的列求平均值
max(列名)求这一列中的最大值
min(列名)求这一列中的最小值
-- 聚合函数的应用
1.统计某个表中任意一列的总行数
select count(*) from 表名;
2.统计某个表中某一列的总行数
select count(列名) from 表名;
-- 为了显示结果更加明确,在统计结果前加上该列
3.统计某表中某列数值的综合
select 列名1 sum(列名1) from 表名;
8.分组查询

group by 列名:根据指定列的值进行分组,默认返回每一组的第一行记录

having 条件:对分组后的数据进行条件过滤

1.按列名(如:性别)分组
select * from 表名 group by 列名; 
2.按列名(如:sex)分组,并对分组后的结果进行过滤
-- 例:查询年龄大于20岁的人,按性别分组,统计每组的人数,
并只显示性别人数大于2的数据条数
select sex count(*) from 表名  
where age > 20 group by sex having count(*) > 2;

2.where和having的区别

关键字功能
where1. 先过滤,再进行分组 2. where条件后面不能使用聚合函数
having1. 先分组,再进行过滤 2. having后面可以使用聚合函数,having用在group by 后面
9.分页查询

limit关键字:限制从服务器返回的数据行数,通常用于分页操作,起始行从0开始编号

1.假设我们以每页显示5条记录的方式来分页
-- 查询第一页数据
select * from student limit 0, 5;
-- 查询第二页数据
select * from student limit 5, 5;
...
以此类推

2.分页查询公式总结
-- 定义起始行与页码之间的关系函数
startNum = (pageNumber - 1) * pageSize;
-- 查询SQL
select * from student limit startNum, pageSize;

Select语句中关键字顺序

select 列名 from 表名
-- 注:此处列名后可以写聚合函数
where 条件
group by (分组)列名
having 过滤条件(-- 过滤条件可以是聚合函数)
order by (排序)列名
limit 起始行,每页最大的返回记录行数

(五)DCL操作MySQL用户(增删改用户)

DCL作用

 root用户,也是超级管理员,拥有全部的权限。
 但是,一个公司里面的数据库服务器上面可能同时
 运行着很多个项目的数据库,所以,我们应该可以根据、
 不同的项目建立不同的用户,分配不同的权限来管理和维护数据库
1.创建、删除用户
1.创建用户(-- 注:若不想指定该用户的登录主机,主机名可以使用 通配符%)
create user '用户名'@'主机名' identified by '密码';
2.删除用户
drop user '用户名'@'主机名';
2.授予、撤销某个已经存在的 用户的访问权限

**权限种类:**create、alter、 select、insert、update、delete等。如果是授予或撤销全部的权限,则使用 all。

1.授予权限
grant 权限 on 数据库名.表名 to '用户名'@'主机名';
2.撤销权限
revoke 权限 on 数据库名.表名 to '用户名'@'主机名';
3.修改用户密码
1.修改管理员(root用户)密码
-- 需要在DOS命令行下执行修改密码的操作
-- 其中,mysqladmin.exe命令在MySQL安装目录下的bin文件夹中
mysqladmin -u 用户名 -p password 新密码
2.修改其他用户的密码
-- 需要先登录,然后才能修改密码
set password=password('新密码');
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值