MySQL笔记..
MySQL必知必会笔记

MySQL必知必会笔记(一)基础知识和基本操作第一章了解MySQL数据库保存有组织的数据的容器。
(通常是一个文件或一组文件)人们经常使用数据库这个术语代替他们使用的软件。
这是不正确的,确切的说,数据库软件应称为DBMS(数据库管理系统),数据库是通过DBMS创建和操纵的容器。
漱口可以是保存在硬件设备上的文件,但也可以不是。
你使用DBMS来代替自己访问数据库。
表表是一种结构化的文件可用来存储某种特定的类型的数据。
某种特定类型数据的结构化清单。
模式关于数据库和标的布局及特性的信息列表中的一个字段。
表由列组成。
列中存储着表里某部分的信息。
数据类型所容许的数据的类型。
每个表列都有相应的数据类型,它限制(或容许)该列中存储的数据。
行表中的一个记录主键一列(或一组列),其值能够唯一区分表中的每个行。
虽然不是必须的,但是一般都建立主键。
便于以后的数据管理表中任何列都可以作为主键,只要满足以下条件:1 任意两行都不具有相同的主键值。
2 每个行都必须有一主键值(主键值不允许为NULL)主键的最好习惯:不更新主键列的值不重用主键列的值不在主键列中使用可能会更改的值什么是sqlSql是结构化查询语言的缩写。
Sql是一种专门用类与数据库通信的语言。
第二章 MySQL简介什么是Mysql Mysql是一种DBMS,即它是一种数据库软件。
Mysql版本主要更改4-——InnoDB引擎,增加了事务处理、并、改进全文搜索等支持4.1——对函数库、子查询、集成帮助等的重要增加、5——存储过程、触发器、游标、试图等。
第三章使用mysql连接主机名端口一个合法用户用户口令Mysql -u root -p -h myserver -P 9999选择数据库可使用USE关键字,mysql语言组成部分的一个关键字,绝不要使用关键字命名一个表或列USE dataname;显示数据库列表SHOW DATABASES;一个数据库内的表的列表(USE进入数据库的情况下)SHOW TABLES;SHOW也可以用来显示表列SHOW COLUMNS FROM column;DESCRIBE 是SHOW COLUMNS的一种快捷方式;DESCRIBE cust;其他的SHOW语句SHOW STATUS 显示广泛的服务器状态信息SHOW CREATE DATABASE 显示创建特定数据库的MYSQL语句SHOW CREATE TABLE 显示创建特定表的MYSQL语句SHOW GRANTS 显示授权用户的安全权限SHOW ERRORS 显示服务器的错误信息SHOW WARNINGS 显示服务器的警告信息MySQL必知必会笔记(二)SELECT语句检索排序过滤通配符搜索正则表达式搜索第四章检索数据检索单列SELECT columnOne FROM table;检索多列SELECT columnOne,columnTwo,columnThire FORM table;检索所有列SELECT * FROM products; //一般,除非你确实需要表中的每个列,否则最好不要用*通配符检索不同的行检索出来的数据不重复DISTINCT关键字,顾名思义返回不同的值SELECT DISTINCT columnOne FROM table; //检索出来的columnOne 没有重复值DISTINCT关键字应用于所有列而不仅是前置它的列SELECT DISTINCT vend_id,prod_price......要求vend_id,prod_price这两列都不出现重复的值限制结果条数sql语句后面加入下面sql语句LIMIT 5 显示结果的前5条LIMIT 3,4从行3开始的后4行LIMIT 4 OFFSET 3 从行3开始的后4行第五章排序检索数据子句 Sql语句是由子句构成,有些子句是必须的,有些事可选的。
宋红康mysql高级篇笔记

宋红康mysql高级篇笔记MySQL 是一款广泛应用于互联网领域的关系型数据库管理系统。
它的高级功能和优势使得它成为互联网开发者的首选。
本文将分享一些关于 MySQL 高级篇的笔记,涵盖了一些互联网技术介绍、互联网商业和技术应用方面的内容。
一、索引优化索引是提高数据库查询效率的重要手段之一。
在 MySQL 中,使用合适的索引可以显著提升查询性能。
首先,我们需要了解不同类型的索引,如主键索引、唯一索引和普通索引等。
其次,根据具体应用场景,我们可以使用覆盖索引、前缀索引、联合索引等技术进行索引优化。
此外,我们还要注意索引的维护和管理,及时进行索引的重建和优化。
二、查询优化在互联网应用中,查询是最常见的数据库操作之一。
如何编写高效的查询语句,能够快速地获取所需的数据,是每个开发者都应该关注的问题。
本节将介绍一些查询优化的技巧,例如避免使用通配符查询、合理使用 LIMIT 关键字、使用 EXPLAIN 分析查询执行计划等。
三、事务管理事务是保证数据库操作一致性和完整性的重要手段。
MySQL 支持事务的 ACID 特性,可以确保多个操作的原子性、一致性、隔离性和持久性。
本节将详细介绍如何使用事务管理,包括事务的开启、提交和回滚,以及事务并发控制的方法。
四、高级数据操作除了基本的增删改查操作,MySQL 还提供了一些高级数据操作功能,方便开发者完成复杂的数据处理任务。
本节将介绍如何使用子查询、联合查询、分组查询和多表操作等技术,实现更灵活和高效的数据操作。
五、存储引擎选择MySQL 支持多种存储引擎,如 InnoDB、MyISAM、Memory 等。
不同的存储引擎具有不同的特点和适用场景。
本节将比较各种存储引擎的优缺点,并给出存储引擎选择的建议。
六、高可用性和容灾备份在互联网应用中,数据库的高可用性和容灾备份是非常重要的。
本节将介绍如何使用主从复制、读写分离、故障转移和数据备份等技术,提高数据库的稳定性和可用性。
mysql基础笔记”

