SQL基础

*基础知识

  • SQL语句种类:
    1. DDL(Data Definition Language):数据定义语言,用来创建或删除表或数据库。(CREATEDROPALTER
    2. DML(Data Manipulation Languahe):用来查询或变更表中的记录。(SELECTINSERTUPDATEDELETE
    3. DCL(Data Control Language):用来确定或取消对数据的变更,还可以设置RDBMS用户的权限。(COMMITROLLBACKGRANTREVOKE)
  • SQL不区分关键字的大小写。
  • 命名规则:1. 只能使用半角英文字母、数字、下划线作为数据库、表和列的名称;
    2. 名称必须以半角英文字母开头。
  • 基本数据类型:
    1. INTERGER型:整数
    2. CHAR型:定长字符串,可用CHAR(LEN)指定可存储的最大长度;当列中存储的字符串长度达不到最大长度时,使用半角空格进行补足。
    3. VARCHAR型:可变长字符串,同样可用VARCHAR(LEN)指定最大长度;当列中字符数未达最大长度,不会用半角空格补足。
    4. DATE型:指定存储日期。
  • 注释语法:①单行注释:--
         ②多行注释:/**/
  • 约束:对整个表或某列中的数据追加限制。
    1. 列约束:写在列定义的最后,常见:NOTNULL
    2. 表约束:写在表定义的最后,常见:PRIMARY KEY(field_name)
  • 空白字符的使用:SQL以;作为一条语句的结尾,且在一条SQL语句中可随意使用换行符。

*基础语句

  1. 列出数据库:SHOW DATABASES;

  2. 选择数据库:USE <数据库名称>;

  3. 创建数据库:CREATE DATABASE <数据库名称>;

  4. 列出当前库的表:SHOW TABLES;

  5. 创建表:CREATE TABLE <表名>;

    CREATE TABLE <表名>
    (<列名1> <数据类型> <该列所需约束>,
     <列名2> <数据类型> <该列所需约束>,
     			...
     <该表的约束1>,<该表的约束2>, ...
    )
    
  6. 重命名表:RENAME TABLE <NAME1> to <NAME2>;(MySQL)

  7. 删除表:DROP TABLE <表名>;

  8. 表更新:
    ①列更新:ALTER TABLE <表名> ADD/DROP (COLUMN) <列定义>/<列名>;

    ②行插入:INSERT INTO <表名> VALUES ('数据1','数据2'...);

    -- 行的插入较特殊
    BEGIN TRANSACTUIN;
    INSERT INTO <表名> VALUE ('数据1','数据2',...);
    				...
    COMMIT;			
    
  9. 显示服务器状态:SHOW STATUS;

  10. 显示用户权限:SHOW GRANTS

  11. 显示警告信息:SHOW ERRORS

  12. 显示错误信息:SHOW ERRORS

一. 运算符

1.加减乘除四则运算符

所有包含NULL的计算,结果一定为NULL。


2. 比较运算符

运算符含义
=相等
<>不等
>=大于等于
>大于
<=小于等于
<小于

对于字符串类型的字段之间的比较都是采取”字典排序规则“进行的(包括数字字符串)。

不能对NULL数据进行任何比较,对NULL的任何比较都不会选中任意数据(包括同为NULL的数据);但可以使用IS NULLIS NOT NULL运算符来判断是否为NULL。


3. 逻辑运算符
组合逻辑条件

运算符说明
NOT逻辑非,不能单独使用,必须与其他查询条件组合使用。
AND逻辑与
OR逻辑或
  • AND运算符优先于OR运算符。

  • 含有NULL的真值判断:SQL中使用的是三值逻辑,对NULL的判断结果是真假之外的第三种值”不确定“,而含有结果”不确定“在ANDOR运算符的使用中又有不同的判断规则,故一般会使用NOT NULL约束。

二. 查询

1.SELECT 查询

  通过SELECT语句查询并从表中选出必要的数据。

基本SELECT语句

SELECT [DISTINCT] <列名1> [AS name1],
       <列名2> [AS name2],
           ...
	FROM <表名>;
  • SELECT子句需与FROM子句搭配。
  • 查询多列时,需用逗号进行分割,查询结果中列的顺序与SELECT子句中顺序相同
  • 若要查询出所有列,可以使用通配符*代替列名列表。而且此时无法指定列的显示顺序,此时顺序为CREATE TABLE时定义的列顺序。
  • SELECT子句中不仅可以写列名,还可以写常数,所得结果中对应列均为该常数,且必须使用关键字AS为该列起名。

 

① AS 关键字

  在使用SELECT从表中选出列时,可用AS关键字为每一列起别名。别名可用使用中文,

使用中文的时候需用双引号 " 括起来,而数据中的中文字符则无需用双引号括起。

② DESTINCT 关键字

  DESTINCT关键字用于在SELECT语句中,删去结果中的重复行。

  • DESTINCT只能出现一次,且只能用在第一个列名之前。
  • 永久地从表中删除,而不仅仅是所展示的视图。
  • 使用DISTINCT时,NULL也被视为一类数据,若NULL存在于多行中,也会被合并为一条。
  • DESTINCT后面

2. WHERE 选择

  WHERE语句与SELECT语句搭配以指定查询数据的条件。

基本WHERE语句:

SELECT <列名>,...
FROM <表名>
WHERE <条件表达式>;
  • 判断是否相等使用的是=而非==
  • 可以用不被选取的字段作为查询条件。
  • 先通过WHERE子句查询出符合条件的记录,再选取出SELECT语句指定的列。

三. 聚合查询

在使用SELECT查询数据时,可对查出的数据调用某个函数再展现出来。

  用于汇总(对所有数据进行遍历)的函数称为聚合函数。所谓聚合,就是统计列中的每一项数据,输入多行而输出一行。

常见聚合函数:

  1. COUNT:计算表中的记录数(行)。
  2. SUM:计算表中数值列中的合计值。
  3. AVG:计算表中数值列中的平均值。
  4. MAX:计算表中某一列中数据的最大值。
  5. MIN:计算表中某一列中数据的最小值。
  • 函数使用:传入一个字段,但不能同时传入多于一个的字段名。
  • 对于函数COUNT()而言,其参数可为通配符*,但也只有COUNT()函数能使用*作为参数。
  • SUM/AVG函数只能用于数值型数据,而MAX/MIN函数能用于任何数据类型的列。
  • 以上的聚合计算不包含值为NULL的记录。如COUNT(field_name)的结果可能会少于表的记录数,因field_name值为NULL的记录不会被算进去;对于SUM()函数来说,其结果是所有非NULL记录的合计值。
  • 聚合函数可在参数中使用关键字DISTINCT来删除重复值。
SELECT COUNT(DISTINCT field_name)
		FROM table_name;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值