SQL 基础语句

一、选择语句

USE

用于选中数据库;

SELECT

用于选择某列,全选时用*表示,做选择语句时,选取内容不用带括号,之间用逗号隔开;

FROM

用于选中数据的来源表;

AS

用于起别名(后跟单引号,双引号皆可)。

二、运算符

1. AND,OR,NOT

AND

表示并列,需同时满足;

OR

表示而这满足已即可;

NOT

表示否命题,常与AND和OR连用,放在他们之前。

2. IN

行使多个OR的作用

例:‘NA’ OR ‘JA’ OR ‘IA’,用IN表示则为IN(‘NA’  ‘JA’  ‘IA’);

3. BETWEEN

用于同一主体的AND,表示一个闭区间。

例:points>=1000 AND points<=2000,用BETWEEN表示为points BETWEEN 1000 AND 2000;

4.LIKE

在表中搜索含有LIKE中关键词的内容,前带主体,内容带引号。

例:last_name LIKE 'b%' (%表示任意数量的字符,可任意摆放, '%b%', '%b')

例:last_name LIKE '_b'(_表示占用单个字符,可任意多个摆放,_b_', '__b');

5. REGEXP (正则表达式)

表示包含,跟主体,可以理解为last_name REGEXP 'x'=last_name LIKE '%x%',

REGEXP '^x' 表示“x”要在句首,

REGEXP 'x&'表示“x”要在句尾,

REGEXP 'x|y'表示包含“x或y”任一即可,

REGEXP '[asd]x'表示中括号内任一与“x”结合的所有种类,即包含“ax,bx,cx”,

REGEXP 'x[asd]'同上,

REGEXP '[a-d]x'表示“a到d”的所有字符与x的结合;

6. IS NULL

用来查找表格中的缺失值,带主体。例:phone IS NULL;

还可以用IS NOT NULL,表示查找未缺失值

7. ORDER BY

起到排序作用,一般位置在WHERE之下,直接跟列名,可实现多列排序,多个列名之间用逗号隔开;

例:ORDER BY points ,也可在列名后加DESC表示倒序排列

8. LIMIT 

限制选取的行数

例:LIMIT 3 即选取表中的前三行

LIMIT 6,3 表示在表中跳过前6个后再选取3个

三、连接

1. 内连接

JOIN···ON···

JOIN表示连接,后跟需要连接的表

ON表示用来连接的列,即连接两表的重合部分,例: ON a.stID= b.stID

2. 跨数据库连接

在JOIN或FROM子句中,在连接的表名前加上其所在数据库的名字

3. 自连接

FROM和JOIN用同一张表(两次引用表要有不同的简称),再用ON将两个有关系的列连接起来(并不一定要用同一列,可以选不同列来表示对应关系)

4. 多表连接

多个JOIN连用,将第一个连接后的表用JOIN···ON连接

5. 复合连接

连接包含含有两个主键列的表格时,在ON时用AND将两个主键列并列连接

6.外连接

用于返回所有项(包括null项),常用LEFT JOIN的形式

7. USING

用于替代JOIN后的ON,仅当连接的列名称相同时,列名要用()括起来(只能用于单独两个完整表的连接时使用)

8. 交叉连接

用于将每个项与每个项连接,CROSS JOIN

9. UNION

合并多个查询的结果,即合并多个行的内容,之间用UNION连接

union all和union的区别在于,union选出的值不允许重复,但union all的值可以重复

四、插入列

1.插入单行

INSERT INTO+被加入的表名

value()在括号中分别填入要插入的每列的内容,之间用逗号隔开

2. 插入多行

在VALUE后,每插入一行,分别用()表示,期间用逗号隔开

例如:VALUE(),(),()

3. 创建表复制

CREATE TABLE 新表名AS

SELECT 复制的列

FROM 被复制的表

之后在表格列表按刷新

4. 更新单行

UPDATE 更新的表名

SET 更改的列=更改的内容,(用逗号隔开)

WHERE 输入条件,选定更新的列。

5. 删除行

DELETE FROM 表的名称

WHERE 要删除行的条件,可用子查询

六、编写复杂查询

1.子查询

在WHERE子句中添加SELECT子句以实现更复杂的查询,成为子查询;(子查询要有别名,子查询内部不能连接其他表)

用于SELECT子句时,当子查询产生运算关系,要用SELECT再次选中别名再做一个子查询运算;

2. IN运算符

用来替代连续的OR,用于规定一个范围(也可用NOT IN选定不在这个范围的内容)

3. EXISTS 运算符

用于检验某项是否存在于某表。位于子查询前

七、数值函数

1. 基础数值函数

ROUND,四舍五入数字,可设置保留小数点后几位:ROUND(2.19,1)即保留一位数字,也可通过负值去保留更高位数;

CEILING:保留大于或等于此数的整数(直接入)

FLOOR:保留小于或等于此数的整数(直接舍)

ABS:绝对值

RAND:随机产生0-1之间的随机数

2. 字符串函数

LENGTH(“”):选中文本的字节数

UPPER(“”):选中文本大写

LOWER(“”):选中文本小写

TRIM(“”):删除所有空格

LEFT(“str, length”):从左数返回字符

RIGHT(“str, length”):从右数返回字符

SUBSTRING(“”,,):从任意位置返回字符

LOCATE(“”,“”):搜索第一个参数在第二个参数中的位置

REPLACE(“”,“”,“”):第一个参数选中字符串,第二个参数选中被替换的具体内容,第三个表示被替换的内容

CANCAT(“”,“”):将多个参数连接

3. 日期函数

NOW(),现在的日期和时间;

CURDATE()现在的日期;

CURTIME()现在的时间;

YEAR()\MONTH()\DAY()提取年、月、日;

HOUR()\MINUTE()\SECOND()提取时、分、秒;

DAYNAME()\MONTHNAME()提取周几、月名;

EXTRACT()用在最外层,方便转化成其他格式的文件。

4.日期和时间的格式化

DATE_FORMAT ( , “%y %m”)第一个参数是原本的时间和日期,第二个参数规定提取的格式;

TIME_FORMAT( , “”)同上。

5.计算日期和时间

DATE_ADD( ,INTERNAL ...)增加日期,第一个参数表示日期,第二个参数表示增加的数值;

DATE_SUB( , INTERNAL...)减少日期,同上;

DATEDIFF( “”,“”)得出两个参数天数的差;

TIME_TO_SEC(“”)计算从0点到参数的秒数,可进行运算。

6.IFNULL和COALESCE函数

IFNULL( ,“”)第一个参数选中一个主体,第二个参数表示当出现NULL时显示的内容;

COALESCE( ,comments,“”)第一第三个参数同上,第二个参数表示如果有注释就返回注释,没有就返回第三个参数。

7.IF函数

IF(判断条件,“”,“”)第一个函数作为判断条件,第二个为“是”时返回的值,第三个是“否”时的值。多用于SELECT子句。

8.CASE函数

一般放在select语句或聚合函数中;

可利用CASE函数进行多段判断;

  CASE              WHEN  ...  THEN...  “when”后跟的是判断条件,“then”后跟的是判断正确时返回的值,可进行多段判断;

ELSE... 表示如果都不满足,则返回该值;

最后要接一个END 表示结束语句(一般再加一个AS语句重命名)。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 查询:select * from table_name where 条件 查询的结果集中使用别名:select 列...
    約見阅读 473评论 0 0
  • select distinct [字段名] from [表名];用于查询该列不重复的所有值。 where子句中可以...
    Ew0828阅读 309评论 0 0
  • 一、基础 1、说明:创建数据库CREATE DATABASE database-name 2、说明:删除数据库dr...
    稳住别慌阅读 207评论 0 1
  • 基础查询 /*语法:select 查询列表 from 表名特点:1.查询列表可以是:表中的字段、常量值、表达式、函...
    晓晓桑阅读 575评论 0 2
  • 数据库sql基础语句总结 1.select (查询)from(来自哪) where (条件 )like (像) n...
    Angiueng阅读 405评论 0 0