一、数据类型

截图来源: http://www.runoob.com/mysql/mysql-data-types.html

二、基本语句

1、创建数据表

-- 主键自增,T_User
CREATE TABLE IF NOT EXISTS `T_User`(
`Id` INT UNSIGNED AUTO_INCREMENT,
`Name` VARCHAR(100) NOT NULL,
`CardNo` VARCHAR(40) NOT NULL,
`Birthday` DATE,
PRIMARY KEY ( `Id` )
)ENGINE=InnoDB DEFAULT CHARSET=utf8;

2、删除数据表

DROP TABLE T_School;

 3、表字段修改

-- 新增字段
ALTER TABLE T_User ADD ClassName VARCHAR(100) NOT NULL; -- 删除字段
ALTER TABLE T_User DROP CardNo; -- 修改字段数据属性
ALTER TABLE T_User MODIFY Name BIGINT NOT NULL DEFAULT 100; -- 修改字段名称
ALTER TABLE T_User CHANGE Name RealName VARCHAR(100);

4、新增表数据

INSERT INTO T_User (Name, CardNo, BirthDay) VALUES('大王', '0001', NOW());

5、删除数据

-- 条件删除
DELETE FROM T_User WHERE Id=3; -- 重置表格,自增主键重新计算
TRUNCATE TABLE T_User;

6、更新数据

UPDATE T_User SET Name='女王', CardNo='NX_01' WHERE Id=4;

7、查询数据

-- 条件查询
SELECT * FROM T_User WHERE Id>2 AND Name IS NOT NULL; -- 分组
SELECT Name FROM T_User GROUP BY Name; -- 排序,默认ASC,顺序
SELECT * FROM T_User ORDER BY Id DESC; /*
INNER JOIN(内连接,或等值连接:获取两个表中字段匹配关系的记录。
LEFT JOIN(左连接:获取左表所有记录,即使右表没有对应匹配的记录。
RIGHT JOIN(右连接:与 LEFT JOIN 相反,用于获取右表所有记录,即使左表没有对应匹配的记录。
*/
SELECT TU.* FROM T_User TU
INNRT JOIN T_School TS ON TS.Id = TU.SchoolId
WHERE TS.`LEVEL` = 1; /*
UNION ALL: 返回所有结果集,包含重复数据
UNION DISTINCT: 删除结果集中重复的数据,默认去重
*/
SELECT Id, Name FROM T_User WHERE ClassName='三年二班'
UNION ALL
SELECT Id, Name FROM T_User WHERE ClassName='三年五班' -- 统计行数
SELECT COUNT(1) FROM T_User;

三、其他函数

1、判断

SELECT
IF(SEX = 1, '男', '女') SEX
FROM T_USER;

2、逗号拼接

SELECT
GROUP_CONCAT(Name)
FROM T_User
LIMIT 10;

3、判空

SELECT
IFNULL(CardNo, '') CardNo
FROM T_User
WHERE Id>10;

4、转换数据类型

//类型转换
SELECT CAST(Id AS CHAR) FROM T_User;
//拼接个空字符串,隐式转换
SELECT CONCAT(Id,'') FROM T_User;

5、分页及统计行数

//方法一
SELECT
TAB.*,
@i Total
FROM
(SELECT
(@i := @i + 1) AS RowNum,
B.*
FROM
book B,
(SELECT @i := 0) AS it
) TAB
WHERE TAB.RowNum BETWEEN 5 AND 10
//方法二:
SET @i=0;
SELECT
TAB.*,
@i Total
FROM
(SELECT
(@i := @i + 1) AS RowNum,
B.*
FROM
book B
) TAB
WHERE TAB.RowNum BETWEEN 5 AND 10;
SET @i:=NULL;

6、时间格式转换

//yyyy-MM-dd HH:mm:ss
date_format(Birthday, '%Y-%m-%d %H:%i:%s')

 7、分组拼接

SELECT
GROUP_CONCAT( CONCAT( CreateBy, ':', Remark ) )
FROM
book
GROUP BY
`Name`

