Mysql(一)

一、DDL 数据定义语言

作用:操作数据库结构与表结构的

1.1 操作数据库

1.1.1 查询所有的数据库

show databases;

1.1.2 查看创建数据库的sql语句

show create database 数据库名;

1.1.3 增加数据库

create database 数据库名称;
// 如果数据库名称不存在就创建数据库,存在的话就不创建
create database if not exists 数据库名称; 

1.1.4 删除数据库

drop database 数据库名称;

1.1.5 修改数据库

//修改数据库名字
//5.05~5.23有这个sql语句,存在安全的问题其他版本就去掉了
alter database 数据库旧的名字 rename to 新名字;

1.1.6 修改数据库默认码表

alter database 数据库名称 character set 码表(注意:utf8)

1.2 操作表(use 数据库名称;)

1.2.1添加表

//创建表的格式
create table 表名(
	字段名称1 数据类型1,
	字段名称2 数据类型2,
	...
);

1.2.2 查询表结构

//查看当前数据库里面所有表名称列表
show tables;
//查看指定表的详细信息与结构
desc 表名;

1.2.3 修改表

增加一个字段
	格式: alter table 表名 add 字段名 数据类型;
	代码:alter table emp2 add name varchar(100);
删除一个字段
	格式:alter table 表名 drop 字段名;
	代码:alter table emp2 drop name;
修改一个字段类型
	格式:alter table 表名 modify 字段名 数据类型;
	代码:alter table emp2 modify age double;
修改一个字段名称
	格式:alter table 表名 change 旧字段名称 新的字段名称 数据类型
	代码:alter table emp2 change age nianling double;
修改表名
	格式:alter table 表名 rename 新表名;
	代码:alter table emp2 rename emp3;

1.2.4 删除表

drop table 表名;

二、DML数据操作语言

作用是对表里面的数据増、改、删

2.1 增

insert into 表名 (字段列表) values(插入指定字段值列表);
//values中的值需要跟表中的字段一一对应,若主键id为自动增长,可赋值为null
insert into 表名 values(插入指定字段值列表);

2.2 改

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

2.3 删

//算法实现原理:这里是一条数据一条数据删除的(速度慢)
delete from 表名 where 条件;
//算法实现原理,直接摧毁表结构进行删除所有数据的(速度快)
truncate 表名;

三、DQL数据查询语言

作用就是查询数据库表里面的数据

//查询
SELECT * FROM WHERE 条件 ORDER BY 字段名 DESC GROUP BY 字段名 HAVING 条件;

where & having 的区别
①having是在分组后对数据进行过滤.
 where是在分组前对数据进行过滤

②having后面可以使用分组函数(统计函数)
 where后面不可以使用分组函数。

3.1 排序(order by)

默认:asc(升序)
desc(降序)

3.2 聚合

  • count:统计指定列不为NULL的记录行数
  • sum:计算指定列的数值和,如果指定列
  • max:计算指定列的最大值,如果指定列是字符串类型,那么使用字符串类型不是数值类型,那么计算结果为0排0序运算
  • min:计算指定列的最小值,如果指定列是字符串类型,那么使用字符串排序运算
  • avg:计算指定列的平均值,如果指定列类型不是数值类型,那么计算结果为0

3.3 分组(group by)

SELECT 字段1,字段2… FROM 表名 GROUP BY 字段 HAVING 条件;

四、多表查询

  • JOIN & INNER JOIN 查询的效果是一样的,只有有一张表没有数据那么这条数据就不会显示
  • LEFT JOIN 以左表为基准,左表有数据,右表没数据,这条数据也会显示,没数据的那张表用NULL填充
  • RIGHT JOIN 与LEFT JOIN 相反
  • Mysql中没有FULL JOIN,Oracle中才有

五、DCL数据控制语言

作用:进行权限控制的;主要对用户操作,并且给用户授予与解除权限

5.1 用户操作

5.1.1增加用户

//格式
create user 用户名@ip/域名 identified by 密码;
//代码
create user zhaosan@localhost identified by '123456';

5.1.2 查询用户

select * from mysql.user;

5.1.3 删除用户

drop user 用户名@主机地址;

5.2 操作权限

5.2.1 授予权限

//格式    
grant 权限1,权限2… on 数据库.表 to 用户@ip;
//代码
//将所有的数据库里面所有的表的所有权限给到zhaosan用户
grant all on *.* to zhaosan@localhost;
//权限列表关键字select ,update ,insert ,delete
//将dbshop.emp表的查询权限给到zhaosan用户
GRANT SELECT ON dbshop.emp TO zhaosan@localhost;

5.2.2 查询权限

//格式
SHOW GRANTS FOR 用户名@ip;
//代码
//查询当前用户的权限
SHOW GRANTS;

5.2.3 解除权限

//格式
revoke 权限1,权限2.. on 数据库.表 from 用户名@ip;
原文地址:https://www.cnblogs.com/nadou/p/13999201.html