MySQL学习笔记(2/2)
SQL种类
DDL/DML/DQL/DCL 中括号[]里面的表示可选,大括号{}里面的表示必须从里面选一个,FEILED表示字段。
数据定义语言(DDL):CREATE、DROP、ALTER
用于定义和管理数据对象(库,表,索引,视图),包括数据库、数据表等。例如:CREATE、DROP、ALTER等语句。
数据操作语句(DML):和表中的数据记录
用于数据库对象多包含的数据,例如INSERT、UPDATE、DELETE语句。
1.插入数据
INSERT INTO 表名([字段列表]) VALUES(值列表),(值列表2),(值列表3)
特点:
- 如果在表名后没有给出字段列表,则值列表必须列出所有字段的值,必须按表中默认的顺序插入
- 所有需要写字段名的地方都不加单引号或双引号,但所有值建议都要以字符形式使用
- 建议在插入数据时,最好给出字段列表,则值要和字段列表对应即可,可以不按表中字段的顺序
例如:
INSERT INTO CATS(pid,name) VALUES('2','j2sc'),('2','j2mc'),('2','j2ee'),('3','thinkphp');
2.修改/更新数据
UPDATE 表名 SET 字段='值’[,字段2=‘值2’,...] [条件] 条件是确定要更改的记录,可以通过条件
指定一条多多条
例如:
3.删除数据
DELETE FROM 表名[条件]
如果不加条件就是直接删除该表,但是这时不如:TRUNCATE CATS 的效率高,该语句是直接截断表。
条件是:where ...
数据查询语言(DQL)
用于查询数据库对象所包含的数据,能够进行单表查询、连接查询、嵌套查询、以及集合查询等各种复杂程度不同的数据查询,并将数据返回到客户机中显示。例如:SELECT语句。(60%)不能
SELECT [ALL|DISTINCT]//针对某个重复记录,返回去重后的结果。
{*|TABLE.*|[TABLE.]FIELD1[AS ALIAS1][,[TABLE.]FIELD2[AS ALIAS]][...]} //哪些表的哪些字段
FROM 表名
[WHERE...]//条件
[GROUP BY...]//分组
[HAVING...]//分组条件
[ORDER BY...]//排序,desc倒序,默认asc正序
[LIMIT count]//限制数量,eg:LIMIT 0,1代表从零取,取一个。
目的就是使用SELECT查询语言按特定要求返回数据。
1.字段 要列出要查询的字段
2.可以为每个字段起别名,后面会用到(关键字 多表查询),表也可以起别名(多表查询)
3.distinct返回去重后结果
4.在SQL语句中可以使用表达式的列(算术运算符,逻辑运算符,可以使用条件... )
另外可以在DML和DQL中使用各种运算符,可以把字段当做一个变量。
5.WHERE 条件//定位到某个或某些条件的记录
可以用于UPDATE DELETE SELECT
逻辑运算符
&& || !
AND OR NOT
比较运算符
=、<=>、!=、<>、<、<=、>、>= //<=>和等号作用一样,但可以用于NULL值。
IS NULL、IS NOT NULL、BETWEEN AND、NOT BETWEEN AND、
LIKE、NOT LIKE //模糊查询,_(任意一个字符)和%(0或多个任意字符)两个通配符
IN、
REGEXP RLIKE //正则表达式,^(以什么开头的)和$(以什么结尾的)
6.多表查询(连接查询)
把多个表都填到FROM后面用逗号隔开。
7.嵌套查询(子查询)
WHERE里面有一个SELECT 查询语句。
8.分组
统计与分组连用表示对某个组里面的数据进行统计: COUNT()数量、SUM()、AVG()、MAX()、MIN()
eg:SELECT cid ,COUNT(*),price,SUM(PRICE) FROM PRODUCTS GROUP BY cid;
9.分组统计数据的条件
HAVING AVG(price)>500;
数据控制语句(DCL)
是用来管理数据库的语言,包含管理权限及数据更改。例如:GRANT/REVOKE/COMMIT/ROLLBACK等语句
MySQL内置函数
函数中可以将字段名作为变量来用,变量的值技术这个列对应的每一行记录。
CONCAT 字符串连接函数,
一、字符串函数
1.CONCAT(s1,s2,...,) //把传入的参数连接成一个字符串
2.INSERT(str,x,y,insert) //将字符串x开始y个长度替换为insert
3.LOWER(str) UPPER(str) //大小写转换
4.LEFT(str,x) RIGHT(str,x) //返回最左边/最右边x个字符,x为空时,什么也不返回
5.LPAD(str,n,pad) RPAD(str,n,pad) //pad串对str串的最左边/最右边填充,直到总长度达到n
6.TRIM(str) LTRIM(str) RTRIM(str) //去掉str串两边/左边/右边的空格
7.REPLACE(str,a,b) //把str中所有的串a替换成串b
8.STRCMP(s1,s2) //比较字符串,><=返回1 -1 0
9.SUBSTRING(str,x,y) //截取,截取str中x串开始y长度的串
二、数值函数
1.ABS(x) //x的绝对值
2.CEIL(x) //进一取整,返回大于x的最小整数
FLOOR(x) //割舍取整,返回小于x的最大整数
3.MOD(x,y) //模,x/y
4.RAND() //返回0-1之间的随机数,乘以一百然后取整就是0-100之间的随机数
5.ROUND(x,y) 返回x的y位四舍五入后的小数
TRUNCATE(x,y) 返回x的y位小数截断的结果
三、日期函数
1.CURDATE() //返回当前日期
2.CURTIME() //返回当前时间
3.NOW() //返回当前日期加时间
4.UNIX_TIMESTAMP(date) //UNIX时间戳
FROM_UNIXTIME()
WEEK() YEAR() HOUR() MINITE() ...
四、流程控制函数
1.IF(value,t,f) //如果value为真返回t,假返回f,其中value是条件,eg:if(salary>3000,'high','low');
2.IFNULL(value1,value2) //如果为NULL返回value2,否则返回value1,利用这个函数可以把空值转成0进行运算,eg:IFNULL(salary,0)
3.CASE WHEN [value1] THEN [result] ELSE [default] END //如果value1为真返回result,否则返回default,eg:CASE WHEN salary<=3000 THEN ‘low’ ELSE 'high' END;
五、其它函数
DATABASE() //数据库
VERSION() //当前MySQL版本
USER() //用户
INET_ATON(ip) INET_NTOA() //1.ip串转换成数,2.数转换成串。其中数是:用数字代表的网络字节序
PASSWORD() //MySQL 用户数据加密
MD5() //应用数据加密
\G 转置输出
连接MySQL
一、VC++6.0
二、VS
三、...
各种手册,例如MySQL 5.1参考手册。
MySQL学习笔记(2/2)的更多相关文章
- Mysql学习笔记(三)对表数据的增删改查。
正文内容. 这一部分是最简单的,也是最麻烦的.简单是因为其实只包括增删该插四个部分.大体上看,增加数据.删除数据.修改数据.查询数据都不麻烦啊,我们日常都是常用的.这个谁不会呢?以前在培训机构学mys ...
- MySQL学习笔记一
MySQL 学习笔记 一 一.数据库简单介绍 1. 按照数据库的发展时间顺序,主要出现了以下类型数据库系统: Ø 网状型数据库 Ø 层次型数据库 Ø 关系型数据库 Ø 面向对象数据库 上面4中数据库系 ...
- Mysql学习笔记(二)数据类型 补充
原文:Mysql学习笔记(二)数据类型 补充 PS:简单的补充一下数据类型里的String类型以及列类型... 学习内容: 1.String类型 2.列类型存储需求 String类型: i.char与 ...
- Mysql学习笔记(一)数据类型
原文:Mysql学习笔记(一)数据类型 学习内容: Mysql基本数据类型. 1.数字类型.. i.整型 Mysql数据类型 含义(有符号) tinyint(m ...
- 初识mysql学习笔记
使用VMVirtualBox导入Ubuntu后,可以通过sudo apt-get install mysql-server命令下载mysql. 在学习过程中,我遇到了连接不上Xshell的问题.最终在 ...
- MySQL学习笔记-锁相关话题
在事务相关话题中,已经提到事务隔离性依靠锁机制实现的.在本篇中围绕着InnoDB与MyISAM锁机制的不同展开,进而描述锁的实现方式,多种锁的概念,以及死锁产生的原因. Mysql常用存储引擎的锁 ...
- MySQL学习笔记-事务相关话题
事务机制 事务(Transaction)是数据库区别于文件系统的重要特性之一.事务会把数据库从一种一致状态转换为另一个种一致状态.在数据库提交工作时,可以确保其要么所有修改都已经保存了,要么所有修改都 ...
- MySQL学习笔记-数据库文件
数据库文件 MySQL主要文件类型有如下几种 参数文件:my.cnf--MySQL实例启动的时候在哪里可以找到数据库文件,并且指定某些初始化参数,这些参数定义了某种内存结构的大小等设置,还介绍了参数类 ...
- MySQL学习笔记-数据库内存
数据库内存 InnoDB存储引擎内存由以下几个部分组成:缓冲池(buffer pool).重做日志缓冲池(redo log buffer)以及额外的内存池(additional memory pool ...
- MySQL学习笔记-数据库后台线程
数据库后台线程 默认情况下讲述的InnoDB存储引擎,以后不再重复声明.后台线程有7个--4个IO thread,1个master thread,1个锁监控线程,1个错误监控线程.IO thread的 ...
随机推荐
- Python 过算符和数据类型
一.算术运算符 二.逻辑运算符
- JS组件系列——开源免费图表组件:Chart.js
前言:最近被开源免费得有点上火了,各种组件首先想到的就是是开源否.是否免费.是否和bootstrap风格一致.想着以后做报表肯定要用到图表组件的,于是在Bootstrap中文网上面找到了Chart.j ...
- sql特殊语句
1.联表查询 select * from zongyi zongyiitem where zongyi.id=zongyiitem.id 2.联表删除 delete from zongyi ,zong ...
- [转]ExtJs:xtype的含义
原文地址:http://www.cnblogs.com/timy/archive/2010/08/13/1799111.html 根据我在EXT论坛上的观察,xtype用起来的时候疑惑会比较多.甚至有 ...
- iOS小知识点(UI部分)
1. 父视图通过Tag来找到UIView UIView *targetView = [superView viewWithTag:10];//只在当前视图以及subviews中找,不能再孙子中找. 2 ...
- spring-poi-excle往单元格写入图片
HSSF是POI工程对Excel 97(-2007)文件操作的纯Java实现 XSSF是POI工程对Excel 2007 OOXML (.xlsx)文件操作的纯Java实现 在POI中有HSSFPat ...
- Oracle之分页查询
select * from ( select a.*, rownum rn from (select * from table_name) a where rownum<= 40 ) where ...
- mysql中now()函数的使用,还有oracle的sysdate,可能埋下的坑
mysql中now()函数的使用,还有oracle的sysdate 在需求中如果系统中药添加当前操作的时间那么很简单的一个操作在写sql的时候直接在这个字段对应的位置写上now()函数就可以了,这样就 ...
- PHP文件大小格式化函数合集
比如碰到一个很大的文件有49957289167B,大家一看这么一长串的数字后面单位是字节B,还是不知道这个文件的大小是一个什么概念,我们把它转换成GB为单位,就是46.53GB.用下面这些函数就可以完 ...
- ps你最容易忽略的知识
了解更多ps知识 1. 快速打开文件 双击Photoshop的背景空白处(默认为灰色显示区域)即可打开选择文件的浏览窗口. 2. 随意更换画布颜色 选择油漆桶工具并按住Shift点击画布边缘,即 ...