今天突然想起来,之前面试一个很牛逼的公司(soho)的时候,一个美眉面试官,面试的时候问到了很多之前都没有意识到的问题,回想起来那美眉看着年纪不大,技术那是真666啊.好了说一下人家问的这个有关mysql数据库中sql语句的执行顺序,也就是一个sql语句在mysql引擎中是如何一步步的执行的.比如有人问你select * from tableName where id = 10 and age < 20 limit 10;这句sql语句是怎么执行的.是不是瞬间蒙蔽了,哈哈哈.我当时也蒙蔽了,直接…
sql语句总结 总结内容 1. 基本概念 2. SQL列的常用类型 3. DDL简单操作 3.1 数据库操作 3.2 表操作 4. DML操作 4.1 修改操作(UPDATE SET) 4.2 插入操作(INSERT INTO VALUE) 4.3 删除操作(DELETE) 5. DQL操作 被操作的表 5.1 消除重复元素(DISTINCT) 5.2 算术运算符(+,-,*,/) 5.3 设置别名(AS) 5.4 按格式输出(**CONCAT**) 5.5 过滤查询(**WHERE**) 5.…
查看mysql版本:select version();方法一: show profiles.1. Show profiles是5.0.37之后添加的,要想使用此功能,要确保版本在5.0.37之后.   查看方法: show variables like "%pro%";(查看profiling是否开启) 设置开启方法: set profiling = 1; 可以开始执行一些想要分析的sql语句了,执行完后,show profiles:即可查看所有sql的总的执行时间. show pro…
目前发现的mysql与其他数据库如SqlServer.Oracle不同的地方 mysql中的注释(--)后要多加一个空格才生效 mysql中查询条件的字符串可以是双引号 mysql中查询条件的字符串不区分大小写 mysql中不能按拼音排序,要将数据库的字符集由UTF-8修改为GBK mysql中有更简单的分页方法limit mysql中的sql语句表名.字段名可以添加``,用来过滤保留字符 当然还有许多方便的函数,就不列举了…
上一片介绍了一些基本的SQL的增删改查,这一片会介绍一些进阶的SQL语句使用. MySQL中的视图 视图是什么?当我们总是查询几张表的某个字段时,可以创建一张虚拟表,把这几个字段写入这个虚拟的表,这样之后,再查询这些字段,我们可以直接查询这个虚拟的表,这个虚拟的表就叫做视图.(不知道说清没,先记一句,视图是一个虚拟的表,) 创建视图的定义: CREATE [OR REPLACE] [ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}] [DEFINER = {…
1:提取公共的sql语句: 2:动态添加----sql语句: 代码: <insert id="test1" parameterType="com.floor.shop.model.Product"> INSERT INTO product <trim prefix="(" suffix=")" suffixOverrides=","> <if test="produc…
1.sql语句分类: DQL语句 数据查询语言 select DML语句 数据操作语言 insert delete update DDL语句 数据定义语言 create drop alter TCL语句 事务控制语言 commit rollback 2.创建一个新的数据库,create database database_name; 删除一个数据库,drop database database_name; 3.导入数据库脚本,source url(该路径可直接拖动文件到dos命令窗口获得) 4.…
static bool Verify(string username, string password) { //string strSql = "select * from users where username = '"+username+"' and password = '"+password+"'"; //直接拼接sql语句 string strSql = "select * from users where usernam…
1.避免全表扫描 对查询进行优化,应尽量避免全表扫描,首先应考虑在where 及order by 涉及的列上建立索引. 2.避免判断null 值 应尽量避免在where 子句中对字段进行null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如: select id from t where num is null 可以在num 上设置默认值0,确保表中num 列没有null 值,然后这样查询: select id from t where num=0 3.避免不等值判断 应尽量避免在whe…
1:数据定义语言(DDL) :创建和删除数据库(CREATE DATABASE || DROP  DATABASE):2:创建.修改.重命名.删除表(CREATE  TABLE || ALTER TABLE|| RENAME TABLE||DROP  TABLE):3:创建和删除索引(CREATEINDEX  || DROP INDEX) 2:数据查询语言(DQL) 从数据库中的一个或多个表中查询数据(SELECT) 3:数据操作语言(DML) 修改数据库中的数据,包括插入(INSERT).更新…
1.group_concat(),手册上说明:该函数返回带有来自一个组的连接的非NULL值的字符串结果.比较抽象,难以理解. 通俗点理解,其实是这样的:group_concat()会计算哪些行属于同一组,将属于同一组的列显示出来.要返回哪些列,由函数参数(就是字段名)决定.分组必须有个标准,就是根据group by指定的列进行分组. group_concat函数应该是在内部执行了group by语句,这是我的猜测. 1.测试语句: select group_concat(town) from p…
<数据定义语言DDL> 一. create TABLE tableName 创建表 二. alter TABLE tableName 修改表 三. drop TBALE tableName 删除表 <数据控制语言DCL> GRANT/REVOKE <数据操纵语言DML> 一. insert INTO tableName(,,,) values(,,,); 插入数据(增) 二. update tableName SET =, =, =; 更新数据(改) 三. delete…
MYSQL5.7 假设我们有一个表 : h_member_cards_my  (ID, WXOPEN_ID) 表中有一条记录如下: 理论上第二个SQL应当是可以查询得到一条数据的, 结果却为 Empty set 也就是说, 当字段值为null时, 用 != 做判断时, 是匹配不到的…
delimiter // set @d=now(); select * from comment; select timestampdiff(second,@d,now()); delimiter ; Query OK, 0 rows affected (1 min 55.58 sec) +----------------------------------+ | timestampdiff(second, @d, now()) | +------------------------------…
转自 http://blog.csdn.net/ve_love/article/details/19685399…
书写顺序: select -> from -> where -> group by -> having -> order by 执行顺序: from -> where -> group by -> having -> select -> order by…
·1.几个小时内的数据 DATE_SUB(NOW(), INTERVAL 5 HOUR) 1 ·2.今天 select * from 表名 where to_days(时间字段名) = to_days(now()); 1 ·3.昨天 select * from 表名 WHERE TO_DAYS( NOW( ) ) - TO_DAYS( 时间字段名) <= 1; 1 ·4.7天 select * from 表名 where DATE_SUB(CURDATE(), INTERVAL 7 DAY) <…
(转载)http://qjoycn.iteye.com/blog/1288435 今天发现了一个错误:Could not execute JDBC batch update 最后发现原因是SQL语句长度大于1M,而我机器上的mysql是默认设置,也就是说mysql通讯的数据包大小设置是1M,这就造成sql语句执行失败.于是把mysql的配置文件(my.ini)中的max_allowed_packet = 6M变大,问题就解决了.…
mysql中SQL执行过程详解 客户端发送一条查询给服务器: 服务器先检查查询缓存,如果命中了缓存,则立刻返回存储在缓存中的结果.否则进入下一阶段. 服务器段进行SQL解析.预处理,在优化器生成对应的执行计划: mysql根据优化器生成的执行计划,调用存储引擎的API来执行查询. 将结果返回给客户端.详见:http://student-lp.iteye.com/blog/2152601 ==============================华丽丽的分割线==================…
Mysql 常用 SQL 语句集锦 基础篇 //查询时间,友好提示 $sql = "select date_format(create_time, '%Y-%m-%d') as day from table_name"; //int 时间戳类型 $sql = "select from_unixtime(create_time, '%Y-%m-%d') as day from table_name"; //一个sql返回多个总数 $sql = "select…
在Asp.Net网站或者Java网站的程序设计的过程中,很多时候我们可以看到拼接SQL语句的写法的时候都可以看到最前面有个Where 1=1这个条件,其实Where 1=1这是个恒等式,SQL语句写成Where 1=1的形式可以更好的拼接查询语句条件. 结论:Where 1=1为恒等式,拼接SQL语句使用Where 1=1这个语句段主要是为了后续更好的拼接成完成的SQL语句. 举例,前台页面可能传入参数Name和Code两个参数值,都是对应SQL语句查询条件,但这两个查询条件也可全为空,即不传实…
一. varchar存储规则: 4.0版本以下,varchar(20),指的是20字节,如果存放UTF8汉字时,只能存6个(每个汉字3字节) 5.0版本以上,varchar(20),指的是20字符,无论存放的是数字.字母还是UTF8汉字(每个汉字3字节),都可以存放20个,最大大小是65532字节    二. varchar和char 的区别: char是一种固定长度的类型,varchar则是一种可变长度的类型,它们的区别是: char(M)类型的数据列里,每个值都占用M个字节,如果某个长度小于…
int(11)最大长度是多少,MySQL中varchar最大长度是多少? int(11)最大长度是多少? 在SQL语句中int代表你要创建字段的类型,int代表整型,11代表字段的长度. 这个11代表显示宽度,整数列的显示宽度与mysql需要用多少个字符来显示该列数值,与该整数需要的存储空间的大小都没有关系,比如,不管设定了显示宽度是多少个字符,bigint都要占用8个字节. int是整型,(11)是指显示字符的长度,但要加参数的,最大为255,比如它是记录行数的id,插入10笔资料,它就显示0…
一.用户管理: 创建用户: create user '用户名'@'IP地址' identified by '密码'; 删除用户: drop user '用户名'@'IP地址'; 修改用户: rename user '用户名'@'IP地址'; to '新用户名'@'IP地址'; 修改密码: set password for '用户名'@'IP地址' = Password('新密码') 二.库相关操作 查看所有数据库: SHOW DATABASES; 创建数据库 : CREATE DATABASE…
MySQL与SQL语句的操作 Mysql比较轻量化,企业用的是Oracle,基本的是熟悉对数据库,数据表,字段,记录的更新与修改 1. mysql基本信息 特殊数据库:information_schema,performance_schema 特殊的数据表:包含着数据库的信息与设置 2. MySQL基本操作 连接:mysql -u username -h [ip] -p [password] 增加用户: 新增mysql用户:如果你需要添加 MySQL 用户,你只需要在 mysql 数据库中的 u…
一. varchar存储规则: 4.0版本以下,varchar(20),指的是20字节,如果存放UTF8汉字时,只能存6个(每个汉字3字节) 5.0版本以上,varchar(20),指的是20字符,无论存放的是数字.字母还是UTF8汉字(每个汉字3字节),都可以存放20个,最大大小是65532字节    二. varchar和char 的区别: char是一种固定长度的类型,varchar则是一种可变长度的类型,它们的区别是: char(M)类型的数据列里,每个值都占用M个字节,如果某个长度小于…
Mysql 常用 sql 语句 - 快速查询 1.mysql 基础 1.1 mysql 交互         1.1.1 mysql 连接             mysql.exe -hPup                 h:host,    default: localhost                 P:port,    default: 3306                 u:username                 p:password(如果需要的话)    …
MySQL 数据库SQL语句--高阶版本2 实验准备 数据库表配置: mysql -uroot -p show databases; create database train_ticket; use train_ticket; create table REGION(region varchar(10),site varchar(20)); create table FARE(site varchar(20),money int(10),date varchar(15)); desc REGI…
MySQL 数据库SQL语句--高阶版本 实验准备,数据表配置 mysql -uroot -p show databases; create database train_ticket; use train_ticket; create table REGION(region varchar(10),site varchar(20)); create table FARE(site varchar(20),money int(10),date varchar(15)); desc REGION;…
MySQL高级SQL语句 目录 MySQL高级SQL语句 创建两个表 SELECT DISTINCT WHERE AND OR IN BETWEEN 通配符 LIKE ORDER BY 函数 数学函数 聚合函数 字符串函数 GROUP BY HAVING 别名 子查询 EXISTS 表连接的方式 表的自我连接 CREATE VIEW UNION 交集值 无交集值 CASE 空值 正则表达式 存储过程 存储过程的优点: 创建存储过程 查看存储过程 存储过程的参数 删除存储过程 存储过程的控制语句…