mysql从入门到精通

这篇博客深入介绍了MySQL数据库的各个关键概念,包括phpstudy的目录结构、数据类型、SQL语句规则、存储引擎、安全性设置、索引、用户管理、触发器以及日志系统。内容涵盖从基础到进阶的各个方面,是MySQL学习者的实用指南。

该篇写的偏理论,点击查看常用指令

phpstudy的mysql目录介绍

1、bin //可执行文件

2、data //数据库

3、lib //扩展库,一般用不到

4、logs //日志

5、share //系统需要的东西,如 编码啥的

6、my.ini //配置文件。linux上是my.cnf

剩余的ini文件也都是配置文件,只是针对的服务器配置不同而已,如 my-smail.ini是针对内存小于64M用的,用法如下:

假如你的服务器配置小于64M,将my-smail.ini文件改名为my.ini,然后将其他的配置文件删除即可

*默认路径:/usr/local/mysql/var

mysql> show variables like 'general_log_file';		#日志文件路径
mysql> show variables like 'log_error';			#错误日志文件路径
mysql> show variables like 'slow_query_log_file';	#慢查询日志文件路径

7、https://www.cnblogs.com/songanwei/p/9167326.html  #使用了哪个配置文件

 

sql语句的书写规则:

1、以分号结尾 可以用delimiter修改

2、不区分大小写

3、#或--注释

位、字节、字符(计量单位)的关系:

 

  字节 字符(多字节)
英文、数字 8 1 1
汉字gbk编码 8 2 1(gbk中2个字节是1个字符)
汉字utf8编码 8 3 1(uf8中3个字节是1个字符)

 

 

 

mysql数据类型介绍:

整数型:

注意:有符号是从负数开始存,无符号是从正数0开始存;超过了最大值以最大值为准

注意:单双精度会四舍五入,和钱沾边的用decimal

字符串

注意:

1、括号里的是长度是字符。select char_length(name) from tp5_user; //该字段中,字符串所占的字符

2、char 读写速度快,因为他在内存中是按快找,缺点 浪费内存,因为存的不够会自动补空格

时间日期

*datetime的默认值是 '1970-01-01 00:00:00'

*timestamp的默认值是0,详见 https://blog.youkuaiyun.com/qq_29726869/article/details/81192679

字段的其他修饰关键词:

1、unsigned #无符号

2、auto_increment #自增

3、default 默认值 #给默认值的,如 价格默认0.00。不写 默认为null

4、comment '' #字段说明(注释)

5、not null #不能为空

6、null #可以为空

7、unique #唯一索引(对该列数据进行唯一性效验,插入重复的值会报error:Duplicate entry '123' for key 'user_name')

8、key 或 index #普通索引

9、primary key #主键索引

注意:

1、一般auto_increment 和 primary key是一对,在一起不分离偷笑主键索引才自增

2、全文索引用的是MyISAM引擎,只支持英文

3、外键索引语法:foreign key (b表字段名) references a表(外键字段名)

如 a(外键)表是学生表,b(本)表是成绩表。

作用:a表中如果没有该id,b表插入不进去,保持了数据的一致性,如果想要删除a表中的数据,也是无法清空的,因为b表对a表有依赖性。

注意:数据不一致,俩个表的id数据不一致,就是b表中的id在a表中没有,会报1452;俩个id的数据类型、长度等不一致报1215

3.1、a表的id要和b表的user_id数据类型,有无符号,是否为空等完全一致。

速记:涉及数字加unsigned ,每列必加not null和commet '' 

加索引的2种方式:1、在字段中加;2、所有字段书写完后统一加

SQL语句

 

sql语句中的运算符:

1、 = #2个意思,等于 或 赋值,系统会根据上下文判断    

2、!= <> #不等于

3、< > <= >= #小于 大于 小于等于 大于等于

4、OR #或

5、AND #与

6、BETWEEN ... AND #在...之间(判断2-5范围,与的关系)

7、IN #在...之内(判断2,3,4,5范围,或的关系)

8、NOT IN #不在...之内

sql语句的分类:

线上服务器的安全:

1、不要用root连接

2、默认密码也修改掉(因为人家会用字典一个一个

### MySQL 数据库学习:从入门精通 MySQL 是一种流行的关系型数据库管理系统,广泛用于 Web 应用程序和其他数据驱动的应用中。它具有开源、免费、体积小等特点,是关系型数据库管理系统的首选之一。以下是 MySQL 数据库从入门精通的学习指南。 #### 1. MySQL 数据库简介 MySQL 是一个关系型数据库管理系统,最初由瑞典 MySQL AB 公司开发,后被 Oracle 收购。它以小海豚 sakila 作为标志,数据以记录形式按统一格式存储在表中,表的集合组成数据库。MySQL 于 1995 年诞生,最初版本只是基础的 SQL 引擎,后来不断发展增加功能。 #### 2. 安装与配置 在开始学习 MySQL 之前,首先需要安装和配置 MySQL 数据库环境。可以从 MySQL 官网下载适合操作系统的安装包,并按照安装向导完成安装。安装完成后,需要配置数据库的用户权限、字符集等参数,以确保数据库的安全性和性能。 #### 3. 操作数据库 MySQL 提供了多种操作数据库的命令,以下是常见的数据库操作: - **创建数据库**:`CREATE DATABASE 数据库名;` 例如:`CREATE DATABASE Hanshy;` - **删除数据库**:`DROP DATABASE 数据库名;` 例如:`DROP DATABASE Hanshy;` - **切换到指定数据库**:`USE 数据库名;` 例如:`USE Hanshy;` - **查询所有数据库**:`SHOW DATABASES;` - **查看当前使用的数据库**:`SELECT DATABASE();` #### 4. 操作表 表是数据库的基本单位,数据以记录形式存储在表中。以下是常见的表操作: - **查询当前数据库下所有表名称**:`SHOW TABLES;` - **创建表**:使用 `CREATE TABLE` 语句定义表的结构和字段。 - **删除表**:`DROP TABLE 表名;` - **修改表结构**:使用 `ALTER TABLE` 语句进行表结构的修改。 #### 5. 数据处理 MySQL 提供了丰富的数据处理功能,包括数据的插入、更新、删除等操作: - **插入数据**:可以使用 `INSERT INTO ... VALUES` 方式插入数据,也可以将查询结果插入到表中。 - **更新数据**:使用 `UPDATE` 语句更新表中的数据,也可以结合 `JOIN` 操作进行复杂的更新。 - **删除数据**:使用 `DELETE FROM 表名 WHERE 条件` 删除表中的记录。 #### 6. 高级功能 随着对 MySQL 的深入学习,可以探索其高级功能,如索引优化、事务处理、存储过程、触发器等。这些功能能够提升数据库的性能和安全性,满足复杂业务需求。 ```sql -- 示例:创建一个简单的表 CREATE TABLE users ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(100), email VARCHAR(100) ); -- 示例:插入数据 INSERT INTO users (name, email) VALUES ('Alice', 'alice@example.com'); -- 示例:更新数据 UPDATE users SET email = 'new_email@example.com' WHERE name = 'Alice'; -- 示例:删除数据 DELETE FROM users WHERE name = 'Alice'; ``` #### 7. 学习资源 为了更好地学习 MySQL,建议参考官方文档、在线课程和书籍。此外,实践是掌握 MySQL 的关键,可以通过实际项目练习来加深理解。 --- ###
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值