MySQL的使用入门
SQL分类
英文 | 中文名称 | 功能 | 关键字 |
---|---|---|---|
DDL | 数据定义 | 定义库、表、列、索引等对象 | create drop alter |
DML | 数据操纵 | 增删改查,检查数据完整性 | insert delete updeta select |
DCL | 数据控制 | 访问权限和安全级别 | grent revoke |
DDL
1、查看数据
- 查看数据库
show databases;
其中除了用户自定义的数据之外,还有4个自带的数据库
1.information_schema
存储用户表信息,列表信息,权限信息,字符集信息,分区信息。所有用户根据权限查看
2.performation_schema
性能相关的动态参数表
3.sys
基于上述两个表进行封装更加易于诊断和调优的视图
4.mysql
用户权限信息
- 查看所有表
切换数据库
use 数据库名;
show tables;
查看表的结构
desc 表名;
show create table 表名;
desc仅仅查看表的结构
show create table 表名 能显示表的创建字段显示更加丰富的信息
2、删除数据
drop database 数据库名称;
drop table 表名称;
3、创建数据
create database 数据库名;
create table 表名(列名 类型 约束, .....);
4、数据修改
数据修改主要针对表的操作,以alter table 表名 为开头
alter table 表名 modify 列明 类型 [first | after 字段名];
alter table 表名 change 旧列名 新列名 类型 [first | after 字段名];
alter table 表名 add 字段 类型;
alter table 小明 drop 字段名;
alter table 旧表名 rename [to] 新表名;
其中modify和change的不同在于modify修改的是字段的类型而change能修改字段的字段名称。后面必须跟上类型,否则会报错
其中first和after为mysql扩充的语法,不属于标准的sql语法,意思为改变字段的顺序。
DML
1、插入操作
insert into 表名(字段1,字段2,....) values (值1,值2,...),(值1,值2,...)....;
insert into 表名 values (值1,值2,...);
第一种是按照字段插入一个或者是多个值,第二种是按照顺序进行插入。
2、更新操作
update 表名 set 字段=值,...[where...];
一般来说需要加上where等控制
3、删除操作
delete from 表名,....[where...]
删除操作可以删除一个或者多个表的数据。
4、查询操作
1、* 代表全部
2、去重 distinct 不能使用多个字段
3、条件查询 where
4、排序查询 order by 关键字为desc降序和asc升序 可以跟多个字段,用逗号隔开并按照顺序显示。
5、limit[start,count] start表示第一条数据的下标 conut表示显示的条数 mysl 为从0开始计数,是扩展的语法。
limit的运算的运算方式为start=(页数-1)*count
6、聚合查询
聚合函数 sum(求和)、count(*)记录数、avg(平均数)、max(最大值)、min(最小值)
group by 关键字 分类
having 表示对分类聚合后的结果进行过滤
having对聚合后进行过滤 where则对聚合前过滤 ,在逻辑允许的情况下应该为先where后having
7、连接查询
左连接:以左表为准,
右连接:以右表为准
select * from 表名1 left|right join 表名2 on ...
8、子查询 in
当记录数唯一的时候 要用where来代替in
可以用in来转化为表连接 in里面可以跟一些特殊的查询的SQL 语句的结果
9、记录联合 用于联合sql语句 union|union all
union all相当于全部连接
union 相当于有一个distinct关键字
DCL
grant 表示定义一个权限 revoke 表示变更权限
1、定义一个用户
create use '用户名'@'host' identified by '密码';
2、给用户权限
grant select|update|delete|insert on 数据库名.表名 to '用户名'@'host';
3、变更用户权限
revoke select|update|delete|insert on 数据库名.表名 from '用户名'@'host';
其中host代表指定该用户可以在那个主机上进行登录,本地为localhost *为数据库名和表名通配符 例如*.*