精华内容
下载资源
问答
  • SQL学习笔记

    千次阅读 2020-03-06 21:08:49
    SQL学习笔记 SQL语法规则 SQL语句总是以关键字开始,如SELECT、INSERT、UPDATE、DELETE、DROP、CREATE。 SQL语句以分号结尾。 SQL不区分大小写,意味着update与UPDATE相同。 初级SQL语句 SELECT选择 SELECT和FROM...

    SQL学习笔记

    SQL语法规则

    SQL语句总是以关键字开始,如SELECT、INSERT、UPDATE、DELETE、DROP、CREATE。
    SQL语句以分号结尾
    SQL不区分大小写,意味着update与UPDATE相同。

    初级SQL语句
    1. SELECT选择

      SELECT和FROM他们必须按顺序排列。SELECT指示要查看哪些列,FROM标识它们所在的表。
      SQL SELECT 语法如下所示:

      !*号代表可用的所有字段,如:

      SELECT column1, column2, ... FROM table_name;
      SELECT * FROM table_name;
      
    2. SQL SELECT DISTINCT(选择不同) 语法

      SELECT DISTINCT语法用于仅返回不同的(different)值。
       在一张表内,一列通常包含许多重复的值; 有时你只想列出不同的(different)值。

      表名:mytable

      id sex years
      1 1 18
      2 0 18
      3 1 20

      若使用

      SELECT years FROM mytable;
      

      则输出18,18,20

      SELECT DISTINCT years FROM mytable;
      

      则输出18,20

    3. SQL WHERE Clause(查询子句)

      ​ WHERE 子句用于过滤记录
       WHERE 子句用于提取满足指定标准的记录。

      语法:

      SELECT value1, value2, ...
      FROM table_name
      WHERE condition;
      

      !! WHERE子句不仅用于SELECT语法,还用于UPDATE,DELETE语法等!

      SELECT * FROM mytable WHERE years=18;
      

      则输出前两行的数据

    4. SQL AND, OR and NOT

      与编程中的&& || !一样的道理,不过多的介绍

    5. SQL ORDER BY Keyword(按关键字排序)

      ORDER BY 关键字用于按升序或降序对结果集进行排序。
       ORDER BY 关键字默认情况下按升序排序记录。

      如果需要按降序对记录进行排序,可以使用DESC关键字。

      ASC为升序,DESC为降序
      SELECT * FROM mytable ORDER BY years ASC, id DESC;
      
    6. SQL INSERT INTO 语句(在表中插入)

      INSERT INTO 语句用于向表中插入新的数据行

      1.第一个表单没有指定要插入数据的列的名称,只提供要插入的值,即可添加一行新的数据:

      INSERT INTO mytable(id,sex,years) VALUES (4,0,19);
      

      2.第二种,如果要为表中的所有列添加值,则不需要在SQL查询中指定列名称。但是,请确保值的顺序与表中的列顺序相同

      INSERT INTO mytable VALUES (5,1,23);
      

      !使用一个表来填充另一个表

      可以通过另一个表上的SELECT语句查询出来的字段值,然后将数据填充到本表中,条件是另一个表所查询的字段与本表要插入数据的字段是一一对应的。

      INSERT INTO first_table_name [(value1, value2, ... valueN)] 
      SELECT value1, value2, ...valueN 
      FROM second_table_name
      [WHERE condition];
      
    7. SQL NULL Values(空值)

      SQL 中,NULL 用于表示缺失的值。数据表中的 NULL 值表示该值所处的字段为空。

      测试空值

      IS NULL语法:
       SELECT column_names
       FROM table_name
       WHERE column_name IS NULL;
      
      IS NOT NULL语法:
       SELECT column_names
       FROM table_name
       WHERE column_name IS NOT NULL;
      
    8. SQL UPDATE 语句(更新表中的记录)

      UPDATE 语句用于更新表中已存在的记录。
       还可以使用AND或OR运算符组合多个条件。

      UPDATE table_name
      SET column1 = value1, column2 = value2, ...
      WHERE condition;
      

      !!!警告
      更新记录时要小心。如果您省略WHERE子句所有记录将被更新!

    9. SQL DELETE语句(删除)

      好啦!结束了,你问我为什么这个就一个标题?当然是为了防止你删库跑路啦!!!

      alt

    展开全文
  • sql学习笔记

    千次阅读 多人点赞 2021-05-04 18:15:54
    文章目录学习笔记(针对MYSQL)SQL数据库操作SQL语句基本类型SQL约束SQL单表查询操作SQL多表操作:SQL返回结果操作:SQL聚合函数 学习笔记(针对MYSQL) !!! SQL对大小写不敏感 SQL数据库操作 类型 含义 语法 ...

    学习笔记(针对MYSQL)

    !!! SQL对大小写不敏感

    SQL数据库操作

    类型 含义 语法
    create database 创建数据库 CREATE DATABASE database_name
    create table 创建一张表 CREATE TABLE 表名称 ( 列名称1 数据类型, 列名称2 数据类型, 列名称3 数据类型, … )
    insert into…values 向表中插入一条信息 INSERT INTO table_name (列1, 列2,…) VALUES (值1, 值2,…)
    delete from 从表中删除一条信息 DELETE FROM 表名称 WHERE 列名称 = 值
    update…set…where 在where的位置,更新内容为set的值 UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值
    drop table 删除表 DROP TABLE 表名称
    truncate 清空表中内容 TRUNCATE TABLE 表名称
    alter table…add 向表中添加某个属性 ALTER TABLE table_name ADD column_name datatype
    alter table…drop 删除某个属性 ALTER TABLE table_name DROP COLUMN column_name

    SQL语句基本类型

    类型 含义
    char(n) 存放固定长度的字符串,用户指定长度为n。如果没有使用n个长度则会在末尾添加空格。
    varchar(n) 可变长度的字符串,用户指定最大长度n。
    int 整数类型
    smallint 小整数类型
    numeric(p,d) 定点数,精度由用户指定。这个数有p位数字(包括一个符号位)d位在小数点右边。
    real ,double precision 浮点数和双精度浮点数。
    float(n) 精度至少位n位的浮点数

    SQL约束

    类型 含义 用法
    primary key 主键 primary key(字段名)
    foreign key references 外键 foreign key(字段名) references 外键表
    not null 不为空 字段属性 not null
    unique 唯一标识 unique(字段名)
    check 限制列中的值的范围 check(字段值限制)
    DEFAULT 向列中插入默认值 DEFAULT 默认值

    SQL单表查询操作

    类型 含义 语法
    select 要查找表所含有的属性 *代表全部 SELECT 列名称 FROM 表名称||SELECT * FROM 表名称
    from 要操作的表
    where 判断条件(可使用操作符) SELECT 列名称 FROM 表名称 WHERE 列 运算符 值
    and 在where后使用:将判断条件连接起来
    or 在where中使用:判断条件多选一
    not 在where中使用:not表示判断条件相反
    like 在where中使用:搜索列中的指定模式与通配符一起使用,可使用正则表达式 SELECT column_name(s) FROM table_name WHERE column_name LIKE pattern
    in 在where中使用:规定多个值 SELECT column_name(s) FROM table_name WHERE column_name IN (value1,value2,…)
    between 在where中使用between…and…表示一个数在两个数值之间取值 SELECT column_name(s) FROM table_name WHERE column_name BETWEEN value1 AND value2
    not between between的反义词,在两个数之外取值
    union/union all 将两个SQL语句做并运算,并且自动去重,添加all表示不去重 SELECT column_name(s) FROM table_name1 UNION SELECT column_name(s) FROM table_name2
    intersect/intersect all 将两个SQL语句做交运算,并自动去重,添加all表示不去重
    except/except all 将两个SQL语句做差运算,并且自动去重,添加all表示不去重
    is null 在where中使用is null表示这个值是空值
    is not null 在where中使用is not null表示这个值不是空值

    SQL多表操作:

    类型 含义 语法
    A,B 在from后面通过逗号连接多张表,表示将这些表进行笛卡尔积运算
    left join 左外连接,以左边为基准进行连接,右边没有的用NULL代替 SELECT column_name(s) FROM table_name1 LEFT JOIN table_name2 ON table_name1.column_name=table_name2.column_name
    right join 右外连接,以右边为基准进行连接,左边没有的用NULL代替 SELECT column_name(s) FROM table_name1 RIGHT JOIN table_name2 ON table_name1.column_name=table_name2.column_name
    full join 全然外连接,将两表完全合并,没有的用NULL代替 SELECT column_name(s) FROM table_name1 FULL JOIN table_name2 ON table_name1.column_name=table_name2.column_name
    join/inner join 内连接,只连接两表皆有,其他删除 SELECT column_name(s) FROM table_name1 INNER JOIN table_name2 ON table_name1.column_name=table_name2.column_name
    corss join 交叉连接,结果为两表的笛卡尔积
    A join B using© 将A和B通过c属性自然连接

    SQL返回结果操作:

    类型 含义 语法
    order_by 根据指定的列对结果集进行排序(默认升序)
    limit 限制查询结果条数 SELECT column_name(s) FROM table_name LIMIT number
    desc 在排序后使用,表示采用降序
    asc 在排序后使用,表示采用升序
    distinct 去重 SELECT DISTINCT 列名称 FROM 表名称
    all 不去重

    SQL聚合函数

    类型 含义 语法
    avg 平均值 SELECT AVG(column_name) FROM table_name
    min,max 最小,大值 SELECT MIN(column_name) FROM table_name
    first,last 第一,最后一个个记录的值 SELECT FIRST(column_name) FROM table_name
    ucase,lcase 字段的值转换为大写,小写 SELECT UCASE(column_name) FROM table_name
    mid 文本字段中提取字符 SELECT MID(column_name,start[,length]) FROM table_name
    len 文本字段中值的长度 SELECT LEN(column_name) FROM table_name
    round 数值字段舍入为指定的小数位数 SELECT ROUND(column_name,decimals) FROM table_name
    now 当前的日期和时间 SELECT NOW() FROM table_name
    format 字段格式化 SELECT FORMAT(column_name,format) FROM table_name
    sum 总和
    count 计数 SELECT COUNT(column_name) FROM table_name
    group by 将在group by上取值相同的信息分在一个组 SELECT column_name, aggregate_function(column_name) FROM table_name WHERE column_name operator value GROUP BY column_name
    having 对group by产生的分组进行筛选,可以使用聚和函数 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
    展开全文

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 125,038
精华内容 50,015
关键字:

sql学习笔记