加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

MySQL系列(一)——基础知识大总结

发布时间:2020-12-12 03:08:07 所属栏目:MySql教程 来源:网络整理
导读:《MySQL系列(一)——基础知识大总结》要点: 本文介绍了MySQL系列(一)——基础知识大总结,希望对您有用。如果有疑问,可以联系我们。 前言:本文主要为mysql基础知识的大总结,mysql的基础知识很多,这里只是作为简单的介绍,但是具体的细节还是需要自行搜

《MySQL系列(一)——基础知识大总结》要点:
本文介绍了MySQL系列(一)——基础知识大总结,希望对您有用。如果有疑问,可以联系我们。

前言:本文主要为mysql基础知识的大总结,mysql的基础知识很多,这里只是作为简单的介绍,但是具体的细节还是需要自行搜索.当然本文还有很多遗漏的地方,后续会慢慢补充完善.

数据库和数据库软件

  • 数据库是保存有组织数据的容器

  • DBMS是为管理数据库而设计的软件管理系统,MYSQL、ORACLE 等是数据库管理系统

MYSQL

  • MYSQL是一种数据库管理软件

  • 开放源码,免费使用

MYSQL命令

  • CREATE DATABASE NAME 创建数据库

  • USE DATABASE 选择数据库

  • DROP DATABASE NAME 直接删除数据库

  • SHOW DATABASE 显示可用数据库列表

  • SHOW TABLE 显示数据库中的表的列表

  • SHOW COLUMNS FROM TABLE 与 DESCRIBE TABLE 等效,显示表的字段信息

  • SHOW GRANTS 显示授予用户的安全权限

  • SHOW ERRORS SHOW WARNINGS 显示服务器错误和警告信息

SQL

  • STRUCTURED QUERY LANGUAGE 结构化查询语言,一种专门用于与数据库通信的语言

  • 不是DBMS专有的语言,很多DBMS都支持SQL,但是不同DBMS对SQL的实现不同

  • DBMS支持的SQL语法不能完全适用于其他DBMS

  • SQL语句不区分大小写

  • 多条语句需要分号分隔,单条语句可以不用分号

  • 通常SQL语句用大写,标识符(比如表名 列名 数据库名)用小写

创建表

  • CREATE TABLE user (id INT NOT NULL AUTO_INCREMENT,username VARCHAR(50) NOT NULL,password VARCHAR (50) NOT NULL DEFAULT 1,PRIMARY KEY(id)) ENGINE =INNODB

检索列

  • SELECT username FROM user

  • SELECT username,password FROM user

  • SELECT * FROM user 建议不是要所有的列,不用'*',要不然这种操作是很耗性能的

  • SELECT DISTINCT username FROM user 只返回不同的username,比如有两行用户名是一样的,只显示一行记录

限制结果

  • SELECT * FROM TABLE LIMIT 5 检索前五行

  • SELECT * FROM TABLE LIMIT 5,5 检索6到10

  • SELECT * FROM TABLE LIMIT 5,-1 检索6到最后一行

结果排序

  • SELECT * FROM user ORDER BY username,以username的字母顺序排列

  • SELECT * FROM user ORDER BY username,password,如果username有相同的,那么username相同的再按password排列,如果username都是唯一,这个时候password不起作用

  • SELECT * FROM user ORDER BY username DESC,降序排列,默认是升序ASC

  • SELECT * FROM user e ORDER BY username DESC,password 此时按照username降序排列,如果username相同的行按照password升序排列

  • SELECT * FROM user ORDER BY username LIMIT 1 混合使用ORDER 和 LIMIT

  • SELECT * FROM user WHERE username ='jiajun' ORDER BY password 这里ORDER要在WHERE 之后

