MYSQL知识点巩固

废话就不多说了,我们直接进入正题

规范的名称

对于数据库的操作有四种称呼

  • DDL操作
  • DML操作
  • DQL操作
  • DCL操作

下面小编详细举例说明一下四种操作

DDL:操作数据库语句

1 查询

————查询所有数据库名称
show databases
————查询某个库中所有的表
use database_name,
show tables
————查询表结构
desc table_name

2.创建

————创建数据库
create database database_name 

————根据是否存在判断创建

create database if not exists database_name 

————根据是否存在判断创建并且设置编码级

create database if not exists database_name character set gbk

	这里需要注意的是 utf-8 的写法是  utf8

创建表同理
create table table_name 

————创建一个复制表

create table table_name like  (想要复制的表名)
....

3.删除

————删除表
drop table table_name

drop table if exists table_name

————删除表并且创建一个一摸一样的表
truncate  table  table_name

4.修改

————重命名表名
alter table table_name(表名) rename to new_name(新的表名)

————修改表字符
alter table table_name character set gbk(字符集名称)

————添加一列
alter table table_name add colun(列名)  data_type(数据类型)

————修改表列名以及类型

alter table tb change colun(列名) new_colun(新列名)  data_type(新数据类型)

————修改表的类型

alter table tb modify colun(列名) data_type(新数据类型)

————删除列

alter table table_name drop colun(列名)

2.DML增删改表中数据:

1.添加数据

————插入数据到表中

insert into (可以省略) table_name values () ;

————指定列名添加

insert into (可以省略) tab;e_name (列名1 , 列名2... ) values (值1 , 值2 ...) 

2.删除数据

————删除表
delete from table_name [where 条件]

turncate table table_name  ---高效率推荐

3.修改数据

————更新表中的数据
update table_name set 列名1 = 值1 , 列名2 = 值2 .... [where 条件]

需要注意的是 , 删除和修改一样 , 如果不加约束, 将会对整个表进行更改

3DQL查询语句

1.排序查询


————普通排序查询

select * from table_name order by colun(列名)

————多条件排序拆线呢

select colun from table_name
 order by  列名 (ASC   ,   DESC 降序)
  , 列名   desc  (如果前面两个结果集一样  , 则按照后面得列名排序)

2.聚合函数

1.count
		在统计中, null不会被计入 总数中 , (列名)自动排除NULL
		select count(IFNULL (列名 , 0)) form tb
	2.max
		select MAX(列名) from tb
	3.min
		select MIN(列名) from tb
	4.sum
		select SUM(列名) from tb
	5.avg
		select AVG(列名) from tb

3.分组查询

————查的字段是共有得, 如果是单独的字段,那么查出来毫无意义

SELECT 共有列名  FROM  TB GROUP BY  列名;		
		分组字段  +  聚合函数


where 和having的区别

说明:1.where 在是在分组前进行限定, 如果不满足条件, 则不参与分组。having是在分组之后进行限定,如果不满足结果,将不会被查询出来
2.where后面不可以跟聚合函数,having可以进行聚合函数的判断


根据性别分组 要求:成绩低于90分的不参与分组 , 查询之后人数少于2人的不需要查询

SELECT sex , AVG(math) , COUNT(id) 人数 FROM stu_info(表名) GROUP BY sex HAVING 人数 > 2

4.分页查询

SELECT * FROM table_name LIMIT index(开始索引)  , rows(需要查询的记录条数)

5.基础查询

————多个字段的查询
select 列名1 , 列名2 .... from table_name
————去除重复的结果集
select distinct 列名 from table_name

注意:如果有多列, 只会去除重复的结果集
————计算列 (假设表中有数学英语成绩)
select math + english from table_name
————起别名
select 列名1 (空格) 别名   from table_name

select 列名1 AS 别名  from table_name

6.条件查询

————年龄不等于19岁

SELECT * FROM users WHERE math <> 19

SELECT * FROM users WHERE math != 19

————between AND

SELECT * FROM users WHERE math >= 20 AND math <= 60

SELECT * FROM users WHERE math BETWEEN 20 AND 100

————OR语句 IN()
SELECT * FROM users WHERE math = 20 OR math = 76 OR math = 86
SELECT * FROM users WHERE math IN(20  , 86)

————IS NULL

SELECT * FROM users WHERE english IS NULL
SELECT * FROM users WHERE english IS NOT NULL

————模糊查询

声明:_占一个字符 , %多个字符

————查询姓张的所有信息
select * from table_name where name like '张%' 

————查询第二个字为张字的所有信息
select * fron table_name where name like '_张%'

————查询名字为三个字的所有信息
SELECT * FROM table_name WHERE NAME LIKE '___'

————查询名字为两个字以上的所有信息
SELECT * FROM table_name WHERE NAME LIKE '__%'


SELECT * FROM table_name WHERE NAME LIKE '%__%'
————查询包含张字的人的所有信息
SELECT * FROM table_name WHERE NAME LIKE '%张%'

4.DCL管理操作

1.管理用户

1.添加用户

语法:
create user '用户名'@'主机名' identifide by '密码'

create user 'zhangsan'@'localhost' identifide by '123'
create user 'zhangsan'@'%' identifide by '123'  任意电脑都能访问

————查询
select * from user

2.删除用户

————删除用户
drop user  '用户名'@'主机名' 

3.修改用户密码


update user set password = password('新密码') where user = '用户名'
————实例
update user set password = password('qwe') where user = 'zhangsan'

set password for  '用户名'@'主机名'  = password ('新密码')

set password for  'zhangsan'@'localhost'  = password ('zxc')

mysql - uzhangsang  - pzxc ---cmd命令

这里小编补充一点, 如果忘记用户名和密码应该怎么做呢?

1.cmd ---- > net stop mysql 需要管理员权限

2.使用无验证方式启动mysql服务:mysqld --skip–grant–tables (敲回车之后光标会停在那里,说明服务已经启动成功)

3.打开一个新的cmd — > mysql 这里直接回车

4.use mysql;

5.update user set password=password(‘新密码’) where user=‘root’ | update mysql.user set authentication_string=password(‘root’) where user=‘root’ and Host = ‘localhost’

6.启动任务管理器,手动结束掉mysqld进程

7.再次启动mysql服务 net start mysql 管理员权限 (cmd中)

8.使用新密码登陆

2.权限管理

1.查询权限:


SHOW GRANTS FOR  '用户名'@'主机名'
SHOW GRANTS FOR  'zhangsan'@'%'

2.授权

grant 权限列表  on 数据库名.表名 to  '用户名'@'主机名'

————这里是给查询权限  其他权限同理
grant select  on 数据库名.表名 to  'zhangsan'@'localhost'
————给予所有权限, 在任意数据库任意表上

grant all ont *.* to  '用户名'@'主机名'

3.撤销权限

revoke 权限列表  on 数据库名.表名 from  '用户名'@'主机名'


grant select  on 数据库名.表名 from  'zhangsan'@'localhost'

温故而知新,在学习完之后做好笔记 ,总结, 完善, 是提升自我最好的方式 , 好啦,小编就讲到这里啦

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值