【MYSQL】语法复习的更多相关文章

  1. mysql - 语法复习与学习

    //本月的第一天,最后一天 $start=date('Y-m-01', strtotime(date("Y-m-d"))); echo date('Y-m-d', strtotim ...

  2. MYSQL 语法大全自己总结的

    mysql语法大全 --------数据链接---------------------数据库服务启动net start mysql --关闭服务net stop mysql --登录 -u,-p后面不 ...

  3. 学习mysql语法--基础篇(一)

      前  言  mysql  mysql语法--本篇学习都是通过使用Navicat Premium(数据库管理工具),连接mysql数据. 本篇学习主要有两个部分:    一.创建用户,创建数据库,给 ...

  4. 学习mysql语法--基础篇(二)

      前  言  mysql  mysql语法--本篇学习都是通过使用Navicat Premium(数据库管理工具),连接mysql数据. 本篇学习主要有两个部分: [SQL语句的组成]   DML ...

  5. mysql语法之case when then与列转行

    mysql语法中case when then与列转行的使用场景非常丰富. case语句类似java中条件分支语句的作用,可以类比java中的switch语句或者if语句来学习. 其语法如下: case ...

  6. mongo 与 传统mysql语法对比

    MongoDB语法                                  MySql语法 db.test.find({'name':'foobar'})<==> select ...

  7. Mongodb与mysql语法比较

    Mongodb与mysql语法比较   mongodb与mysql命令对比 传统的关系数据库一般由数据库(database).表(table).记录(record)三个层次概念组成,MongoDB是由 ...

  8. mongodb linux基本启动 基础增删改 mysql语法的对比

    一.主流数据源类型 还存在自定义数据源以及REST接口数据,共6中数据源. 二.linux下启动连接数据库 进去mongodb的目录启动服务:mongo --host 192.168.320.826 ...

  9. mysql语法、特殊符号及正则表达式的使用

    http://blog.csdn.net/pipisorry/article/details/46773545 sql语言 结构化的查询语言.(Structured Query Language),是 ...

随机推荐

  1. JS脚本动态给元素/控件添加事件

    最近突然要用到JS脚本动态给元素添加事件.如TextBox的onclick事件.但有的onclick事件原先已经定义了相应代码!这里又不能替代原有方法,而JS脚本里面有个方法可以给控件在原有事件的基础 ...

  2. 【胡思乱想】命令模式 与 Thread Runnable

    实现线程任务有两种方式,一种是创建Runnable/Callable对象,传递给Thread.另一种是子类重写Thread的run方法. 我觉得前一种像极了命令模式,或者说应该是命令模式的一个使用案例 ...

  3. 【JS】for in循环对象,hasOwnProperty()的作用

    var obj = { name:"echolun", age:", sex:"male" }, objName=[], //用来装对象属性名 obj ...

  4. SQL 获取时间格式

    2018-12-17 22:31:01  SQL    :  CONVERT(varchar(100), GETDATE(), 20) Oracle:   to_date(SYSDATE(),'yyy ...

  5. WebForm 基础学习

    C/S   客户端应用程序(Client/Server)  客户端——服务器端 两种技术      WinForm       WPF                                 ...

  6. thinphp 缓存机制导致代码不跟新

    问题: 调试阶段,程序已经更新,但是浏览器没有出现新效果! 1.以为是谷歌浏览器缓存导致,解决:设置--高级设置--隐私设置--清除浏览器缓存 一小时过去了,但还是没有更新,怎么刷新都没用!! 2. ...

  7. Mock session,cookie,querystring in ASB.NET MVC

    写测试用例的时候经常发现,所写的功能需要Http上下文的支持(session,cookie)这类的. 以下介绍2种应用场景. 用于控制器内Requet获取参数 控制器内的Requet其实是控制器内的属 ...

  8. 【CentOS】设置服务开机自动启动

    CentOS安装好apache.mysql等服务器程序后,并没有设置成开机自动启动的,为避免重启后还要手动开启web等服务器,还是做下设置好,其实设置很简单,用chkconfig命令就行了. 例如,要 ...

  9. webstorm激活

    选择 License server http://idea.imsxm.com/ http://idea.iteblog.com/key.php (2016.11.16) http://v2mc.ne ...

  10. 解决myeclipse2017安装后闪退问题

    修改myeclipse的配置文件myeclipse.ini: 1.将-vm下面的路径改成自己的jdk的javaw.exe的路径 2.在文档最后加上两条语句: -Dgenuitec.honorDevMo ...