MySQL-基础(上)

一、MySQL-DDL

1.DDL-数据库操作

 show database;
 create database 数据库名;
 use 数据库名; //切换到某个数据库 使用某个数据库
 select database (); // 查看当前处于哪个数据库中
 drop database  数据库名;//删除数据库

2.DDL-表操作

show tables;
create table 表名 (字段 字段类型,字段 字段类型);
desc 表名;// 查看当前表中含有哪些字段
show create table 表名;//查询这张表的建表语句
alter table 表名 add/modify/change/drop/rename to/...;
/* 表结构修改的语法 
add为添加字段
modify 修改字段类型
change 修改字段名称及类型
drop 删除字段
rename to 修改表名 */
drop table 表名 //删除表


二、MySQL-DML

1.添加数据

insert into 表名 (字段名1,字段2,...)value(1,2,...)...];
例如:
insert into employee (id, worknot, name, gender, age idcard, entrydate) value(1, '1', itcast, '男', 10 ,'123456', '2000/1/1');
/*
若未有指定字段名是为所有字段添加值

中括号表示为可选条件;
*/

注意:

  • 插入数据时,指定的字段需要与值的顺序是一一对应的。
  • 字符串和日期型数据应该包含再引导中。
  • 插入的数据大小,应该再字段的规定范围。

2.修改数据

update 表名 set 字段1 =1, 字段2 =2 [where 条件];
例如:
updata employee set name  = 'itcast' where id = 1;

//若没有where 条件,代表修改整张表的所有记录 

3.删除数据

delete from 表名[where 条件];
例如:
delete from employee where name  = 'itcast';
//若没有where 则修改整张数据

三、MySQL-DQL

  • 基本查询
    1.查询多个字段
select 字段1,字段2,字段3... from 表名; 
select * from 表名;

2.设置别名

select 字段1[as 别名] , 字段2[as 别名] ...from 表名;

3.去除重复记录

select distinct 字段列表 from 表名;
  • 条件查询
select 字段列表 from 表名 where 条件列表;

在这里插入图片描述
在这里插入图片描述

  • 聚合函数

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

select 聚合函数(字段列表) from 表名;
  • 分组查询
select 字段列表 from 表名[where 条件] group by 分组字段名 [having 分组后过滤条件];

where和having 区别
执行时机不同:where是分组前进行过滤,不满足where条件,不参与分组;而having是分组后对结果进行过滤。
判断时机不同:where不能对聚合函数进行判断,而having可以。

注意
执行顺序:where > 聚合函数 > having
分组后,查询的字段一般为聚合函数或者分组字段,查询其他字段无任何意义。

  • 排序查询
select 字段列表 from 表名 order by 字段1 排序列表1,字段2 排序列表2;

排序方式

asc 升序(默认值)
desc 降序

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

  • 分页排序
select 字段列表 from 表名 limit 起始索引,查询数据数;

注意
起始索引从0开始,起始索引=(查询页码﹣1)*每页显示记录数。
分页查询是数据库的方言,不同的数据库有不同的实现, MySQL 中是 LIMIT .
如果查询的是第一页数据,起始索引可以省略,直接简写为 limit 10.

语句例题

--1.查询年龄为20 21 22 23 的女性员工信息
select * from emp where gender = '女' and age in(20,21,22,23);

--2.查面性别为男,并且年龄在20-40岁(含)以内的姓名为三个宁的员工。
select * from emp where gender = '男' and (age between 20 and 40) and name like '___';

--3。统计员工表中,年龄小于60岁的,男性员工和女性员工的人数。(分组查询)
select gender, count(*) from emp where age < 60 group by gender ;

--4.查询所有年龄小于等于35岁员工的姓名和年龄,并对青询结果拉年龄升序排序,如果年龄相同按入职时间降序排序。
select name ,age from emp where age <= 35 order by age asc , entrydata desc;
 
--5。查询性别为男,且年舱在20-48岁(含)以内的前5个员工偏息,对查询的结果按年龄升序排序。年龄相同按照入职时间升序排序。
select * from emp where gender = '男' and age between 20 and 40  order by age  asc ,   entrydate asc limit 5;
// order by 从、执行顺序要大于 limit

  • DQL-执行顺序
    在这里插入图片描述
    在这里插入图片描述

四、MySQL-DCL

  • DCL-管理用户
--1.查询用户
use mysql;
select * from user;

--2.创建用户
create user '用户名'@'主机名' identified by '密码';

--3.修改用户y
alter user '用户名'@'主机名' identified with mysaql_native_password by '密码';

--4.删除用户
drop user '用户名'@'主机名';

注意

  • 主机名可以使用 %通配
    这类SQL 开发人员操作的不叫少,主要是DBA(Database Administrator 数据库管理员)使用。
  • DCL-权限控制
    常用权限:
    在这里插入图片描述
--1.查询权限
show grant for '用户名'@'主机名';
show grant for 'heima'@'%';

--2.受予权限
grant 权限列表 on 数据库库名.表名 to '用户名'@'主机名';
grant all on itcast.* to 'heima'@'%';

--3.撤销权限
revoke 权限列表 on 数据库名.表名 from '用户名'@'主机名';
revoke all on itcast.* from 'heima'@'%';

注意

  • 多个权限之间,使用逗号分布。
  • 授权时,数据库和表名可以使用*进行通配,代表所有。
    (✳.✳ )代表所有表
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值