关于前端:简单的-SQL-总结

简略的 SQL 总结

SQL增删改查(CRUD)语句与罕用函数总结。

SQL Introduction

  个别咱们对数据库的操作次要分为四种,增C(CREATE)、删D(DELETE)、改U(UPDATE)、查R(READ),所以,我就从CRUD这四个方面来制作查问表。

  开发规定:

    1. 尽量减少对数据库的拜访次数,且不能查问无用的数据,节约效力(例如:我只有男生的数据,你把所有人的数据都查问进去)。

    2. 属于SQL语法的要应用大写 (SELECT, WHERE, INSERT etc…)。

    3. 属于使用者本人定义的要应用小写(表名、列名 etc…)。

    4. 表名与列名前后应用 \` 包起来,避免与关键字抵触(例如: INSERT INTO \`user\` VALUES(a,b); )。

    5. 禁止应用 Table Join。

    6. 禁止应用 Oracle Trigger。

    7. 禁止应用 SELECT * (为了增强代码可读性)。

    8. 不能将查询数据库的 SQL 放在循环中查问。

新增(CREATE)

性能 语句
创立数据库 CREATE DATABASE <数据库名>;
创立数据表 CREATE TABLE <表名> (<br/><列名1> <数据类型> <约束条件>,<br/><列名2> <数据类型> <约束条件>,<br/><列名3> <数据类型> <约束条件>,<br/>......<br/><该表的的约束条件1> <br/><该表的的约束条件2>...);
插入数据 INSERT INTO <表名> (列名1,列名2,...) VALUES (值1,值2,...);<br/>(每列都有数据插入时,可省略列名。然而为了代码的可读性,不倡议如此操作。)
减少列 ALTER TABLE <表名> ADD <列名> <数据类型> <约束条件> AFTER <前一列列名>;<br/>(默认插入到最初一列)

删除(DELETE)

性能 语句
删除数据库 DROP DATABASE <数据库名>;
删除数据表 DROP TABLE <表名>;
清空表数据 DELETE FROM <表名>; 或者 TRUNCATE TABLE <表名>;
删除行数据 DELETE FROM <表名> WHERE <条件>;
删除列数据 ALTER TABLE <表名> DROP <列名>;

批改(UPDATE)

性能 语句
批改数据库名 RENAME DATABASE <旧名称> TO <新名称>;
批改表名 RENAME TABLE <旧名称> TO <新名称>;
留神: 重命名数据库与数据表个别不举荐应用,若想测试,请先备份好本人的数据库~
批改数据 UPDATE <表名> SET <列名1> = <新值1>,<列名2> = <新值2> WHERE <条件>;
批改列名 ALTER TABLE <表名> CHANGE <旧列名> <新列名> <数据类型> <约束条件>;

查问( R E A D )

性能 语句
查问所有数据库 SHOW DATABASES;
查问指定数据库中所有表名 USE <数据库名>; 而后 SHOW TABLES;<br/>或者 SHOW TABLES FROM <数据库名>;
查问表中所有列信息 SHOW COLUMNS FROM <表名>;
查问表中所有数据 SELECT <列名1>,<列名2>,<列名3>,... FROM <表名>;
查问表中某个数据 SELECT <列名> FROM <表名>;
查问表中指定多个数据 SELECT <列名1>,<列名2>,<列名3>,... FROM <表名> WHERE <条件>;
查问表中指定一个数据 SELECT <列名> FROM <表名> WHERE <条件>;
查问指定范畴数据 SELECT <列名1>,<列名2>,<列名3>,... FROM <表名> WHERE <br/><某列名> BETWEEN <某列名范畴值-小> AND <某列名范畴值-大>;
字符串模式匹配查问 SELECT <列名> FROM <表名> WHERE name LIKE 'Y%';<br/>(查问以Y结尾的,更多匹配形式自行百度哦~。)
指定多个值数据查问 SELECT <列名1>,<列名2>,<列名3>,... FROM <表名> WHERE <br/><某列名> IN ('<某列名值1>','<某列名值2>','<某列名值3>',...);
查问后果排序 SELECT <列名1>,<列名2>,<列名3>,... FROM <表名> ORDER BY <某列名> DESC;<br/>(此处为递加排列,默认为递增ASC
查问指定几笔数据 SELECT <列名1>,<列名2>,<列名3>,... FROM <表名> LIMIT n,m;<br/>(从nm笔数据)
分群查问 SELECT <列名1>,<列名2>,<列名3>,...,<函数> FROM <表名> GROUP BY <列名1>,<列名2>,<列名3>,...;<br/>(常搭配函数有:SUM()AVG()COUNT()MAX()MIN()
查问不反复后果 SELECT DISTINCT <列名1>,<列名2>,<列名3> FROM <表名> WHERE 条件

罕用函数

函数名 用处
ABS(数值) ABS函数(求绝对值)
MOD(被除数,除数) MOD函数(求余)
ROUND(对象数值,保留小数的位数) ROUND函数(四舍五入)
字符串1丨丨字符串2 丨丨函数(拼接)
LENGTH(字符串) LENGTH函数(求字符串长度)
LOWER(字符串) LOWER函数(小写转换)
UPPER(字符串) UPPER函数(大写转换)
REPLACE(对象字符串,替换前的字符串,替换后的字符串) REPLACE函数(字符串的替换)
SUBSTRING (对象字符串,截取的起始地位,截取的字符数) SUBSTRING函数(字符串的截取)
CURRENT_DATE CURRENT_DATE函数(以后日期)
CURRENT_TIME CURRENT_TIME函数(以后工夫)
CURRENT_TIMESTAMP CURRENT_TIMESTAMP函数(以后日期和工夫)若用于on update能够在更新数据时更新此栏位
EXTRACT(日期元素 FROM 日期) EXTRACT函数(截取日期元素)
CAST(转换前的值 AS 想要转换的数据类型) CAST函数(类型转换)
COALESCE(数据1,数据2,数据3....) COALESCE函数(将NULL转换为其余值)
SELECT uuid() as uuid 能够利用数据库生成 Version 1的UUID
OPTIMIZE TABLE table1, table2 能够最佳化数据表

  补充:CASE表达式。

CASE WHEN <求值表达式> THEN <表达式>            
     WHEN <求值表达式> THEN <表达式>            
     WHEN <求值表达式> THEN <表达式> 
     ......            
     ELSE <表达式> 
 END

其余常识

常见数据类型

别名

  给表设置别名,让SQL更简洁。例如:

    SELECT <列名1>,<列名2>,<列名3>,... FROM <表名1> <别名a>,<表名2> <别名b> WHERE <别名a>.<某值> = <别名b>.<某值>;

  列名也能够设置别名。例如:

    SELECT <列名1> <别名a>,<列名2> <别名b>,<列名3> <别名c>,... FROM <表名>; 或者 SELECT <列名1> AS <别名a>,<列名2> AS <别名b>,<列名3> AS <别名c>,... FROM <表名>;

总结

  如须要找到符合条件的一些表能够去查问information_schema中的信息,例如:SELECT * FROM information_schema.TABLES
  以上整顿的内容均为根底内容,更多进阶常识还需各位自行Google。

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理