zoukankan      html  css  js  c++  java
  • sql语句汇总

    一、sql简介

    1、SQL,指结构化查询语言,全称是 Structured Query Language。用于访问和处理数据库的标准的计算机语言。

    2、SQL 对大小写不敏感:SELECT 与 select 是相同的。

    3、重要的sql命令:

    SELECT - 从数据库中提取数据

    UPDATE - 更新数据库中的数据

    DELETE - 从数据库中删除数据

    INSERT INTO - 向数据库中插入新数据

    CREATE DATABASE - 创建新数据库

    ALTER DATABASE - 修改数据库

    CREATE TABLE - 创建新表

    ALTER TABLE - 变更(改变)数据库表

    DROP TABLE - 删除表

    CREATE INDEX - 创建索引(搜索键)

    DROP INDEX - 删除索引

    二、sql命令

    1、创建数据库

    CREATE DATABASE <数据库名>;
    eg: CREATE DATABASE mytest;

    2、查看所有数据库

    show databases;

    3、删除数据库

    drop database <数据库名>;
    eg: drop database mytest;

    4、选择数据库

    use <数据库名>;
    eg: use mytest;

    5、设置使用的字符集

    set names utf8

    6、创建数据表

    CREATE TABLE table_name (column_name column_type);

    sql约束:

    (1)NOT NULL - 指示某列不能存储 NULL 值。

    (2)UNIQUE - 保证某列的每行必须有唯一的值。

    (3)PRIMARY KEY - NOT NULL 和 UNIQUE 的结合。确保某列(或两个列多个列的结合)有唯一标识,有助于更容易更快速地找到表中的一个特定的记录。

    (4)FOREIGN KEY - 保证一个表中的数据匹配另一个表中的值的参照完整性。

    (5)CHECK - 保证列中的值符合指定的条件。

    (6)DEFAULT - 规定没有给列赋值时的默认值。

    7、查看当前数据库中的所有表

    show tables;

    8、查看表结构

    DESC <表名>;

    9、查询数据

    (1)基本查询

    SELECT * FROM <表名>;

    (2)投影查询

    SELECT column_name,column_name
    FROM table_name;

    (3)查询结果返回唯一值

    SELECT DISTINCT column_name,column_name
    FROM table_name;

    (4)条件查询

    SELECT * FROM <表名> WHERE <条件表达式>;

    (5)排序

    SELECT column_name,column_name
    FROM table_name
    ORDER BY column_name,column_name ASC|DESC;

    (6)分页查询

    SELECT column_name(s)
    FROM table_name
    LIMIT number OFFSET 起始值;

    (7)聚合查询

    1、COUNT()统计一张表的数据量

    SELECT COUNT(*)  FROM <表名> WHERE <条件表达式>;

    2、SUM()  计算某一列的合计值,该列必须为数值类型

    SELECT SUM(*)  FROM <表名> WHERE <条件表达式>

    3、AVG()  计算某一列的平均值,该列必须为数值类型

    SELECT AVG(*)  FROM <表名> WHERE <条件表达式>

    4、MAX()  计算某一列的最大值

    SELECT MAX(*)  FROM <表名> WHERE <条件表达式>

    5、MIN()  计算某一列的最小值

    SELECT MIN(*)  FROM <表名> WHERE <条件表达式>

    6、GROUP BY 语句用于结合聚合函数,根据一个或多个列对结果集进行分组

    SELECT column_name, aggregate_function(column_name)
    FROM table_name
    WHERE column_name operator value
    GROUP BY column_name;

    7、HAVING 子句可以让我们筛选分组后的各组数据。

    SELECT column_name, aggregate_function(column_name)
    FROM table_name
    WHERE column_name operator value
    GROUP BY column_name
    HAVING aggregate_function(column_name) operator value;

    (8)多表查询(笛卡尔查询)

    SELECT * FROM <表1> <表2>;

    (9)连接查询

    SELECT ... FROM tableA  JOIN tableB ON tableA.column1 = tableB.column2;

    (10)合并查询

    SELECT column_name(s) FROM table1
    UNION
    SELECT column_name(s) FROM table2;

    (11)AND & OR 运算符用于基于一个以上的条件对记录进行过滤。

    (12)WHERE 子句用于过滤记录。

    (13)ORDER BY 关键字用于对结果集进行排序。

    (14)LIKE 操作符用于在 WHERE 子句中搜索列中的指定模式。

    SELECT column_name(s)
    FROM table_name
    WHERE column_name LIKE pattern;

    (15)通配符可用于替代字符串中的任何其他字符。(%:替代 0 个或多个字符,_:替代一个字符)

    (16)IN 操作符允许您在 WHERE 子句中规定多个值。

    SELECT column_name(s)
    FROM table_name
    WHERE column_name IN (value1,value2,...);

    IN 与 = 的异同

    •  相同点:均在WHERE中使用作为筛选条件之一、均是等于的含义
    •  不同点:IN可以规定多个值,等于规定一个值

    (17)BETWEEN 操作符用于选取介于两个值之间的数据范围内的值。

    SELECT column_name(s)
    FROM table_name
    WHERE column_name BETWEEN value1 AND value2;

    (18)别名

    列的别名写法:

    SELECT column_name AS alias_name
    FROM table_name;

    表的别名写法:

    SELECT column_name(s)
    FROM table_name AS alias_name;

    (19)MySQL Date 函数

    MySQL 使用下列数据类型在数据库中存储日期或日期/时间值:

    • DATE - 格式:YYYY-MM-DD
    • DATETIME - 格式:YYYY-MM-DD HH:MM:SS
    • TIMESTAMP - 格式:YYYY-MM-DD HH:MM:SS
    • YEAR - 格式:YYYY 或 YY

    下面的表格列出了 MySQL 中最重要的内建日期函数:

    函数描述
    NOW() 返回当前的日期和时间    SELECT NOW() FROM table_name;
    CURDATE() 返回当前的日期
    CURTIME() 返回当前的时间
    DATE() 提取日期或日期/时间表达式的日期部分
    EXTRACT() 返回日期/时间的单独部分
    DATE_ADD() 向日期添加指定的时间间隔
    DATE_SUB() 从日期减去指定的时间间隔
    DATEDIFF() 返回两个日期之间的天数
    DATE_FORMAT() 用不同的格式显示日期/时间

    10、修改数据

    (1)插入数据

    INSERT INTO <表名> (字段1, 字段2, ...) VALUES (值1, 值2, ...);

    (2)更新数据

    UPDATE <表名> SET 字段1=值1, 字段2=值2  WHERE <条件表达式>;

    (3)删除数据

    DELETE FROM <表名> WHERE <条件表达式>;

    (4)插入或替换数据(插入数据,如果数据存在,先删除再插入)

    REPLACE INTO <表名> (字段1, 字段2, ...) VALUES (值1, 值2, ...);

    (5)插入或更新数据(插入数据,如果数据存在,则更新数据)

    INSERT INTO <表名>(字段1,字段2,...) VALUES (值1,值2,...) ON DUPLICATE KEY UPDATE <条件表达式>;

    (6)插入或忽略数据(插入数据,如果数据存在,则不插入)

    INSERT IGNORE INTO <表名>(字段1,字段2,...) VALUES (值1,值2,...);

    (7) 快照: INSERT INTO SELECT 语句从一个表复制数据,然后把数据插入到一个已存在的表中。

    INSERT INTO table2
    SELECT * FROM table1;

    复制部分列到另一个已存在的表中:

    INSERT INTO table2
    (column_name(s))
    SELECT column_name(s)
    FROM table1;
  • 相关阅读:
    ADF中遍历VO中的行数据(Iterator)
    程序中实现两个DataTable的Left Join效果(修改了,网上第二个DataTable为空,所处的异常)
    ArcGIS api for javascript——鼠标悬停时显示信息窗口
    ArcGIS api for javascript——查询,然后单击显示信息窗口
    ArcGIS api for javascript——查询,立刻打开信息窗口
    ArcGIS api for javascript——显示多个查询结果
    ArcGIS api for javascript——用图表显示查询结果
    ArcGIS api for javascript——查询没有地图的数据
    ArcGIS api for javascript——用第二个服务的范围设置地图范围
    ArcGIS api for javascript——显示地图属性
  • 原文地址:https://www.cnblogs.com/yudx/p/12802507.html
Copyright © 2011-2022 走看看