数据库:

158 阅读2分钟

数据库操作的高级用法:

  • order by 列名 (desc(降序)|asc(升序))
  • top 5 ... 前五个数据
  • LIMIT 3 .....限制只拿前3个数据
  • LIKE (列名 LIKE (‘%k’,'k%'))//%表示前面有至少0个字符,或者后面至少0个字符;_ 代表可填入一个任意字符;正则表达式(列名 REGEXP '^[字符串]')字符开头的;‘^[^字符串]’不是字符开头的(‘^[!字符]’);
  • IN 在where 的应用上,等于=,但是IN 后面可以接一个数组; ( 列名 NOT IN)
  • ...BETWEEN ... AND.. ;闭区间(在前面加个 NOT 不在区间)
  • AS 别名(原列名 AS 现列名|| 表也一样)
  • JOIN 
  1. 完整的操作+INNER JOIN..(表)...ON ... 条件;表中有匹配就返回行
  2. LEFT JOIN 右表做参考匹配,返回左表;//即使没有也返回所有左表
  3. RIGHT JOIN 左表做参考匹配,返回右表//即使没有也返回所有右表
  4. FULL JOIN 只要一个表存在匹配就返回行
  • UNION 取出两个表的相同且不重复的值 表的合并(UNION ALL 重复)
  • SELECT * INTO 新表名 FROM 旧表//复制表 目的表可以不存在
  • INSERT INTO 表名(列名)SELECT (列名) FROM 表名//复制表 目的表可以必须存在
  • CREATE DATABASE 库名
  • CREATE TABLE 表名
  • 约束 (NOT NULL;UNIQUE;PRIMARY KEY;FOREIGN KEY;DEFAULT)
  • DROP 删除本身
  • TRUNCATE 删除数据
  • AUTOINCREMENT(初始值,递增值)//自动加一
  • 视图VIEW和表的操作一样
  • 函数:
  1. AVG()//列的平均值
  2. COUNT()//不重复的行数
  3. FIRST()//
  4. LAST()//
  5. MAX()//
  6. MIN()
  7. SUM()//列的总值
  8. UCASE()//列名变为大写字母
  9. LCASE()//小写字母
  10. MID(列名,起始,结束)(先闭后开)
  11. SubString()
  12. LEN()//长度
  13. ROUND(数,小数位个数)//单一参数符号不变,统一整数四舍五入
  14. NOW()
  15. FORMAT()//规范化比如:DATE_FORMAT(NOW(),'%Y-%M-%D') AS DATE
  16. HAVING 组合条件:比如函数
  17. 复杂问题:显示联合表,对表单一条件where 再GROUP BY 分组, 最后HAVING 函数(列名)>number
  18. EXISTS (条件),是否存在
  • 索引:
  1. 普通索引:没有限制
  2. 唯一索引:与普通索引类似,但是不同的是唯一索引要求所有的类的值是唯一的,这和主键类似,但是他可以有空值
  3. 组合索引(联合、复合索引):一个索引包含多个列名;最左原则,不能有范围查询
  4. 主键索引 :不允许空值;int 类型优于varchar
  5. 全文索引:select * from fulltext_test where MATCH(context,tag) against('ssss');创建表时(fulltext key context_index(content)),表后加engine =MyISAM default=utf8//match(参数必须是fulltext的列名)缺点:无法动态修改,只能该MYSQL的配置文件
  • b树,树深廋,搜索慢;
  • b+树,树胖矮,搜索快;(快慢只和深度有关)