mysql基础笔记”MySQL是一种开源的关系型数据库管理系统,被广泛应用于Web 应用程序的数据存储和管理。
下面是关于MySQL基础的一些笔记:1. 数据库,MySQL是基于数据库的,数据库是一个用于存储和管理数据的容器。
可以创建多个数据库,每个数据库可以包含多个表。
2. 表,表是数据库中的一个组成部分,用于存储数据。
表由行和列组成,每一列代表一个数据字段,每一行代表一条记录。
3. 字段,字段是表中的列,用于存储特定类型的数据。
每个字段都有一个数据类型,如整数、字符串、日期等。
4. 主键,主键是表中的一列或一组列,用于唯一标识表中的每一行。
主键的值不能重复,且不能为空。
5. 外键,外键是表中的一列,用于建立表与表之间的关系。
外键与其他表中的主键相关联,用于确保数据的完整性和一致性。
6. 查询,查询是从数据库中检索数据的操作。
可以使用SQL语句来编写查询,SQL是结构化查询语言。
7. 插入,插入是向表中添加新记录的操作。
可以使用INSERT语句来插入数据。
8. 更新,更新是修改表中现有记录的操作。
可以使用UPDATE语句来更新数据。
9. 删除,删除是从表中删除记录的操作。
可以使用DELETE语句来删除数据。
10. 索引,索引是对表中的一列或多列进行排序的结构,用于加快数据的检索速度。
可以根据索引进行快速的查询操作。
11. 视图,视图是基于一个或多个表的查询结果,可以像表一样使用。
视图可以简化复杂的查询操作,提供更方便的数据访问方式。
12. 事务,事务是一组数据库操作的集合,要么全部执行成功,要么全部回滚。
事务可以确保数据的一致性和完整性。
13. 存储过程,存储过程是一组预编译的SQL语句,可以在数据库中进行复杂的操作。
存储过程可以提高数据库的性能和安全性。
14. 触发器,触发器是与表相关联的特殊类型的存储过程,可以在插入、更新或删除数据时自动执行。
以上是关于MySQL基础的一些笔记,希望对你有所帮助。
《快速念咒:MySQL入门指南与进阶实战》笔记

《快速念咒:MySQL入门指南与进阶实战》阅读记录1. 第一章数据库基础在开始学习MySQL之前,了解一些数据库的基础知识是非常重要的。
数据库是一个用于存储和管理数据的计算机软件系统,它允许用户通过关键字或特定的查询语言来检索、更新和管理数据。
在数据库中,数据是以表格的形式进行组织的,每个表格都包含了一组相关的数据项,这些数据项被称为记录。
表(Table):表是数据库中存储数据的基本单位。
每个表都有一个唯一的名称,并由行(Row)和列(Column)组成。
每一行代表一个数据记录,每一列代表一个特定的数据属性。
字段(Field):字段是表中的一列,代表了数据的一种属性。
每个字段都有一个唯一的名称和一个数据类型,用于定义该字段可以存储的数据种类。
主键(Primary Key):主键是表中的一个特殊字段,用于唯一标识表中的每一行记录。
主键的值必须是唯一的,且不能为NULL。
外键(Foreign Key):外键是一个表中的字段,它的值引用了另一个表的主键值。
外键用于建立两个表之间的联系,确保引用完整性。
索引(Index):索引是一种数据库优化技术,用于提高查询性能。
通过创建索引,数据库可以更快地定位到表中的特定记录,而不必扫描整个表。
SQL(Structured Query Language):SQL是用于与数据库进行交互的编程语言。
它包括用于数据查询、插入、更新和删除的操作符和语法结构。
理解这些基本概念是学习MySQL的前提。
通过掌握SQL语言的基本语法和操作,你将能够有效地管理和操作数据库中的数据。
在接下来的章节中,我们将深入探讨MySQL的具体应用,包括如何创建和管理数据库、表、以及如何执行复杂的查询操作。
2. 第二章数据库设计《快速念咒:MySQL入门指南与进阶实战》是一本全面介绍MySQL 数据库的书籍,其中第二章详细阐述了数据库设计的基础知识和实践技巧。
在这一章节中,作者首先介绍了数据库设计的基本概念和目标,包括数据模型、实体关系模型(ER模型)等,并解释了如何通过这些模型来描述现实世界中的数据和业务逻辑。
Mysql笔记(附Mysql基础书pdf版)

