数据库及SQL相关

作者: 木子饼干 | 来源:发表于2018-11-06 08:55 被阅读38次

    数据库和SQL

    数据库:一个存放数据的仓库,按照一定的数据结构来存储的。用户可以对文件中的数据运行新增、截取、更新、删除等操作。
    SQL:结构化查询语言(Structured Query Language),是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统同时也是数据库脚本文件的扩展名

    SQL的分类

    DDL: 数据库定义语言, 与数据库/表结构: create, drop, alter

    DML: 数据操纵语言: 操作表数据 insert update delete

    DCL: 数据控制语言: 设置用户的访问权限 安全

    DQL: 数据查询语言: select from where

    数据库相关操作

    • 创建数据库: create database 数据库的名字

      create database leecore;
      
    • 删除数据库 :drop database 数据库名字

      drop database leecore;
      
    • 修改数据库: alter database character set 字符集

      alter database leecore character set utf8 ;
      
    • 查看数据库:

       查看所有数据库

       show databases; 
    
    • 查看数据库定义: show create database 数据库名字

      show create database leecore ;
      
    • 查看当前正在使用的数据库

      select database(); 
      
    • 选中数据库: use 数据库的名字

        use leecore 
      

    数据表的操作

    1. 创建表 :

    create table 表名(
    列名 列的类型(长度) 约束,
    列名1 列的类型(长度) 约束,
    列名2 列的类型(长度) 约束
    );

      create table user(id int primary key auto_increment,
      name varchar(20) not null,
      sex int,
      info varchar(20)
     );
    
    • 列的约束

        主键约束: primary key

        唯一约束: unique

        非空约束: not null

    2. 删除表 : drop table 表名

      drop table user;
    

    3. 修改表:

        添加列 :alter table 表名 add 列名 列的类型 列的约束

      alter table user add age int ;
    

        修改列 : alter table 表名 modify 列名 列的类型 列的约束

      alter table user modify info varchar(30);
    

        修改列名 : alter table 表名 change 旧列名 新列名 列的类型 列的约束

      alter table user change info userinfo varchar(20) not null;
    

        删除列 : alter table 表名 drop 列名

      alter talbe user drop userinfo;
    

        修改表的字符集 : alter table 表名 character set 字符集

      alter table user character set utf8;
    

        修改表名 : rename table 旧表名 to 新的表名

       rename table user to puser
    

    4. 查看表 :

        查看当前数据库中所有的表名:

      show tables;
    

        查看表的定义结构/创建语句(建表语句):show create table 表名:

        show create table user;
    

        查看表的结构:desc 表名

       desc user;
    

    数据的增删改查

    1. 插入数据:

        insert into 表名(列名1,列名2)values(值1,值2);

        insert into 表名 values(值1,值2);

        批量插入:insert into 表名values(值1,值2),(值1,值2),(值1,值2);
    以下表为例


    image.png
    image.png
      insert into user values(null,'饼干',24,'木子饼干');
    

    2. 删除数据

        delete from 表名 [where 条件]

      delete from user where name='饼干';
    

        truncate table 表名: 先删除表,再重建表

    3. 更新数据

        update 表名 set 列名=值, 列名=值 [where 条件]

      update user set age=3 where name='饼干';
    

    4. 查询数据

    • 4.1. 通用格式: select [distinct] [*] [列名1,列名2] from 表名 where 条件 group by ..having 条件过滤 order by排序

       select * from user where name='饼干';
      
    • 4.2. 关系运算符:
          <> 不等于 ;
          != 不等于;

      select * from user where age > 0;
      
    • 4.3. 逻辑运算符:
          and or not ;in 在范围中
      select * from user where age in(3);

    • 4.4. 模糊查询 like:
          _ 表示的单个字符
          % 表示的是多个字符
      查询所有姓饼两个字的学生成绩。

       select * from user where name like '饼%';
      

      查询所有姓饼的学生成绩。

        select * from user where name like '饼%';
    

    别名查询 as

    • 4.5. 聚合函数:

        sum : 求和

      select sum (age) from user;
    

        avg() : 平均值

      select avg(age) from user;
    

        count() : 统计数量

       select count(id) from user where age>3;
    

        max() : 最大值

      select max(age) from user;
    

        min() : 最小值

      select min(age) from user;
    
    • 4.6. 排序 order by:

        asc : ascend 升序

           select * from user order by age ascend 
    

        desc : descend 降序

       select * from user order by age desc
    
    • 4.7. 分组 group by

    相关文章

      网友评论

        本文标题:数据库及SQL相关

        本文链接:https://www.haomeiwen.com/subject/qzboaftx.html