mysql技术内幕之常规使用
mysql中:终止语句方法:
1.在语句结尾处,输入分号(;)表示语句到此结束
2.使用\g(意思是go)
\G以垂直的方式显示结果,每行显示一个值
数据库:数据库中包含表,对表中数据执行插入,检索,修改或删除操作
创建新的数据库:CREATE DATABASE sampdb;(从小写字母这里开始是自己取的数据库名字)
将当前数据库选中并设为默认数据库:①USE sampdb; ②SELECT DATABASE();
创建表:CREATE TABLE tbl_name(colum_spaces);
数据类型VARCHAR: VARCHAR(n)表示该列可存放长度可变的字符串,但其长度存在上限,最大字符为n个字符
AUTO_INCREMENT:自动生成索引号
PRIMARY KEY(member_id):表示member_id列创建索引,要求该列里的所有值都必须唯一,可以加快表的查找速度
ENUM('F','M'); 把表列的可能取值限定在某个有限集合里
创建一个表时在其末尾加ENGINE,表示为mysql应该使用的存储引擎指定名字(存储引擎是用来管理某种表的处理器),如:ENGINE=InnoDB;
表中插入一行值:INSERT INTO tbl_name VALUES(valu1,value2...); eg: INSERT INTO student VALUES('lymle','M',NULL);
还可以在一个表中一次插入多行:eg:INSERT INTO student VALUES('Avery','F',NULL),('Nathan','M',NULL);
创建的行,指定几列赋初值:格式:INSERT INTO tbl_name(col_name1,col_name2...) VALUES(value2,value2...); eg: INSERT INTO member (last_name,first_name)VALUES ('stein','waddo');
可一次插入多个值值列表:INSERT INTO student(name,sex) VALUES('Abby','F'),('Jo','M');
指定几列赋初值,第二种形式:INSERT INTO tbl_name SET col_name1=value,col_name2=value2...; eg:INSERT INTO member SET last_name='stein',first_name='waldo';
从文件中读取已经编好的语句(不像每次输入一行,文件中的是语句全部提前打好,最终一次性输入),倘若mysql已经运行,可以执行如下格式,SOURCE 文件名; eg:SOURCE insert_president.sql 此处文件名自己取,末尾的sql是方便查找代表里面存放的是sql语句。
读取文件中转载的原始数据:格式:LOAD DATA LOCAL INFILE '文件名‘ INTO
检索信息: SELECT ( what to retrieve) FROM (table or tables) WHERE (coditions that data must satisfy); 其中大写字母为关键字,括号中的为可替换词
WHERE子句的表达式:允许使用算术运算符,比较运算符,逻辑运算符。
当把一个列与大量值进行比较时,即从选中的这列中筛选出满足条件的值(只需满足其中一个条件即可)时,用IN()会比较方便 eg: SELECT last_name,first_name FROM president WHERE state IN('VA','MA');
NULL表示无值或未知值,要判断一个值是否为NULL,只能用IS NULL 或IS NOT NULL,而不能用=,<,或<>(这是不等于的意思) eg:SELECT last_name,first_name FROM president WHERE death IS NULL; <=>用于比较NULL与NULL,NULL与NULL的结果为1
对查询结果排序:在查询语句后加一条ORDER BY 子句,默认方式是升序排列,在列名后面加关键字ASC(升序)或DESC(降序又叫逆序) eg:SELECT last.name,state FROM president ORDER BY state DESC;
对多列排序时,每列可以单独地升序或降序: eg:SELECT last_name,state FROM president ORDER BY state ESC,last_name ASC;
排序时,升序:NULL出现在开头,降序时,NULL出现在末尾。想要不服从这种顺序,可以使用IF()函数,计算第一个参数给出地表达式的值,结果为真,返回第二个参数的值,若结果为假,则返回第三个参数的值,排序时默认把真的放到假的前面,设置时可以把需要排在前面的通过条件设成真即可。
限制查询结果输出行数:在末尾加LIMIT eg:SELECT bir FROM pre ORDER BY birth LIMIT 5; 按出生日期把排在前5位的总统列出来
通过LIMIT,从查询结果的中间抽出部分连续行,需要指定两个值,①从查询结果的开头跳过的行数②需要返回的行数目 eg: SELECT birth FROM president ORDER BY birth DESC LIMIT 10,5; //跳过前10行,取之后连续的5行
将查询结果连接,使用关键字CONNECT eg:SELECT CONNECT (first_name,' ',last_name)CONNECT(city,' ',state) FROM president; //先将名和姓用空格连起来,连接表中的几列
为输出列分配别名(当输出列的名字很长时),格式:AS name 若输出列别名中含有空格,别名必须用引号引起来 eg: SELECT CONNECT (first_name,' ',last_name)AS name, CONNECT(city,' ',state) AS Birthplace FROM president ;
在为列提供别名时,可以省略关键字AS, eg:SELECT 1 one,2 two,3 three;
检索具体的某一年,月,日,使用YEAR(),MONTH(),DAYOFMONTH()函数, eg:SELECT last_name,birth FROM president WHERE MONTH(birth)=3 AND DAYOFMONTH(birth)=29;//找出3月29日出生的总统
查询今日,使用CURDATE()函数
查询两个日期间的时间间隔:①当已知两个日期时,用TIMESTANPDIFF()函数, 格式: TIMESTAMPDIFF(interval,datetime_expre1,datetime_expr2) 后面两个是比较的时间点,后减前为时间间隔,其中 interval(时间间隔单位)必须是下面几种之一: FRAC_SECOND 表示间隔是毫秒, SECOND 秒 ,MINUTE 分钟,HOUR 小时 DAY 天 ,WEEK 星期, MONTH 月, QUARTER 季度 , YEAR 年 eg: SELECT last_name,expiration FROM member WHERE TIMESTAMPDIFF( DAY ,CURDATE(),expiration)<60;
②已知一个日期和时间间隔,计算另一个日期,关键函数:DATA_ADD()和DATA_SUB() eg: SELECT DATA_ADD('1970-1-1', INTERVAL 10 YEAR); //其中的interval为间隔,该条语句能把在这10年期间的都搜索出来
mysql技术内幕之常规使用的更多相关文章
- Mysql技术内幕(第四版)读书笔记(一)
题记:写代码已经有2年了,学到了很多知识,但是没有一个好习惯去记录,去分享,好多知识点都会忘记,所以从今天开始学着像大牛一样去记录自己经历项目的点点滴滴,先从最近读<Mysql技术内幕>开 ...
- mysql技术内幕InnoDB存储引擎-阅读笔记
mysql技术内幕InnoDB存储引擎这本书断断续续看了近10天左右,应该说作者有比较丰富的开发水平,在源码级别上分析的比较透彻.如果结合高可用mysql和高性能mysql来看或许效果会更好,可惜书太 ...
- MySql技术内幕之MySQL入门(2)
MySql技术内幕之MySQL入门(2) 接上一篇. mysql> source create_member.sql; # 创建member表 Query OK, 0 rows affected ...
- MySql技术内幕之MySQL入门(1)
目录 MySql技术内幕之MySQL入门(1) 安装 关于注释 执行SQL语句 关于命令大小写 创建数据库 查看表的信息 查看更加详细的信息 查看与给定模式相匹配的列 插入数据 利用insert添加行 ...
- 《MySQL技术内幕:InnoDB存储引擎(第2版)》书摘
MySQL技术内幕:InnoDB存储引擎(第2版) 姜承尧 第1章 MySQL体系结构和存储引擎 >> 在上述例子中使用了mysqld_safe命令来启动数据库,当然启动MySQL实例的方 ...
- 《mysql技术内幕 InnoDB存储引擎(第二版)》阅读笔记
一.mysql架构 mysql是一个单进程多线程架构的数据库. 二.存储引擎 InnoDB: 支持事务 行锁 读操作无锁 4种隔离级别,默认为repeatable 自适应hash索引 每张表的存储都是 ...
- Mysql技术内幕——InnoDB存储引擎
Mysql技术内幕——InnoDB存储引擎 http://jingyan.baidu.com/article/fedf07377c493f35ac89770c.html 一.mysql体系结构和存储引 ...
- 《[MySQL技术内幕:SQL编程》读书笔记
<[MySQL技术内幕:SQL编程>读书笔记 2019年3月31日23:12:11 严禁转载!!! <MySQL技术内幕:SQL编程>这本书是我比较喜欢的一位国内作者姜承尧, ...
- 读书笔记-《Mysql技术内幕》
MYSQL 技术内幕 Mysql体系 连接池组件 管理服务和工具 SQL接口 查询分析器 优化器 缓冲 插件式存储引擎 物理文件 存储引擎 InnoDB(默认引擎) 支持事务 行锁设计 多版本并发控制 ...
随机推荐
- Hibernate 再接触 基础配置 搭建Log4j环境 Junit日志环境等
<!-- Drop and re-create the database schema on startup --> <property name="hbm2ddl.aut ...
- ArcGIS案例学习笔记3_1_地理配准案例_图面控制点
ArcGIS案例学习笔记3_1_地理配准案例_图面控制点 计划时间:第3天上午 目的:地形图控制点配准 数据:地形图drg 无坐标: 步骤 1.查看地图标注 2. 地理配准,添加控制点 3.结果: 联 ...
- JAVA回文
package huiwen; import java.util.Scanner; public class Huiwen { public static void main(String[] arg ...
- netty 集成 wss 安全链接
netty集成ssl完整参考指南(含完整源码) 虽然我们在内部rpc通信中使用的是基于认证和报文头加密的方式实现安全性,但是有些时候仍然需要使用SSL加密,可能是因为对接的三方系统需要,也可能是由于o ...
- Ik分词器没有使用---------elasticsearch-analysis-ik 5.6.3分词问题
此文章在作者认真阅读源码后发现,这并不是问题所在. 此篇文章是对IK配置的错误理解.新版本的IK配置的扩展字典本来就该使用者自己去手动配置! 1.问题 现在项目中用的是ES5.6.3的版本,在解决Fi ...
- httpd无法加载libphp5.so模块
安装httpd-2.2.8 和php-5.2.5,一切顺利. 最后一步重新启动apache报如下错误: httpd: Syntax error on line 53 of /usr/local/apa ...
- OpenCV SVM
#include <opencv2/core/core.hpp> #include <opencv2/highgui/highgui.hpp> #include <ope ...
- echarts 树图
1 事件:事件绑定,事件命名统一挂载到require('echarts/config').EVENT(非模块化为echarts.config.EVENT)命名空间下,建议使用此命名空间作为事件名引用, ...
- Springboot 静态资源
说下默认映射的文件夹有: classpath:/META-INF/resources classpath:/resources classpath:/static classpath:/public ...
- javase中javax源码下载地址
OracleJDK 和 OpenJDK 源码都可以参考. OpenJDK 源码下载 http://hg.openjdk.java.net/jdk7/jdk7/jdk/file 我主要是想下载 java ...