Mysql笔记(附Mysql基础书pdf版)资料数据库篇SHOW DATABASES; //显⽰数据库系统中已经存在的数据库CREATE DATABASE 数据库名; //创建数据库DROP DATABASE 数据库名; //删除数据库表篇注:在使⽤操作表语句前,⾸先要使⽤USE语句选择数据库。
选择数据库语句的基本格式为“USE 数据库名”。
否则会报错,1046;CREATE TABLE 表名 ( 属性名数据类型 [完整性约束条件],属性名数据类型 [完整性约束条件],属性名数据类型);表名不能为SQL语句的关键字,⼀个表可以有多个属性。
定义时,字母⼤⼩写均可,各属性之间⽤逗号隔开,最后⼀个属性不需要加逗号。
主键主键有唯⼀值单字段主键属性名数据类型 primary key //创建主键,写在属性名数据类型后⾯;多字段主键primary key(属性名 1,属性名2,属性名n)两者的组合可以确定唯⼀的⼀条记录;外键外键不⼀定必须为⽗表的主键,但必须是唯⼀性索引,主键约束和唯⼀性约束都是唯⼀性索引;外键可以为空值;设置外键的基本语法规则如下:CONSTRAINT 外键别名 FOREIGN KEY(属性 1.1,属性1.2,属性1.n)REFERENCES 表名(属性2.1,属性2.2,属性2.n)其中,“外键别名”参数是为外键的代号;“属性1”参数列表是⼦表中设置的外键;“表名”参数是指⽗表的名称;“属性2”参数列表是⽗表的主键。
设置表的⾮空约束设置表的唯⼀性约束设置表的属性值⾃动增加查看表结构DESCRIBE 表名; // 查看表基本结构语句,可缩写为desc 表名SHOW CREATE TABLE 表名; //查看表详细结构语句(包含存储引擎、字符编码)删除表DROP TABLE 表名;//删除没有被关联的普通表删除⽗表需要先将外键删除,然后才能去删除⽗表。
字段篇//通过ALTER TABLE语句ALTER TABLE 旧表名 RENAME [TO] 新表名;//修改表名 TO参数是可选参数,是否在语句中出现不会影响语句的执⾏。
最全mysql笔记整理