过滤数据

  • SELECT * FROM user WHERE username <> 'jiajun' 不等于 和 != 效果相同

  • SELECT * FROM user WHERE id BETWEEN 1 AND 10 检索1到10的记录,包括1和10

  • SELECT * FROM user WHERE username IS NULL 查找列无值的行,这里的无值不等于 值为0 和 空字符串

  • SELECT * FROM user WHERE id=1 OR username='jiajun' AND password='666' 执行顺序是 WHERE id=1 OR (username='jiajun' AND password='666')AND的优先级更高,但是建议添加括号

  • SELECT * FROM user WHERE id IN (1,2) 效果和SELECT * FROM user WHERE id=1 OR id =2 如果要实现这种效果,建议使用第一种,语法更清晰,而且一般执行更快

  • SELECT * FROM user WHERE id NOT IN (1,2)

通配符过滤

  • SELECT * FROM user WHERE username LIKE 'jia%',匹配JIA开头的username,不管后面有多少字符,jia和jiajun都是匹配,可以配置MYSQL是否区份大小写,如果区份大小写,也就是jiajun是不匹配的 .注意LIKE '%'是不能匹配值为NULL的

  • SELECT * FROM user WHERE username LIKE 'jia_',_只能匹配一个字符,也就是匹配jiaj不匹配jiajun

  • 通配符匹配是效率不高,如果其他方式能有相同的效果,建议用其他效果,并且最好不要将通配符放在开始处,因为这样是很慢的

正则表达式过滤

  • SELECT * FROM user WHERE username REGEXP '.IA',正则表达式,. 匹配任意一个字符

  • SELECT * FROM user WHERE username REGEXP 'jun' 匹配包含jun的username,'jiajun'和'jun'都匹配

  • SELECT * FROM user WHERE username REGEXP 'jiajun|jiaj','|'和'OR' 效果一样

  • SELECT * FROM user WHERE username REGEXP ‘[123]jun’,匹配包含'1jun'或者'2jun'或者'3jun'

  • [^123]123除外

  • [1-9],[A-Z],用'-'表示范围

  • 匹配特殊字符(比如'.'和'_')可以采用'&;转义,比如匹配有'.'的可以这样表示'.'

拼接字段

  • SELECT CONCAT(username,'C',')') FROM user,将两个字段拼接到一起,查询结果是一列,行值 jiajun(666)

  • SELECT CONCAT(username,')') AS up FROM user,为拼接后的一列设置字段名

算数运算

  • SELECT price*count AS all FROM TABLE 将单价和数量相乘,列名为all

函数

  • 函数可移植性不高,也就是一个函数支持一个DBMS,但不一定支持另一个DBMS,比如支持MYSQL而不支持ORACLE.所以使用函数的要写好注释.

文本处理函数

  • LENGTH() 返回串长度

  • LOWER()将串转换为小写

  • UPPER()将串转换为大写

  • LTRIM()去掉串左边的空格

  • RTRIM()去掉串右边的空格

日期和时间处理函数

  • CURDATE() 2017-07-22

  • CURTIME()16:20:19

  • NOW() 2017-07-22 16:20:19

  • DATE() 返回日期的日期部分 SELECT DATE(NOW()) 2017-07-22

  • DATE_FORMAT() 返回格式化的日期和时间串

  • HOUR() 返回一个时间的小时部分

  • MINUTE() 返回一个时间的分钟部分

  • MONTH() 返回一个日期的月份部分

  • NOW() 返回当前日期和时间

  • SECOND() 返回一个时间的秒部分

  • TIME() 返回一个日期时间的时间部分

  • YEAR() 返回一个日期的年份部分

文章来自博客园

“勤工俭学计划”,给你一个真正0元学习IT技术的机会!

http://www.ujiuye.com/zt/qgjx/?wt.bd=fq37300j

找工作太难?不是你不行,我们来帮你!

http://www.ujiuye.com/zt/jyfc/?wt.bd=fq37300j

交流群:345648424

编程之家PHP培训学院每天发布《MySQL系列(一)——基础知识大总结》等实战技能,PHP、MYSQL、LINUX、APP、JS,CSS全面培养人才。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读