初学MySQL(5.7)

一、DDL (Data Definition Language)数据定义语言

1,DDL-数据库操作语句
SHOW DATABASES; 显示当前所有的数据库。
CREATE DATABASE [if not exists] 数据库名 ;创建新的数据库。
USE 数据库名; 前往该数据库。
SELECT DATABASE(); 查看当前所在的数据库。
DROP DATABASE [IF EXISTS]数据库名。删除数据库
2,DDL-表操作语句
SHOW TABLES; 显示查看当前数据库所有的表。
CREATE TABLE 表名称(字段 字段类型,字段 字段类型…); 创建表。
DESC 表名 ;查看当前表有哪些字段。
SHOW CREATE TABLE 表名。查询表的建表语句。
ALTER TABLE 表名 ADD/MODIFY/CHANGE/DROP/RENAME TO …修改表,增加/修改类型/修改字段加类型
DROP TABLE 表名 ;删除表。

二、DML (Data Manipulation Language)数据操作语言

对数据库中表的数据记录进行增删改
在这里插入图片描述

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

三、DQL (Data Query Language)数据查询语言,查询数据库中的表的记录。

1、基础查询

在这里插入图片描述

select name ,workno,age from employee;


查询姓名,工号,年龄三个字段,查询所有字段有两种方式:

select id, workno, name, gender, age, idcard, entrydate,workaddress from employee;
select *from employee;
select workaddress as'工作地址' from employee;--as可以省略,意思是起别名。

在这里插入图片描述

select distinct workaddress from employee;--不重复的显示

2、条件查询 (where)

在这里插入图片描述

select * from employee where age>60;--查询年龄大于60
select * from employee where idcard is null;--查询身份证号为空
select * from employee where age between 10 and 60; --查新年龄为10到60之间
--下面两条语句皆为查找年龄为11或18的意思
select * from employee where age =11 or age=18;
select * from employee where age in (11,18);
select * from employee where name like '__';--查找名字为两个字,一个下划线代表一个单个字符
select * from employee where name like'%5674';--查找身份证号后四位为5674,%代表任意个字符

3、聚合函数 (count,max,min,avg,sum)

![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/4a51b2cd0a484e35ada7da73ea1aa59e.png

select count(*) from employee;--统计表中员工的数量
select count(idcard) from employee;--统计身份证不为空的数量,空值NULL不参与所有聚合函数运算
select avg(age) from employee;--统计年龄的平均数
select max(age) from employee;--查询年龄的最大值	
select min(age) from employee;--查询年龄的最小值
select sum(age) from employee where gender='男';--统计男性的年龄之和

4、分组查询 (group by)

在这里插入图片描述

select gender,COUNT(*) from employee group by gender;--根据性别分组,统计男性和女性的数量
select workaddress,count(*) from employee where age <45 group by workaddress having count(*)>=2--查询年龄小于45的员工,并根据工作地址分组,获取员工数量大于等于2的工作地址

5、排序查询(order by)

在这里插入图片描述

select * from employee order by age asc--根据年龄进行升序排序
select * from employee order by age desc--根据年龄进行降序排序
select * from employee order by age asc,entrydate desc--根据年龄进行升序排序,如果年龄相同,再按照入职时间进行降序排序

6、分页查询(limit)

在这里插入图片描述

7、案例查询

select  * from employee where gender='女' and age in (20,21,22,23);--查询年龄为20.21.22.23岁的女性员工
select name,age,gender  from employee where  name like '___' and  age>=20 and age <=40 and gender='男'--查询性别为男,并且年龄在20-40岁(含)以内的姓名为三个字的员工。
select gender,count(*) from employee where age<60 group by gender;--统计员工表中,年龄小于60的,男性员工和女性员工的个数
select name '姓名' ,age '年龄' from employee where age<=35  order by age asc, entrydate desc;--查询所有年龄小于等于35岁员工的姓名和年龄,并对查询结果按年龄升序排序,如果年龄相同按入职时间降序排序。
select * from employee where gender ='男' and age between 20 and 40 order by age asc ,entrydate desc limit 4--查询结果为男,且年龄在20-40岁(含)以内的前5个员工信息,对查询的结果按年龄升序排序,年龄相同则按入职时间升序排序

四、DCL (Data Control Language)数据控制语言,用来管理数据库用户、控制数据库的访问权限

![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/1bbaf65de06d4316b3972055e26bcdfd.png

1. 用户与数据库的关系

共享数据库 多个用户可以共享访问同一个数据库。如果用户被授予了访问权限,他们可以在同一个数据库中创建、读取、更新、删除数据。
独立数据库 管理员可以为每个用户创建一个独立的数据库,并只赋予该用户对其数据库的访问权限。这样虽然多个用户各自有独立的数据库,但它们并不是自动创建的,而是管理员手动设置的。

2. 用户权限控制

MySQL通过权限控制用户对数据库的访问。你可以决定一个用户是否能访问一个或多个数据库,以及可以对这些数据库执行哪些操作(例如,读取、写入、删除等)。
在这里插入图片描述
在这里插入图片描述

show grants for 'heima'@'%';
GRANT ALL ON userdb.* TO 'username'@'%';-- 授予用户对自己数据库的所有权限,这里的userdb是指为用户授予哪一个数据库的所有权限
revoke all on itcast.* from 'heima'@'%';--撤销用户heima对于itcast数据库的所有权限
FLUSH PRIVILEGES;-- 应用权限更改

3. 示例:为用户创建独立的数据库

CREATE DATABASE userdb;-- 创建数据库
CREATE USER 'username'@'%' IDENTIFIED BY 'password';-- 创建用户并为其设置密码,可在任意主机访问该数据库
CREATE USER 'itcast'@'localhost' IDENTIFIED BY 'password';--创建用户,设置密码,并限制只能在当前主机localhost访问
alter user  'itcast'@'localhost' identified by'123'--修改用户密码为123

  • 15
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值