最全mysql笔记整理mysql笔记整理作者:python技术⼈博客:Windows服务-- 启动MySQLnet start mysql-- 创建Windows服务sc create mysql binPath= mysqld_bin_path(注意:等号与值之间有空格)连接与断开服务器mysql -h 地址 -P 端⼝ -u ⽤户名 -p 密码show processlist -- 显⽰哪些线程正在运⾏show variables -- 显⽰系统变量信息数据库操作-- 查看当前数据库select database();-- 显⽰当前时间、⽤户名、数据库版本select now(), user(), version();-- 创建库create database[ if not exists] 数据库名数据库选项数据库选项:character set charset_namecollate collation_name-- 查看已有库show databases[ like pattern ]-- 查看当前库信息show create database 数据库名-- 修改库的选项信息alter database 库名选项信息-- 删除库drop database[ if exists] 数据库名同时删除该数据库相关的⽬录及其⽬录内容表的操作-- 创建表create [temporary] table[ if not exists] [库名.]表名 ( 表的结构定义 )[ 表选项]每个字段必须有数据类型最后⼀个字段后不能有逗号temporary 临时表,会话结束时表⾃动消失对于字段的定义:字段名数据类型 [not null | null] [default default_value] [auto_increment] [unique [key] | [primary] key] [comment string ]-- 表选项-- 字符集charset = charset_name如果表没有设定,则使⽤数据库字符集-- 存储引擎engine = engine_name表在管理数据时采⽤的不同的数据结构,结构不同会导致处理⽅式、提供的特性操作等不同常见的引擎:InnoDB MyISAM Memory/Heap BDB Merge Example CSV MaxDB Archive不同的引擎在保存表的结构和数据时采⽤不同的⽅式MyISAM表⽂件含义:.frm表定义,.MYD表数据,.MYI表索引InnoDB表⽂件含义:.frm表定义,表空间数据和⽇志⽂件show engines -- 显⽰存储引擎的状态信息show engine 引擎名 {logs|status} -- 显⽰存储引擎的⽇志或状态信息-- ⾃增起始数auto_increment = ⾏数-- 数据⽂件⽬录data directory = ⽬录-- 索引⽂件⽬录index directory = ⽬录-- 表注释comment = string-- 分区选项PARTITION BY ... (详细见⼿册)-- 查看所有表show tables[ like pattern ]show tables from 表名-- 查看表机构show create table 表名(信息更详细)desc 表名 / DESCRIBE 表名 / EXPLAIN 表名 / SHOW COLUMNS FROM 表名 [LIKE PATTERN ]show table status [from db_name] [like pattern ]-- 修改表-- 修改表本⾝的选项alter table 表名表的选项eg: alter table 表名 engine=MYISAM;-- 对表进⾏重命名rename table 原表名 to 新表名rename table 原表名 to 库名.表名(可将表移动到另⼀个数据库)-- rename可以交换两个表名-- 修改表的字段机构(13.1.2. ALTER TABLE语法)alter table 表名操作名-- 操作名add[ column] 字段定义 -- 增加字段after 字段名 -- 表⽰增加在该字段名后⾯first -- 表⽰增加在第⼀个add primary key(字段名) -- 创建主键add unique [索引名] (字段名)-- 创建唯⼀索引add index [索引名] (字段名) -- 创建普通索引drop [ column] 字段名 -- 删除字段modify[ column] 字段名字段属性 -- ⽀持对字段属性进⾏修改,不能修改字段名(所有原有属性也需写上)change[ columns] 原字段名新字段名字段属性 -- ⽀持对字段名修改drop primary key -- 删除主键(删除主键前需删除其AUTO_INCREMENT属性)drop index 索引名 -- 删除索引drop foreign key 外键 -- 删除外键-- 删除表drop table[ if exists] 表名 ...-- 清空表数据truncate [table] 表名-- 复制表结构-- 复制表结构和数据create table 表名 [as] select * from 要复制的表名-- 检查表是否有错误check table tbl_name [, tbl_name] ... [option] ...-- 优化表optimize [local | no_write_to_binlog] table tbl_name [, tbl_name] ...-- 修复表repair [local | no_write_to_binlog] table tbl_name [, tbl_name] ... [quick] [extended] [user_frm]-- 分析表analyze [local | no_write_to_binlog] table tbl_name [, tbl_name] ...数据操作-- 增insert [into] 表名 [(字段列表)] values (值列表)[, (值列表), ...]-- 如果要插⼊的值列表包含所有字段并且顺序⼀致,则可以省略字段列表。
mysql笔记整理
mysql笔记整理MySQL是一种流行的开源关系型数据库管理系统,被广泛应用于各种网站和应用程序中。
作为一名开发人员或数据库管理员,熟悉MySQL的使用和管理是非常重要的。
在实际工作中,经常需要对数据库进行操作,因此我整理了一些MySQL的笔记,希望对大家有所帮助。
首先,我们需要了解MySQL的基本概念和术语。
数据库是一个存储数据的容器,可以存储各种类型的数据,如文本、数字、图片等。
表是数据库中的一个重要组成部分,用于存储具体的数据,表由多个列组成,每一列代表一种数据类型。
在MySQL中,可以通过SQL语句来操作数据库,SQL是结构化查询语言的缩写,是一种用于管理数据库的标准语言。
其次,我们需要了解如何创建数据库和表。
在MySQL中,可以通过CREATE DATABASE语句来创建数据库,通过CREATE TABLE语句来创建表。
在创建表时,需要指定表的名称和列的名称、数据类型等信息。
在设计表结构时,需要考虑数据的类型、长度、约束等因素,以确保数据的完整性和一致性。
接下来,我们需要了解如何插入、查询、更新和删除数据。
在MySQL中,可以通过INSERT INTO语句来插入数据,通过SELECT语句来查询数据,通过UPDATE语句来更新数据,通过DELETE语句来删除数据。
在查询数据时,可以使用WHERE子句来过滤数据,使用ORDER BY子句来排序数据,使用LIMIT子句来限制返回的数据数量。
此外,我们还需要了解如何使用索引和关联表。
索引是一种提高数据库查询性能的技术,可以加快数据的检索速度。
在MySQL中,可以通过CREATE INDEX语句来创建索引,通过DROP INDEX语句来删除索引。
关联表是一种将多个表的数据关联起来的技术,可以通过JOIN语句来实现表的关联操作。
最后,我们需要了解如何备份和恢复数据库。
在实际工作中,数据库可能会出现各种问题,如数据丢失、损坏等,因此备份数据库是非常重要的。
mysql笔记整理
MySQL笔记整理1. 基本概念:* MySQL是一个关系型数据库管理系统(RDBMS)。
* 数据库(DataBase):在计算机体系内,简单来讲就是存储数据的“仓库”,是按照数据结构来组织、存储和管理数据的仓库。
简称为DB。
通常是一个或一组文件,保存了一些符合特定规格的数据。
* 数据库软件称为数据库管理系统(DataBase Management System,DBMS)。
2. 数据类型:* 数值型:INT, FLOAT, DECIMAL* 日期和时间:DATE, TIME, DATETIME, TIMESTAMP, YEAR* 字符串:CHAR, VARCHAR, TEXT, BLOB3. SQL语句:* `SELECT`:用于查询数据。
* `INSERT INTO`:用于插入数据。
* `UPDATE`:用于更新数据。
* `DELETE`:用于删除数据。
4. 索引:* 索引是MySQL中用于提高检索操作速度的数据结构。
常见的索引类型有B-Tree索引和哈希索引。
5. 存储过程与函数:* MySQL允许用户编写存储过程和函数,这些可以用来封装复杂的业务逻辑。
6. 触发器:* 触发器是与表相关联的特殊类型的存储过程,当满足特定条件时会自动执行。
7. 事务处理:* MySQL支持事务处理,确保多个操作要么全部成功,要么全部失败。
事务处理常见的控制语句有`BEGIN`, `COMMIT`, 和`ROLLBACK`。
8. 视图:* 视图是基于SQL查询的虚拟表,它允许用户通过一个统一的接口访问数据,而不必关心底层的数据结构。
9. 分区:* 分区是将表或索引分散到多个物理子表中,每个子表都是表的一部分,提高了查询性能和管理效率。
10. 优化与安全:* MySQL提供了多种优化策略,如查询优化、索引优化、缓存优化等,以提高数据库性能。
同时,也提供了多种安全机制,如用户权限管理、数据加密等,确保数据的安全性。
mysql基础完整笔记
MySQL是一个流行的关系型数据库管理系统。
以下是一个MySQL基础知识的完整笔记:安装与配置在不同的操作系统上安装MySQL。
配置MySQL服务器的端口、用户权限、日志文件等。
基本命令SHOW DATABASES;:显示所有数据库。
USE [database_name];:选择一个数据库。
SHOW TABLES;:显示当前数据库中的所有表。
数据类型数值类型:INT, FLOAT, DECIMAL, BIGINT 等。
日期和时间类型:DATE, TIME, DATETIME, TIMESTAMP 等。
字符串类型:CHAR, VARCHAR, TEXT, TINYTEXT 等。
创建表定义表结构,例如CREATE TABLE users (id INT PRIMARY KEY, name VARCHAR(255), email VARCHAR(255))。
使用AUTO_INCREMENT 自动生成主键。
插入数据使用INSERT INTO [table_name] (column1, column2, ...) VALUES (value1, value2, ...); 插入数据。
查询数据基本查询:SELECT * FROM [table_name];。
条件查询:SELECT * FROM [table_name] WHERE [condition];。
排序查询:SELECT * FROM [table_name] ORDER BY [column] [ASC|DESC];。
聚合函数:COUNT(), SUM(), AVG(), MAX(), MIN() 等。
更新数据使用UPDATE [table_name] SET column1 = value1, column2 = value2, ... WHERE [condition]; 更新数据。
删除数据使用DELETE FROM [table_name] WHERE [condition]; 删除数据。
mysql数据库基础知识笔记
MySQL是一种关系型数据库管理系统,它使用结构化查询语言(SQL)来进行数据管理和查询。
以下是MySQL数据库的基础知识笔记:
数据库:一组相关数据的集合。
表:存储在数据库中的数据组织形式。
列:表中的一个字段,定义了该列所存储的数据类型。
行:表中的一条记录,由多个列组成。
主键:唯一标识表中每一行的特定列。
外键:一个表中的列,与另一个表中的主键建立连接关系,用于保证数据完整性和减少数据冗余。
索引:为了提高查询效率而创建的数据结构,可以根据索引快速搜索和查找数据。
关系型数据库:以表格形式存储数据,通过关联不同表之间的主键和外键来建立关系。
非关系型数据库:将数据以文档、键值对或图形等方式存储,适用于分布式、非结构化数据场景。
SQL语句:用于对MySQL数据库进行查询、插入、更新和删除操作的编程语言,包括SELECT、INSERT、UPDATE、DELETE等命令。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
03_MySQLDay01一、数据库(DataBase DB)1、数据库:存储数据的仓库2、数据库分类:(1)关系型数据库:二维表存储数据(Mysql,SQLServer,Orcale,DB2等)(2)非关系型数据库(Nosql):MongDB等3、Mysql安装(1)window:配置文件my.ini进入命令行开始--运行--cmd(2)Linux:配置文件:/etc/f终端mysql -uroot -p说明: Mysql 数据库的存储位置/var/lib/mysql4、Mysql登录mysql -u用户名-p密码[-P3306][-D数据库名称]5、Mysql退出quitexit\q6、Mysql注释-- 注释# 注释7、修改提示符(Prompt)(1)进入MySQL的命令prompt 提示符名称(2)登录MySQL写的命令mysql -uroot -p --prompt=提示符名称说明:a.恢复提示符prompt mysql>b.特殊符号\h 主机名称\D 系统时间日期\d 选择数据库名称8、SQL(Structured Query Language)结构化查询语句(1)DDL(数据创建语言):创建数据库,创建表、创建视图等CREATE(创建),DROP(删除),ALTER(修改)(2)DML(数据操作语言):对数据库的数据的增,删,改INSERT(添加),DELETE(删除),UPDATE(改)(3)DQL(数据查询语言):对数据库的数据查询SELECT(查询)(4)DCL(数据库控制语言):分配(GRANT)用户权限及权限(REVOKE)撤销9、SQL命令行规范a.系统命令大写,名称小写b.SQL命令行以分号结束或\g说明:结束分隔符可以用delimiter 符号名称c.SQL命令行支持折行,但不能在函数,名称,引号中不能折行d.SQL命令中的名称不能用关键字和保留字,如果使用必须用反引号``括起来,例如`user`10、创建数据库(DDL)(1)查看数据库SHOW DATABASES;(2)创建数据库CREATE DATABASE [IF NOT EXISTS]数据库名称[[DEFAULT] CHARACTERSET [=] 编码];(3)查看创建数据库命令SHOW CREATE DATABASE 数据库名称;(4)删除数据库DROP DATABASE [IF EXISTS] 数据库名称;(5)修改数据库的编码ALTER DATABASE 数据库名称[DEFAULT] CHARACTER SET [=]编码;(6)选择数据库USE 数据库名称;(7)查看当前选择的数据库SELECT DATABASE();11、创建数据库中的表(1)查看表SHOW TABLES;(2)创建表结构CREATE TABLE [IF NOT EXISTS] 表名(字段(Field)名称|列名称数据类型[字段属性|约束条件],字段(Field)名称|列名称数据类型[字段属性|约束条件]...)[ENGINE=InnoDB DEFAULT CHARSET=utf8];说明:数据库最小单位是表,一定是先有表结构再添加数据(3)查看表结构DESC 表名;DESCRIBE 表名;SHOW COLUMNS FROM 表名;(4)查看创建表结构命令SHOW CREATE TABLE 表名;12、数据操作(DML DQL)(1)插入数据INSERT 表名(字段1,字段2...)VALUE[S](值,值...),(值,值...)...;(2)查询数据:SELECT * FROM 表名;SELECT 字段1,字段2,... FROM 表名; 13、MySQL数据类型(1)整型TINYINT([M]) [UNSIGNED|ZEROFILL]:范围:大小1字节(Byte 2^8)有符号位-128~127无符号0~255SMALLINT([M]) [UNSIGNED|ZEROFILL]:范围:大小2字节(Byte 2^16)有符号位-32768~32767无符号0~65535MEDIUMINT([M]) [UNSIGNED|ZEROFILL]:范围:大小3字节(Byte 2^24)有符号位-8388608~8388607无符号0~16777215INT([M]) [UNSIGNED|ZEROFILL]:范围:大小4字节(Byte 2^32)有符号位-2147483648~2147483647无符号0~4294967295BIGINT([M]) [UNSIGNED|ZEROFILL]:范围:大小8字节(Byte 2^64)说明:字段属性:UNSIGNED:无符号位(正数) ZEROFILL: 当显示的长度小于指定长度用0填补,会自动添加UNSIGNED (2)浮点a.单精度浮点FLOAT([M,D]) [UNSIGNED|ZEROFILL]范围:-3.40e38 ~3.40e38b.双精度浮点DOUBLE([M,D]) [UNSIGNED|ZEROFILL]-1.79e308 ~1.79e308c.定长浮点DECIMAL([M,D])[UNSIGNED|ZEROFILL]说明:当指定D小点位数,FLOAT,DOUBLE超出指定位数会四舍五入存近似值,DECIMAL超出指定位数,报警告错误,DECIMAL存精确值(3)字符型a.CHAR([M]):定长字符(0-255字节一个字母占一个字节)b.VARCHAR([M]):变长字符(0-65535字节)VARCHAR存储长度受下面情况影响:(a)一个字段最大65535字节(b)编码gbk:至多占2个字节utf8:至多占3个字节65532/3 =21844(c)多个字符型字段中总的长度不能超过65535(21844)c.TINYTEXT:0-255字节d.TEXT:0-65535字节e.MEDIUMTEXT:0-16777215字节f.LONGTEXT:0-4294967295字节说明: CHAR效率高但不省空间,VARCHAR效率低但省空间,TEXT效率最低(4)布尔型BOOLEANTINYINT(1)(5)枚举类型ENUM:范围:0-65535字节例如:sex ENUM('man','woman','secret');14、约束条件(1)NOT NULL:不为空DEFAULT:默认值[PRIMARY] KEY:主键,一个表中只能有一个主键,并且是主键的字段一定自动添加NOT NULL 和不重复(UNIQUE)UNIQUE [KEY]:不重复,一个表中可以有多个不重复(例如:用户名不重复,邮箱不重复)AUTO_INCREMENT:自动增长,字段如果是编号当添加记录(行)时,编号自增,并且AUTO_INCREMENT的字段一定是主键。
Day02一、表结构的修改(DDL)1、添加表结构的字段a.ALTER TABLE 表名ADD 字段名数据类型[字段属性|约束条件][FIRST|AFTER 字段名];b. 添加多个字段ALTER TABLE 表名ADD 字段名数据类型[字段属性|约束条件][FIRST|AFTER 字段名],ADD 字段名数据类型[字段属性|约束条件][FIRST|AFTER 字段名]...;2、删除字段ALTER TABLE 表名DROP 字段名,DROP 字段名...;3、修改字段ALTER TABLE 表名MODIFY 字段名数据类型[字段属性|约束条件][FIRST|AFTER 字段名];4、修改字段名称ALTER TABLE 表名CHANGE 旧字段名新字段名数据类型[字段属性|约束条件][FIRST|AFTER 字段名];5、添加默认值ALTER TABLE 表名ALTER 字段名SET DEFAULT 值;6、删除默认值ALTER TABLE 表名ALTER 字段名DROP DEFAULT;7、添加主键ALTER TABLE 表名ADD PRIMARY KEY(字段名称);8、删除主键ALTER TABLE KEY|INDE表名DROP PRIMARY KEY;说明:如果有AUTO_INCRMENT属性,一定要先删除AUTO_INCRMENT才能删除主键9、添加唯一性a.ALTER TABLE 表名ADD UNIQUE KEY|INDEX(字段名);b.a.ALTER TABLE 表名ADD [CONSTRAINT 约束名称] UNIQUE KEY|INDEX(字段名);10、删除唯一性ALTER TABLE 表名DROP KEY|INDEX 唯一性约束名称;说明:如果添加唯一性没有设置唯一性约束名称,默认为字段名称11、修改表名称a. ALTER TABLE 表名RENAME [AS|TO] 新表名;b. RENAME TABLE 旧表名TO 新表名;12、重置自动增长ALTER TABLE 表名AUTO_INCREMENT=1;二、帮助? 命令help 命令\h 命令三、表中对数据的操作(DML)(1)添加(INSERT)a.不列出表字段的添加(从第一字段到最后一个字段都赋值)INSERT [INTO] 表名VALUE[S] (值,值,值...);b.不省略字段添加(添加一条记录)INSERT [INTO] 表名(字段名,字段名...) VALUE[S] (值,值...);c.不省略字段添加(添加多记录)INSERT [INTO] 表名(字段名,字段名...)VALUE[S](值,值...),(值,值...)...;d.INSERT...SET (只能添加一条记录)INSERT [INTO] 表名SET 字段名=值,字段名=值...;(2)更新(UPDATE)UPDATE 表名SET 字段名=值,字段名=值... [WHERE 条件];说明:如果更新没有WHERE 条件,表中字段值都相同的值记录(3)删除(DELETE)a.DELETE FROM 表名[WHERE 条件];说明:如果删除没有WHERE 条件,将会清空表中所有数据,AUTO_INCREMENT 不重置b. TRUNCATE 表名;说明: 清空表中所有数据,并且AUTO_INCREMENT 重置四、表中对数据的查询(DQL)1、查询所有字段(效率底)SELECT * FROM 表名;2、列出字段查询SELECT 字段名|expr,字段名|expr...FROM 表名;3、给字段起别名SELECT 字段名[AS]别名FROM 表名;4、给表起别名SELECT 字段名FROM 表名[AS]别名;5、表名(别名).字段名(字段来自哪个表)SELECT 表名(别名).字段名FROM 表名[AS]别名;6、数据库名.表名(表来自哪个数据库)SELECT 字段名FROM 数据库名.表名;7、SELECT 字段名|expr,字段名|expr...FROM 表名[WHERE 条件][GROUP BY 字段][HAVING 条件][ORDER BY 字段][LIMIT [$offset,]$length];7.1WHERE 条件:条件过滤(1)比较运算符> >= < <= =(等于) != <><=>(判断NULL)(2)IS [NOT] NULL (判断NULL)(3)[NOT] BETWEEN ...AND 范围值(4)[NOT] IN(值,值...) 某个值(5)逻辑运算符实现条件过滤!非&& AND 与|| OR 或(6) LIKE 实现模糊查询[NOT] LIKE '字符串'关键字(1)%:包含任意多个字符(0个,1个,多个)(2)_: 包含任意一个字符7.2 GROUP BY 字段:分组,将字段中相同的值分为一组说明:a.分组值显示一个结果,如果多个值显示小编号的结果,一般显示分组的字段b. 分组结合聚合函数使用COUNT(*):获得每组中的个数,包含nullCOUNT(字段) :不包含null值AVG(字段):获得每组中的平均值MAX(字段):获得每组中的最大值MIN(字段):获得每组中的最小值SUM(字段):获得每组中的和7.3 HAVING 条件:二次条件过滤说明:a. WHERE 对字段的条件过滤b. HAVING对一个运行结果的条件过滤,结合分组使用7.4 ORDER BY 字段:对字段排序说明:ORDER BY 字段[ASC升序|DESC降序]7.5LIMIT [$offset,]$length:显示n条记录说明:a.$offset:偏移量,起始编号,编号从0开始b.$length:显示记录(行)长度c.实现web程序的分页原理计算$offset =(当前页-1)*显示长度$offset = ($curpage-1)*$pagesizeDay03一、对表中的数据查询SELECT 字段名,字段名...FROM 表名[WHERE 条件][GROUP BY 字段][HAVING 条件][ORDER BY 字段][LIMIT [$offset,]$length]计算$offset = (当前页-1)*显示条数实现web页面分页原理二、MySQL运算符和函数说明:用SELECT 语句输出显示1、算术运算符及函数a. + - * / % ,MOD 求余数b.POW POWER 求幂次c. SQRT 开平方d.FLOOR 向下取整e.CEIL 向上取整f.ROUND 四舍五入g.RAND:随机小数[0,1)例如: [0-100]整数ROUND( RAND()*100)2、字符函数a.LOWER:转为小写字母b.UPPER:转为大写字母c.SUBSTR, SUBSTRING:字符串截取,编号从1开始d.CONCAT:CONCAT(str,str,str);字符串连接e.CONCAT_WS:CONCAT_WS(delimiter,str,str,str)用分隔符将字符串连接f.TRIM: 清除两边空格g.RTRIM:清除右边空格h.LTRIM:清除左边空格i.REPLACE: 字符串替换REPLACE($str,$reseach,$replacement)j.LENGTH :字符串长度3、比较运算符a. > >= < <= = != <> <=>判断NULL值b. [NOT] BETWEEN ... ANDc. [NOT] IN(值,值...)d. IS [NOT] NULL 判断NULL值4、逻辑运算符! (非)&& AND (与并且)|| OR (或)5、信息函数a. DATABASE() :显示当前选择数据库b. NOW():获得系统时间日期函数c. VERSION()获得MYSQL版本d. USER():获得当前使用MYSQL的用户6、聚合函数COUNT(*): 获得每组中的个数,包含null值COUNT(字段):不包含null值AVG(字段):获得每组中的平均值MAX(字段):获得每组中的最大值MIN(字段):获得每组中的最小值SUM(字段):获得每组中的和7、加密函数MD5:返回32位的散列值PASSWORD三、多表操作1、表复制INSERT 表(字段,字段...)SELECT ...2、多表更新(根据一个表更新另一个字段)UPDATE 表1INNER JOIN 表2ON 两个表的逻辑关系SET 字段=值[WHERE 条件];3、多表联合查询SELECT 字段名,字段名... FROM 表1连接类型表2ON 两个表的逻辑关系连接类型表3ON 两个表的逻辑关系(1)连接类型a.内连接(INNER JOIN):查找两个表符合条件的信息b.外连接:左外连接(LEFT [OUTER] JOIN)显示左表中的所有信息和右表中符合条件的信息,如果左表中的信息右表没有,用null 填补右外连接(RIGHT [OUTER] JOIN)显示右表中的所有信息和左表中符合条件的信息,如果右表中的信息左表没有,用null 填补4、多表删除(根据一个表删除另一个表的信息)DELETE 删除表FROM 表1INNER JOIN 表2ON 两个表的逻辑关系[WHERE 条件]5、子查询(嵌套查询)1.子查询:在SQL语句中嵌套SELECT语句2.特点:(1)子查询是嵌套SELECT语句(2) 子查询的SELECT语句要用括号括起来并起别名(3)一般结合WHERE 和GROUP BY 使用3.使用(1)WHERE后使用a. INb. 比较运算符:说明:比较运算符只能比较一个结果,当结果不唯一时,会报错,要ALL 或SOME/ANY 来解决> >= ALL 大于最大值< <= ALL 小于最小值> >= SOME/ANY 大于最小值< <= SOME/ANY 小于最大值= SOME/ANY IN(2)FROM 后使用:产生新表用括号括起来,并且起别名,例如联合查询产生新表4. INSERT...SET:可以实现子查询四、约束条件(Constraint)1、约束:对字段实现非空,唯一,完整性等约束。