SQL种类

DDL/DML/DQL/DCL 中括号[]里面的表示可选,大括号{}里面的表示必须从里面选一个,FEILED表示字段。

数据定义语言(DDL):CREATE、DROP、ALTER

用于定义和管理数据对象(库,表,索引,视图),包括数据库、数据表等。例如:CREATE、DROP、ALTER等语句。

数据操作语句(DML):和表中的数据记录

用于数据库对象多包含的数据,例如INSERT、UPDATE、DELETE语句。

1.插入数据

INSERT INTO 表名([字段列表]) VALUES(值列表),(值列表2),(值列表3)

特点:

  1. 如果在表名后没有给出字段列表,则值列表必须列出所有字段的值,必须按表中默认的顺序插入
  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)的更多相关文章

  1. Mysql学习笔记(三)对表数据的增删改查。

    正文内容. 这一部分是最简单的,也是最麻烦的.简单是因为其实只包括增删该插四个部分.大体上看,增加数据.删除数据.修改数据.查询数据都不麻烦啊,我们日常都是常用的.这个谁不会呢?以前在培训机构学mys ...

  2. MySQL学习笔记一

    MySQL 学习笔记 一 一.数据库简单介绍 1. 按照数据库的发展时间顺序,主要出现了以下类型数据库系统: Ø 网状型数据库 Ø 层次型数据库 Ø 关系型数据库 Ø 面向对象数据库 上面4中数据库系 ...

  3. Mysql学习笔记(二)数据类型 补充

    原文:Mysql学习笔记(二)数据类型 补充 PS:简单的补充一下数据类型里的String类型以及列类型... 学习内容: 1.String类型 2.列类型存储需求 String类型: i.char与 ...

  4. Mysql学习笔记(一)数据类型

    原文:Mysql学习笔记(一)数据类型 学习内容: Mysql基本数据类型. 1.数字类型.. i.整型     Mysql数据类型             含义(有符号)     tinyint(m ...

  5. 初识mysql学习笔记

    使用VMVirtualBox导入Ubuntu后,可以通过sudo apt-get install mysql-server命令下载mysql. 在学习过程中,我遇到了连接不上Xshell的问题.最终在 ...

  6. MySQL学习笔记-锁相关话题

    在事务相关话题中,已经提到事务隔离性依靠锁机制实现的.在本篇中围绕着InnoDB与MyISAM锁机制的不同展开,进而描述锁的实现方式,多种锁的概念,以及死锁产生的原因.   Mysql常用存储引擎的锁 ...

  7. MySQL学习笔记-事务相关话题

    事务机制 事务(Transaction)是数据库区别于文件系统的重要特性之一.事务会把数据库从一种一致状态转换为另一个种一致状态.在数据库提交工作时,可以确保其要么所有修改都已经保存了,要么所有修改都 ...

  8. MySQL学习笔记-数据库文件

    数据库文件 MySQL主要文件类型有如下几种 参数文件:my.cnf--MySQL实例启动的时候在哪里可以找到数据库文件,并且指定某些初始化参数,这些参数定义了某种内存结构的大小等设置,还介绍了参数类 ...

  9. MySQL学习笔记-数据库内存

    数据库内存 InnoDB存储引擎内存由以下几个部分组成:缓冲池(buffer pool).重做日志缓冲池(redo log buffer)以及额外的内存池(additional memory pool ...

  10. MySQL学习笔记-数据库后台线程

    数据库后台线程 默认情况下讲述的InnoDB存储引擎,以后不再重复声明.后台线程有7个--4个IO thread,1个master thread,1个锁监控线程,1个错误监控线程.IO thread的 ...

随机推荐

  1. 2016-2017-2 《Java程序设计》课程学生博客和代码托管链接

    2016-2017-2 <Java程序设计>课程学生博客和代码托管链接 博客 1552 20155201 李卓雯 20155202 张 旭 20155203 杜可欣 20155204 王 ...

  2. Go学习

    简介 Go语言是Google出了一个语言,基本概念我就不介绍了, GO语言从原生上支持高并发,并提供了简单的调用方式,我们就重点研究一下它的高并发 进程与线程 在介绍高并发之前,我们需要了解一下我们现 ...

  3. App 引导界面

    App 引导界面 1.前言 最近在学习实现App的引导界面,本篇文章对设计流程及需要注意的地方做一个浅显的总结. 附上项目链接,供和我水平类似的初学者参考——http://files.cnblogs. ...

  4. DbUtility v3 背后的故事

    DbUtility v3 背后的故事 时间 DbUtility v3构思了差不多大半年,真正开发到第一个版本发布到NuGet却只花了50天.中途大量时间在完善 Jumony 3,只有三周来开发DbUt ...

  5. webpack ---loader,plugin下载命令

    css-loader:  cnpm install style-loader css-loader url-loader babel-loader sass-loader file-loader -- ...

  6. 命名空间“System.Web”中不存在类型或命名空间名称“HttpUtility”。是否缺少程序集引用?

    vs2010下解决方案: 1.右击项目选择“属性”,目标框架选择“.net FrameWord 4”; 2.右击项目中的引用,添加引用,在.net下选择System.Web,确定OK. 解释: fra ...

  7. C#-WebForm-WebForm开发基础

    1.C/S 客户端应用程序 WinForm WPF 平级 数据是存放在其他的电脑上或服务器上 需要从服务器上下载相应的数据,在本地电脑上的客户端里进行加工 数据的加工是在用户的电脑上执行的,会对用户的 ...

  8. MapReduce实现倒排索引(类似协同过滤)

    一.问题背景 倒排索引其实就是出现次数越多,那么权重越大,不过我国有凤巢....zf为啥不管,总局回应推广是不是广告有争议... eclipse里ctrl+t找接口或者抽象类的实现类,看看都有啥方法, ...

  9. 【poj1739】 Tony's Tour

    http://poj.org/problem?id=1739 (题目链接) 题意 给出一个n*m的地图,有些是障碍.问从左下角走遍所有非障碍格子一次且仅一次最终到达右下角的路径方案数. Solutio ...

  10. hdu5000 背包dp

    题意可抽象为:N个包中每个包容量是T[i],每个包都拿一些,设拿出的总数为sum时的方案数为q,求max(q) 设dp[i][j]为拿了前i个包,共拿出了j物品时的方案数.那么 for i=1 to ...