MySQL教程笔记(上)狂神说
MySQL
B站视频:
笔记是前29节
数据库分类
关系型数据库(SQL)
例如: MySQL,Oracle,sql Server,DB2,SQLlite
通过表和表之间,⾏和列之间的关系进⾏数据的存储,学员信息表,考勤表,…
⾮关系型数据库: (NoSQL)
Redis,MongDB
mysql入门基础教程lambda翻译中文⾮关系型数据库,对象存储,通过对象的⾃⾝的属性来决定。
数据库管理系统(DBMS)
MySQL
安装数据库
不要使⽤exe安装,”流氓软件“最后卸载不⼲净
使⽤压缩包安装
\1. .msi 为安装版本,安装过程中⾃动配置
\2. .zip 为压缩版本,安装过程中⼿动配置
我选择的5.7 跟着狂神安装的 8.0好像不容易安装
下载了安装包之后解压到⾃⼰的电脑⽬录下 然后将MySQL⽬录下的bin⽂件路径复制到 我的电脑环境变量-》系统变量-》的path路径下在⽂件⽬录中创建my.ini⽂件写⼊以下代码
[mysqld] basedir=G:\mysql\mysql-5.7.29-winx64\mysql-5.7.29\ datadir=G:\mysql\mysql-5.7.29-winx64\mysql-5.7.29\data\ port=3306 skip-grant-tables
注意:不⽤新建data⽂件 因为会⾃动创建
弹幕有⼈说8.0的版本datadir哪⼀⾏的存在会导致下⾯启动服务时不成功,需要注释掉。。。
管理员模式下运⾏CMD(命令提⽰符)
在CMD中切换到Bin⽬录下(输⼊cd /d G:\mysql\mysql-5.7.29-winx64\mysql-5.7.29\bin
要跳转到不同分区的时候,需要添加强制跳转参数 /d 。但是,如果进⼊的是当前⽬录的⼦⽬录,则可以不使⽤ /d 参数
输⼊mysqld --install 开始安装(此步骤8.0版本有⼈说会有⼀个dll错误
弹幕有⼈说 mysql8安装是mysql install中间没有短横杠
输⼊mysqld --initialize-insecure --user=mysql
在这⾥和狂神的视频不⼀样了 我的初始化出来的data⽂件和他不⼀样
输⼊net start mysql 启动sql
输⼊mysql -u root -p 注意p后⾯不要加空格
不⽤管密码直接回车
输⼊update mysql.user set authentication_string=password('123456') where user='root' and Host = 'localhost';修改密码为123456输⼊flush privileges;刷新权限
输⼊exit退出
apache配置外网ip访问回到之前的ini⽂件将最后⼀句话删掉(加⼀个#号就⾏
输⼊net stop mysql停⽌服务
之后想要进⼊时直接输⼊ mysql -u root -p123456即可
sqlyog 注册码:在⽹上的
使⽤sqlyog
创建⼀个库school
字符集选择utf8mb4 核对选utf8mb4_bin
创建⼀个表student
在历史记录⾥⾯可以看间对应操作的sql语句
基本命令⾏操作
------------------
-
- 注释为两个横杠加空格多⾏注释为/**/
-- 所有语句都是⽤分号结尾(狂神所说)
show databases;-- 显⽰所有数据库
use school;-- 这是命令不是语句所以不⽤加分号,切换到相应的数据库(school)
show table;-- 查看数据库中的所有的表
describe student;-- 显⽰表中的所有信息
create database westos;-- 创建⼀个数据库westos
exit;-- 退出连接
ctrl+c -- 强制终⽌错误的命令
⽹上查询到底什么时候加分号
MySQL如同⼤多数DBMS⼀样,不需要单条SQL语句后加分号,但特定DBMS可能必须在单条SQL语
句后加分号;如果是多条SQL语句必须加分号(;),如果使⽤的是MySQL命令⾏,则必须⽤分号结束SQL语句
sqlyog的基本操作
进⾏可视化的操作,然后通过历史记录获得对应操作的代码命令进⾏学习。
-- 查看所有的数据库
SHOW DATABASES
-- 创建库【如果不存在】可以作为⼀个条件
CREATE DATABASE IF NOT EXISTS westos
-- 删除库【如果存在】
DROP DATABASE IF EXISTS westos
-- 使⽤数据库
USE school
-- 如果数据库中的表的变量和系统变量重名加``来区分反引号
-- 使⽤student表中的user⾃⼰设定的变量
SELECT`user`FROM student
列的数据类型详解
win视频压缩软件数值初中编程课主要学什么
tinyint ⼗分⼩的数据 ⼀个字节
smallint 较⼩的数据 两个字节
mediumint 中等的数据 三个字节
int 标准的数据 四个字节
bigint 较⼤的数据 ⼋个字节
float 浮点数 四个字节
double 浮点数 ⼋个字节
decimal 字符串形式的浮点数 ⼀般⾦融计算
字符串
char 字符串固定⼤⼩的 0~255
varchar 可变字符串 0~65535 常⽤的评论
tinytext 微型⽂本 2^8-1
text ⽂本串 2^16-1 保存到⽂本
时间⽇期
data YYYY-MM-DD ⽇期格式**(⼤写的M表⽰⽉份 和分钟区别开)**
time HH:mm:ss 时间格式 (⼩写的H为12⼩时制 ⼤写的为24⼩时制 )datatime YYYY-MM-DD HH:mm:ss 最常⽤的时间格式
timestamp 时间戳 1970.1.1到现在的毫秒数!
year 年份表⽰
null
没有值 未知
注意,不要使⽤null进⾏运算
数据库字段属性
Unsigned
⽆符号的整数,声明了该列不能声明为负数
zerofil
⽤0来填充不⾜的位⽐如, 00001 为五位值的1
⾃增
通常理解为⾃增,⾃动在上⼀条记录的基础上+1(默认)
通常⽤来设计唯⼀的主键 ~index,必须是整数类型
可以⾃定义设计主键⾃增的初始值和步长, 在‘⾼级’的‘⾃动增量⾥’。⾮空 Null not null
默认情况下为null 如果为not null,并且不给他赋值,就会报错
有特殊情况⽐如name的字符串有空字符串 不算空 此情况难以表达空的情况创建⼀个数据库表
-- ⽬标:创建学⽣表使⽤SQL创建
-- 学号int 登陆密码varchar(20) 姓名,性别 varvhar(2) ,出⽣⽇期(datament) ,家庭住址,email
-- 注意点,使⽤英⽂括号表的名称和字段尽量使⽤`` 反引号括起来
-- AUTO INCREMENT ⾃增
-- 字符串使⽤单引号括起来!
-- 所有语句后⾯加英⽂的逗号,最后⼀个不⽤加
-- 括号后⾯加引擎等
CREATE TABLE IF NOT EXISTS`student`(
-- `字段名` 列类型 [属性][索引][注释] ,
-- 设置id 字段整数类型可显⽰长度为4 ⾮空⾃增注释为空语句后⾯加括号表⽰未完
-- 每个参数中间的空格必须有但是没有限定必须多少个空格下⾯是为了分离清楚空格数⽬不整齐
`id`INT(4)NOT NULL AUTO_INCREMENT COMMENT'',
-- 设置name 字段字符串类型可显⽰长度为30 ⾮空默认为匿名注释提⽰为姓名语句后⾯加括号表⽰未完
`name`VARCHAR(30)NOT NULL DEFAULT'匿名'COMMENT'姓名',
`pwd`VARCHAR(20)NOT NULL DEFAULT'123456'COMMENT'密码',
`sex`VARCHAR(2)NOT NULL DEFAULT' 男'COMMENT'性别',
`birthday`DATETIME DEFAULT NULL COMMENT'出⽣⽇期',
`address`VARCHAR(100)DEFAULT NULL COMMENT'家庭住址',
`email`VARCHAR(50)DEFAULT NULL COMMENT'邮箱',
-- 设置主键为 id 不是单引号
PRIMARY KEY(`id`)
)-- [表类型][字符集设置][注释]
-- 使⽤INNODB为数据库引擎⼀般默认就是INNODB
-- 使⽤CHARSET 设置字符集编码默认情况下不⽀持中⽂也可以修改ini⽂件来修改默认字符集但是不建议
ENGINE=INNODB DEFAULT CHARSET=utf8
SHOW CREATE DATABASE`school`-- 查看创建了数据库的语句
SHOW CREATE TABLE`student`-- 查看创建了student表的语句
DESC`student`-- 显⽰表的结构
MyISAM和InnoDB的区别
MYISAM是MYSQL的ISAM扩展格式和缺省的数据库引擎。除了提供ISAM⾥所没有的索引和字段管理的⼤量功能,MYISAM还使⽤⼀ 种表格锁定的机制,来优化多个并发的读写操作。其代价是你需要经常运⾏OPTIMIZE TABLE命令,来恢复被更新机制所浪费的空间。MYISAM还有⼀些有⽤的扩展,例如⽤来修复数据库⽂件的MYISAMCHK⼯具和⽤来恢复浪费空间的 MYISAMPACK⼯具。
MYISAM强调了快速读取操作,这可能就是为什么MYSQL受到了WEB开发如此青睐的主要原因:在WEB开发中你所进⾏的⼤量数据操作都是读取操作。所以,⼤多数虚拟主机提供商和INTERNET平台提供商只允许使⽤MYISAM格式。
INNODB和BERKLEYDB(BDB)数据库引擎都是造就MYSQL灵活性的技术的直接产品,这项技术就是MYSQL++ API。在使⽤MYSQL的时候,你所⾯对的每⼀个挑战⼏乎都源于ISAM和MYISAM数据库引擎不⽀持事务处理也不⽀持外来键。尽管要⽐ISAM和MYISAM引擎慢很多,但是INNODB和BDB包括了对事务处理和外来键的⽀持,这两点都是前两个引擎所没有的。如前所述,如果你的设计需要这些特性 中的⼀者或者两者,那你就要被迫使⽤后两个引擎中的⼀个了.
MyISAM和InnoDB是两种最常⽤的数据库引擎,默认的引擎是MyISAM,性能最好,但不⽀持事务处理, 只有InnoDB⽀持事务。
根据介绍可知,CSV引擎是以逗号分割的存储⽅式,MEMORY是内存存储⽅式(适⽤于于临时表)。
二叉树的度和结点数的关系如果需要事务处理(含XA)就必需使⽤: InnoDB
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论