Mysql 笔记之基础知识

Mysql中的字符的大小写

1、SQL关键字和内置函数名不区分大小写,比如SELECT,可写成select要遵循一种风格。

2、数据库、表、索引及视图的名称是是否区分大小写取决于低层的os和FS。

3、存储过程,存储函数及事件调度器不区分字符大小写,但触发器区分大小写;

4、表名不区分大小写

5、字段中字符数据,类型binary、blog、varbinary区分大小写

>CREATE DATABASE IF NOT EXISTS tb_test;

>SHOW GLOBAL VARIABLES LIKE ‘%char%’;

在mysql客户端与服务器端

CHARACTER SET [=] charset

在DDL中CREATE/ALTER/DROP

数据字典就是存取数据元数据的数据集,

DROP DATABASE IF EXISTS db_name

表的创建

约束有  主键唯一键外键(约束)

索引:特殊的数据结构,用于快速找到数据记录,键可用做索引(是一种特殊的索引),但并非所有索引都是键。

索引类型:B-Tree索引,(B+ Tree,B- Tree),hash(哈希索引)讲一个数据切成n段放到桶中,查找性能非常好,FullText(全文索引)某一个条目被用户访问的比较大,

>SELECT * FROM tb_test WHERE NAME LIKE ‘tom%’

使用索引优点

1、大大减小服务器需要扫描的数据量;

2、索引可以帮服务器尽量避免进行排序及使用临时表;

3、索引可以将随机I/O转换成顺序I/O。

B-Tree索引的使用场景:1、全值匹配:比较操作符=,<=>;2、左前缀匹配:LIKE ‘tom%’

在姓名和性别上做索引,列前缀匹配;3、匹配范围值;只访问索引的查询。覆盖索引,从索引就可以直接得到最终结果。

哈希索引适用场景:

哈希只包含哈希值和行指针;不是按照索引值顺序存储的因此无法用于排序,不支持部分索引查找。哈希索引只支持等值比较查询,包含=,IN(),<=>。哈希值有可能冲突,出现碰撞需二次查找。

聚集索引和非聚集索引,聚集索引是指索引和数据一起存放,索引顺序文件。非聚集所以,索引和数据分开存放的,数据记录未必顺序存放,但索引数据一般顺序存放,

创建表:1、手动创建CREATE TABLE tmp1 2、查询其他表数据来创建表3、复制其它表的表结构

临时表不能超过16M 有管理权限才可以创建,

>CREATE TABLE tb (name CHAR(30) PRIMARY KEY,gender ENUM(‘m’,’f’));

>CREATE TABLE tb (name CHAR(30),gender ENUM(‘m’,’f’),PRIMARY KEY (name));这个可以创建多个主键,后接ENGINE ‘MYISAM’指明存储引擎。

Table_option  ENGINE=’innoDB’

>SHOW GLOBAL VARIABLE LIKE ‘%storage%’;查看存储引擎

>SELECT @@SESSION.default_storage_engine;

AUTO_INCREMENT[=]value 自动增长

COMMANT[=]    注释

>SHOW TABLE STATUS LIKE ‘tb2’\G

>CREATE TABLE tb_test2(name CHAR(20),gender ENUM(‘m’,’f’));//创建表tb_test2

>INSERT INTO tb_test2 VALUES(‘tom’,’m’),(‘jerry’,’f’);//插入信息

>CREATE TABLE tb_test3 SELECT * FROM tb_test2;//查询表2信息创建表3。(第二种创建方法)

>CREATE TABLE tb_test4 LIKE tb_test2;//基于表2创建表4。(第三种创建方法)

删除表:DROP

ALTER [ONLINE | OUTLINE] TABLE db_name

>ALTER TABLE tb_test5 ADD id INT UNSIGND NOT NULL AUTO_INCREMENT PRIMARY KEY;

>ALTER TABLE tb_test5 DROP PRIMARY KEY;  //删除索引

>ALTER TABLE tb_test5 MODIFY name CHAR(30) NOT NULL; 修改表5中的name信息。

>ALTER TABLE tb_test5 CHANGE name Name CHAR(30) NOT NULL; 修改名

>ALTER TABLE tb_test5 ADD INDEX (Name);添加name字段上索引。删除的话ADD 换成DROP 就行了。

>ALTER TABLE tb_test5 RENAME TO students;//修改表名为students    //需谨慎

>RENAME TABLE students TO tb_test5;//再改过来

修改字符集

CONVERT TO CHARACTER SET charset_name

InnoDB表的表空间管理

>DISCARD TABLESPACE //删除表空间

>IMPORT TABLESPACE //导入新的表空间

不可以随便修改存储引擎

ALTER TABLE 可实现添加删除索引

CREATE  INDEX  index_name //也可以创建索引

SHOW INDEXS {FROM | IN} tb_name {FROM | IN } db_name;//查看索引

DROP {ONLINE | OFFLINE}INDEX index_name ON tb_name;//删除索引

索引创建的基本法则,基于搜索键来创建索引,SELECT 的WHERE 子句的查询条件中的字段。

索引使用策略

        1要使用独立的列,索引列不是表达式的一部分

SELECT name FROM students WHERE Age> 20;

2、前缀索引

索引选择性:单独索引项与数据记录的总数的比值,索引选择性越高查询效率就越高反之则就越低。

