4.2 数据库基础

2.1 SQL语言

2.1.1 分类

  • DDL(Data Definition Language)
    数据定义语言,用来定义数据库对象:库、表、列
  • DML(Data ManipulationLanguage)
    数据操作语言,用来定义数据库记录(数据)增删改
  • DCL(Data Control Language)
    数据控制语言,用来定义访问权限和安全级别
  • DQL(Data Query Language)
    数据查询语言,用来查询记录(数据)查询

2.1.1.1 DDL

    /**
    *操作数据库
    */
    
    //1.创建
    //create database 数据库名 
    CREATE DATABASE mydb1; 
    //create database 数据库名 character set 编码方式 
    CREATE DATABASE mydb2 character SET GBK; 
    //create database 数据库名 set 编码方式 collate 排序规则 
    CREATE DATABASE mydb3 character SET GBK COLLATE gbk_chinese_ci;
    
    //2.查看
    //查看当前数据库服务器中的所有数据库
    show databases;
    //查看前面创建的mydb2数据库的定义信息
    Show CREATE DATABASE mydb2;
    
    //3.修改
    //查看服务器中的数据库,并把mydb2的字符集修改为utf8;
    ALTER DATABASE mydb2 character SET utf8;
    
    //4.删除
    DROP DATABASE mydb3;
    
    //5.其他
    //查看当前使用的数据库
    Select database();
    //切换数据库: use 数据库名
    use mydb2;
    /**
    /*操作表
    */
    //1.创建表(语法)
    CREATE TABLE 表名( 
        列名1 数据类型 [约束], 
        列名2 数据类型 [约束], 
        列名n 数据类型 [约束]
    );
    //说明:表名,列名是自定义,多列之间使用逗号间隔,最后一列的逗号不能写,[约束]表示可有可无
    CREATE TABLE Employees( 
        id INT , 
        age INT , 
        first VARCHAR(255), 
        last VARCHAR(255) 
    );
    
    //2.删除表
    DROP TABLE table_name;
    
    //3.当前数据库中的所有表
    show tables;
    
    //4.查看表的字段信息
    DESC employee;
    
    //5.修改表
        //5.1修改列属性
        ALTER TABLE employee MODIFY job varchar(60); 
        ALTER TABLE employee change job job varchar(60);
        
        //5.2修改列名
        ALTER TABLE user CHANGE name username varchar(100);
    
        //5.3删除列,一次删除一列
        ALTER TABLE employee DROP image;
        
        //5.4 修改表名
        Alter TABLE user rename users;
        
        //5.5 查看建表细节
        show create talbe user;
        
        //5.6 修改表的字符集
        alter table user character set gbk;

2.1.1.2 DML

  • 在mysql中,字符串类型和日期类型都要用单引号括起来
  • DELETE 删除表中的数据,表结构还在;删除后的数据可以找回;一行行删
  • TRUNCATE 删除是把表直接DROP掉,然后再创建一个同样的新表;全删,执行速度快。

2.1.1.3 DCL

    //1.创建用户:
    //create user 用户名@ip identified by 密码
    create user 'test1'@'localhost' identified by '123'
    
    //create user 用户名@'%' identified by 密码,任意ip均可登录
    create user 'test2'@'%' identified by '111'
    
    //2.用户授权
    //grant 权限1.权限2... on 数据库名.* to 用户名@ip 给指定用户授予指定权限
    grant insert,delete on mydb2.* to 'test1'@'localhost'
    //grant all on *.* to 用户名@ip 给指定用户授予所有权限
    grangt all on *.* to 'test2'@'localhost' 
    
    //3.权限查询
    show grants for 'test1'@'%';
    
    //4.撤销权限
    remove select on *.* from 'test2'@'localhost';
    
    //5.删除用户
    drop user 'test'@'localhost';

2.1.1.4 DQL

  • 简单查询、条件查询、模糊查询、字段控制查询(去除重复值disitnct,别名设置)、排序(默认升序。升序:asc,降序:desc)、集合函数、分组查询(having子句、多列分组)、LIMIT(分页查询)

having和where区别

  1. having是在分组后对数据进行过滤,where是在分组前对数据进行过滤
  2. having后面可以使用分组函数(统计函数).where后面不可以使用分组函数。
posted @ 2021-04-25 22:36  芥纳须弥  阅读(80)  评论(0)    收藏  举报