马哥学习笔记十五——MySQL进阶之SQL语句

数据库:

  create database|schema [if not exists] db_name [character set =] [collate
=];

  alter database

  drop {database | schema} [if exists] db_name;

表:

  1、直接定义一张空表;
  2、从其它表中查询出数据,并以之创建新表;
  3、以其它表为模板创建一个空表;

  CREATE TABLE [IF NOT EXISTS] tb_name (col_name col_defination, constraint
)

  CREATE TABLE tb1 (id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, Name
CHAR(20) NOT NULL, Age TINYINT NOT NULL)  ENGINE [=] engine_name;

  CREATE TABLE tb2 (id INT UNSIGNED NOT NULL AUTO_INCREMENT, Name CHAR(20)
NOT NULL, Age TINYINT NOT NULL, PRIMARY KEY(id),UNIQUE
KEY(name),INDEX(age));

  单字段:  PRIMARY KEY  UNIQUE KEY

  单或多字段:  PRAMARY KEY (col,...)  UNIQUE KEY (col,...)  INDEX
(col,...)

键也称作约束,可用作索引,属于特殊索引(有特殊限定):B+Tree

SHOW INDEXES FROM tb_name:显示指定表上的索引

索引创建:
  CREATE INDEX index_name ON tb_name (col,...);

  col_name [(length)] [ASC | DESC]

查询语句类型:

  简单查询

  多表查询

  子查询

SELECT field1,field2 FROM tb_name; 投影

SELECT [DISTINCT] * FROM tb_name WHERE qualification; 选择

  distinct:相同的值只显示一次

FROM子句: 要查询的关系        
表、多个表、其它SELECT语句

WHERE子句:

  布尔关系表达式  =、>、>=、<=、<

  逻辑关系:   AND   OR   NOT

  BETWEEN ... AND ...

  LIKE ‘’

    %: 任意长度任意字符

    _:任意单个字符

  REGEXP, RLIKE:支持正则表达式

  IN:离散取值

  IS NULL

  IS NOT NULL

ORDER BY field_name {ASC|DESC}:将查询后的数据进行排序

字段别名:AS

LIMIT子句:LIMIT [offset,]Count

聚合函数:SUM(), MIN(), MAX(), AVG(), COUNT()

GROUP BY: 分组

  HAVING qualification:对分组过滤

多表查询:
  连接:
    交叉连接:笛卡尔乘积
    自然连接:
    外连接:
      左外连接:...
LEFT JOIN ... ON ...
      右外连接: ... RIGHT JOIN ... ON ...
    自连接:

子查询:

  比较操作中使用子查询:

  子查询只能返回单个值;

  IN(): 使用子查询;

  在FROM中使用子查询;

联合查询:  UNION

视图: 存储下来的SELECT语句;

  基于基表的查询结果;

  VIEW

  CREATE VIEW

  物化视图:SELECT

SHOW CREATE:显示创建过程

mysql -e ‘SQL语句‘:在shell命令函中执行SQL语句

广义查询:

  DML:

    DELETE

    INSERT INTO

    UPDATE

INSERT INTO tb_name (col1, col2, ...) VALUES (val1, val2, ...)[,(val1, val2,
...),...]

  字符型:单引号

  数值型:不需要引号

  日期时间型:

  空值:NULL, ‘‘

REPLACE INTO

DELETE:  DELETE FROM tb_name WHERE condition;

TRUNCATE tb_name: 清空表,并重置AUTOINCREMENT计数器;

UPDATE tb_name SET col1=..., col2=... WHERE

时间: 2024-12-28 12:59:59

马哥学习笔记十五——MySQL进阶之SQL语句的相关文章

马哥学习笔记十八——MySQL进阶之日志管理

错误日志:log_error,log_warnings 服务器启动和关闭过程中的信息 服务器运行过程中的错误信息 事件调度运行一个事件时产生的信息 在从服务器上启动从服务器进程时产生的信息 一般查询日志:general_log,general_log_file,log,log_output={table|file|none} 慢查询日志long_query_time,log_slow_queries={YES|NO},slow_query_log,slow_query_log_file 二进制日

马哥学习笔记十九——MySQL进阶之备份和还原

