SQL语句

1 篇文章 0 订阅
1 篇文章 0 订阅

SQL语句


大纲


  • Linux的安装与相关命令
    • 安装MySQL

      sudo apt-get install mysql-server
      sudo apt-get install mysql-client
      sudo apt-get install libmysqlclient-dev

    • 相关命令
      • 启动服务器

        sudo service mysql [start | stop | restart]

      • 链接数据库

        sudo mysql -u root -p


  • DOS相关命令
    • 启动/停止 MySQL服务

      net [start | stop | restart] mysql

    • 链接数据库

      mysql -h localhost -u root -p


  • 数据类型与约束
    • 类型
      • 整数
        tinyint, smallint, mediumint, int, bigint
      • 浮点数&定点数
        float, double, decimal
      • 时间/日期
        date, time, year, datetime, timestamp
      • 字符类型
        char, varchar, tintblob, tinytext, blub, text, mediumblob, mediumtext, longblob, longtext
    • 约束
      • 主键约束(Primary Key)
        主键约束要求主键列的数据唯一,并且不能为空
      • 外键约束(Foreign Key)
        外键用来在两个表的数据之间建立连接,它可以是一列或者多列
      • 非空约束(Not Null)
        非空约束指字段的值不能为空
      • 唯一性约束(Unique)
        唯一性约束要求该列唯一
      • 默认约束(Default)
        默认约束指定某列的默认值
      • 自动递增(auto_increment)
        数据会依次自动递增

  • 数据库操作
    • 查看数据库
      SHOW DATABASES;

      show databases;
    • 查看当前使用的数据库
      SELECT DATABASE();

      select database();
    • 创建数据库
      CREATE DATABASE [databaseName] charset=utf8;

      create database [databaseName] charset=utf8;
    • 删除数据库
      DROP DATABASE [databaseName];

      drop database [databaseName];
    • 使用数据库
      USE [databaseName];

      use [databaseName];

  • 表操作
    • 查看表
      SHOW TABLES;

      show tables;
    • 查看表接口
      DESC [tabelName];

      desc [tableName];
    • 创建表
      CREATE TABLE [tableName] ( [fieldName] [dataType] [dataConstraints] );
    • 修改表-添加字段
      ALERT TABLE [tableName] ADD [fieldName] [dataType];

      alter table [tableName] add [fieldName] [dataType];
    • 修改表-修改字段类型与约束
      ALERT TABLE [tableName] MODIFY [fieldName] [dataType] [dataConstraints];

      alert table [tableName] modify [fieldName] [dataType] [dataConstraints];
    • 修改表-修改字段名
      ALERT TABLE [tableName] CHANGE [oldFieldName] [newFieldName] [dataType] [dataConstraints];

      alert table [tableName] change [oldFieldName] [newFieldName] [dataType] [dataConstraints];
    • 修改表-删除字段
      ALERT TABLE [tableName] DROP [fieldName];

      alert table [tableName] drop [fieldName];
    • 删除表
      DROP TABLE [tableName];

      drop table [tableName];

  • 数据操作
    • 查询数据
      SELECT [fieldName or *] FROM [tableName];

      select [fieldName or *] from [tableName];
    • 插入数据
      INSERT INTO [tableName] [([fieldName])] values([datas]);

      insert into [tableName] [([fieldName])] values([datas]);
    • 修改数据
      UPDATE [tableName] SET [fieldName]=[date] … WHERE [dataConditions];
    • 删除数据
      DELETE FROM [tableName] WHERE [dataConditions];

  • 语句与运算符
    • as 关键字
      as 关键字用来给字段或表定义别名
    • 条件语句与运算符
      where后面支持多种运算符,进行条件的处理
      • 比较运算符
        =, >, <, >=, <=, !=, <>
      • 逻辑运算符
        and, or, not
      • 模糊查询
        like

        %表示任意多个任意字符, _表示一个任意字符
      • 范围查询
        in表示在一个非连续的范围内

        between … and …表示在一个连续的范围内
      • 空判
        is null, is not null
    • 优先级
      ()>not>比较运算符>and>or

  • 排序与分页
    • 查询+排序
      SELECT [fieldName or *] FROM [tableName] ORDER BY [fieldName] [asc|desc] …;

      select [fieldName or *] from [tableName] order by [fieldName] [asc|desc] …;

      asc升序(默认)

      desc降序
    • 查询+分页
      SELECT * FORM [tableName] LIMIT start=0,count;

      select * from [tableName] limit start=0,count;

      从start开始,获取count条数据

  • 聚合函数
    • 总数
      计算总行数,写字段名和通配符结果相同

      SELECT count([fieldName or *]) FROM [tableName];

      select count([fieldName or *]) from [tableName];
    • 最大值
      获取字段的最大值

      SELECT max([fieldName]) FROM [tableName];

      select max([fieldName]) from [tableName];
    • 最小值
      获取字段的最小值

      SELECT min([fieldName]) FROM [tableName];

      select min([fieldName]) from [tableName];
    • 求和
      计算字段内数据的合

      SELECT sum([fieldName]) FROM [tableName];

      select sum([fieldName]) from [tableName];
    • 平均值
      计算字段的平均值

      SELECT avg([fieldName]) FROM [tableName];

      select avg([fieldName]) from [tableName];

  • 分组
    • group by
      SELECT [fieldName or *] FROM [tableName] GROUP BY [fieldName];

      select [fieldName or *] from [tableName] group by [fieldName];

      将以 group by 后的字段进行分组
    • group by + group_concat()
      使用group_concat()来查询每一个分组中某字段的集合

      SELECT [fieldName or *], group_concat([fieldName]) FROM [tableName] GROUP BY [fieldName];

      select [fieldName or *], group_concat([fieldName]) from [tableName] group by [fieldName];

  • 连接查询
    • 内连接
      获取两个表中字段匹配关系的记录
    • 左连接
      获取左表所有记录,即使右表没有记录
    • 右连接
      获取右表所有记录,即使左表没有记录
    • 语法
      select * from [tableName_1] [inner|left|right] join [tableName_2] on [tableName1].[fieldName] [operator] [tableName2].[fieldName]
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值