zoukankan      html  css  js  c++  java
  • 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;
    
  • 相关阅读:
    Django中DEBUG模式详解
    Nginx 的负载均衡
    django 上线配置
    vue 项目实现打印
    vue 一键复制,vue-clipboard2的使用方法
    404.vue
    vue-router封装和用户是否需要登录
    uni-app uview 的使用方法
    grid自适应列表
    tomcat的目录分别代表什么含义
  • 原文地址:https://www.cnblogs.com/nadou/p/13999201.html
Copyright © 2011-2022 走看看