备份:副本 RAID1,RAID10:保证硬件损坏而不会业务中止: 备份类型: 热备份.温备份和冷备份 热备份:读.写不受影响: 温备份:仅可以执行读操作: 冷备份:离线备份:读.写操作均中止: 物理备份和逻辑备份 物理备份:复制数据文件: 逻辑备份:将数据导出至文本文件中: 完全备份.增量备份和差异备份: 完全备份:备份全部数据: 增量备份:仅备份上次完全备份或增量备份以后变化的数据: 差异备份:仅备份上次完全备份以来变化的数据: 备份什么: 数据.配置文件.二进制日志.事务日志 物理备份:速

马哥学习笔记十六——MySQL进阶之事务和隔离级别

连接管理器:  接受请求  创建线程  认证用户  建立安全连接 并发控制: mbox:MDA C/S: 100   10分钟: 多版本并发控制: MVCC 锁: 读锁:共享锁 写锁:独占锁 LOCK TABLES tb_name {READ|WRITE}; UNLOCK TABLES 锁粒度:从大到小,MySQL服务器仅支持表级锁,行锁需要由存储引擎完成: 表锁: 页锁:(block) 行锁: 事务:  RDBMS: ACID (原子性,一致性,隔离性,持久性) MyISAM:  不支持事务

马哥学习笔记二十五——ISCSI协议,架构及其安装配置

ISCSI监听在tcp/3260端口 iSCSI Target:iscsi-target-utils 客户端认正方式: 1.基于IP 2.基于用户,CHAP tgtadm:命令行工具,模式化命令 --mode 常用模式:target,logicalunit,account target --op new.delete.show.update.bind.unbind logicalunit --op new.delete account --op new.delete.bind.unbind --

马哥学习笔记二十六——MySQL主从复制

配置MySQL复制基本步骤: 一.master 1.启用二进制日志 log-bin = master-bin log-bin-index = master-bin.index 2.选择一个惟一server-id server-id = {0-2^32} 3.创建具有复制权限的用户 REPLICATION SLAVE REPLICATION CLIENT 二.slave 1.启用中继日志 relay-log = relay-log relay-log-index = 2.选择一个惟一的server

马哥学习笔记二十四——分布式复制快设备drbd

DRBD: 主从 primary: 可执行读.写操作 secondary: 文件系统不能挂载 DRBD: dual primay, 双主(基于集群文件系统的高可用集群) 磁盘调度器:合并读请求,合并写请求: Procotol:drbd数据同步协议 A: Async, 异步  数据发送到本机tcp/ip协议栈 B:semi sync, 半同步  数据发送到对方tcp/ip协议 C:sync, 同步  数据到达对方存储设备 DRBD Source: DRBD资源 资源名称:可以是除了空白字符外的任意

马哥学习笔记七——LAMP编译安装之MYSQL

1.准备数据存放的文件系统 新建一个逻辑卷,并将其挂载至特定目录即可.这里不再给出过程. 这里假设其逻辑卷的挂载目录为/mydata,而后需要创建/mydata/data目录做为mysql数据的存放目录. 2.新建用户以安全方式运行进程: # groupadd -r mysql # useradd -g mysql -r -s /sbin/nologin -M -d /mydata/data mysql # chown -R mysql:mysql /mydata/data 3.安装并初始化my

马哥学习笔记三十二——计算机及操作系统原理

缓存方式: 直接映射 N路关联 缓存策略: write through:通写 write back:回写 进程类别: 交互式进程(IO密集型) 批处理进程(CPU密集型) 实时进程(Real-time) CPU: 时间片长,优先级低IO:时间片短,优先级高 Linux优先级:priority 实时优先级: 1-99,数字越小,优先级越低 静态优先级:100-139,数据越小,优先级越高 实时优先级比静态优先级高 nice值:调整静态优先级   -20,19:100,139   0:120 ps

马哥学习笔记三十——tomcat

Java体系结构包含四个独立却又彼此相关的技术: Java程序设计语言 Java API Java Class文件格式 JVM: Java Virtual Machine JVM的实现方式: 1.一次性解释器,解释字节码并执行: 2.即时编译器(just-in-time complier) 依赖于更多内存缓存解释后的结果 3.自适应编译器 缓存20%左右代码,提高80%左右的速度: 运行时数据区: 线程私有内存区: 程序计数器 java虚拟机栈 线程共享内存区: 方法区 堆:java自动内存回收