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

38次阅读

共计 3062 个字符,预计需要花费 8 分钟才能阅读完成。

简略的 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。

正文完
 0