3、多列索引

查询条件,如果要用AND连接尽可能使用组合索引,如果是ALL则尽可能使用多个简单索引。

4、合适的次序,将选择性最高的列写在最左侧。

5、聚簇索引:

好处  数据访问块

缺点   跟新局促索引的代价很高

6、覆盖索引

时间: 2024-07-30 22:37:13

Mysql 笔记之基础知识的相关文章

C#学习笔记(基础知识回顾)之值类型与引用类型转换(装箱和拆箱)

一:值类型和引用类型的含义参考前一篇文章 C#学习笔记(基础知识回顾)之值类型和引用类型 1.1,C#数据类型分为在栈上分配内存的值类型和在托管堆上分配内存的引用类型.如果int只不过是栈上的一个4字节的值,该如何在它上面调用方法? 二:值类型转换为引用类型--装箱 2.1CLR对值类型进行装箱时:新分配托管堆内存,将值类型的实例字段拷贝到新分配的内存中,返回托管堆中新分配对象的地址.这个地址就是一个指向对象的引用. int i = 10; Object obj = i; 三:将引用类型转换为值

[Golong]学习笔记(一) 基础知识

Go编程基础 Go的内置关键字(25个) 不多 break default func interface select case defer go map struct chan else goto package switch const fallthrough if range type continute for import return var Go的注释方法(和js一样) 单行注释: // 多行注释: /**/ Go程序一般结构 common_structure.go 通过 pack

[设计模式整理笔记 一] 基础知识

[设计模式整理笔记 一] 基础知识 [导读] [设计模式整理笔记 一] 基础知识 [设计模式整理笔记 二] 简单工厂模式(Simple Factory) [设计模式整理笔记 三] 工厂模式(Factory) [设计模式整理笔记 四] 抽象工厂模式(Abstract Factory) [设计模式整理笔记 五] 创建者模式(Builder) [设计模式整理笔记 六] 工厂模式与创建者模式总结 [设计模式整理笔记 七] 原型模式(ProtoType) [设计模式整理笔记 八] 单例模式(Singlet

[python] 专题九.Mysql数据库编程基础知识

在Python网络爬虫中,通常是通过TXT纯文本方式存储,其实也是可以存储在数据库中的:同时在WAMP(Windows.Apache.MySQL.PHP或Python)开发网站中,也可以通过Python构建网页的,所以这篇文章主要讲述Python调用MySQL数据库相关编程知识.从以下几个方面进行讲解: 1.配置MySLQ 2.SQL语句基础知识 3.Python操作MySQL基础知识 4.Python调用MySQL示例 一. 配置MySQL 首先下载mysql-5.0.96-winx64,安装

《统计自然语言处理》读书笔记 一.基础知识及概念介绍

最近准备学习自然语言处理相关的知识,主要参考<统计自然语言处理·宗成庆>和<Natural Language Processing with Python>,推荐大家阅读.第一篇主要介绍的是NLP的基础知识和概念介绍,其实也是我关于NLP的读书笔记吧,希望对大家有所帮助. 一. 概念介绍 自然语言处理 自然语言处理(Natural Language Processing,简称NLP)技术的产生可追溯到20世纪50年代,它是一门集语言学.数学(代数.概率).计算机科学和认知科学等于一

Mysql安装以及基础知识概念

一.软件安装及服务器设置 安装教程:http://www.runoob.com/mysql/mysql-install.html Navicat for MySQL 连接 Mysql 8.0.11 出现1251- Client does not support authentication protocol 错误 参考解决方法:https://blog.csdn.net/seventopalsy/article/details/80195246 Windows 安装 MySQL 常见问题 参考解

专题九.Mysql数据库编程基础知识

https://blog.csdn.net/Eastmount/article/details/52156383 这篇文章主要讲述Python调用MySQL数据库相关编程知识.从以下几个方面进行讲解: 1.配置MySLQ 2.SQL语句基础知识 3.Python操作MySQL基础知识 4.Python调用MySQL示例 一. 配置MySQL 原文地址:https://www.cnblogs.com/chenhuan123/p/12038446.html

[算法学习笔记]算法基础知识

算法基础知识 算法的五大要素 有穷性:算法必须能够在有限个步骤内完成. 确定性:算法的每一步必须有确定的定义. 输入 输出 可行性:算法的每个步骤都必须能分解为基本的可执行操作,每个步骤都必须能在有限时间内完成 循环不变式 循环中的循环不变式可以帮助我们理解算法的正确性.为了证明算法的正确,必须证明循环不变式的三个性质: 1. 初始化:循环不变式在循环开始之前是正确的. 2. 保持:循环不变式在循环的每一次迭代开始之前是正确的. 3. 终止:在循环结束时,不变式会给出一个可以对判断算法是否正确有

Spring笔记(基础知识)01

1.基础知识 01.Spring:轻量级Java EE开源框架,它是由Rod Johnson为了解决企业应用程序开发的复杂性而创建. 02.目标:实现一个全方位的整合框架,实现"一站式"的企业应用开发. 03.内容: a.IoC容器 b.AOP实现 c.数据访问支持:简化JDBC/Hibernate编码    声明式事务 d.Web集成 04.Spring设计理念 Spring是面向bean的编程,IoC(Inversion of Control) ,AOP(Aspect Orient