MySQL 基础操作-学习笔记
MySQL 基础操作
图形化管理工具SQLyog操作数据库体验
使用工具SQLyog,下载地址:
根据自身系统,下载相应版本,并安装好软件。
首先通过管理员权限的命令行,开启MySQL服务。
net start mysql
登录MySQL
然后使用SQLyog连接,输入主机地址、用户名、密码、端口登录。

创建数据库
登录后,在主界面左侧看到默认的数据库文件,默认有4个数据库,不要去操作。

鼠标右键点击root@localhost,选择创建数据库。

按要求填写数据库名称、基字符集、数据库排序规则。为了使中文不出现乱码,通常使用utf-8字符集,而数据库排序规则可以选择utf_general_ci。

点击创建后即可完成新数据库的创建。
创建表
展开school数据库,鼠标右键点击表,选择创建表

设置表名称、引擎选择:InnoDB、字符串utf-8,并配置数据库的列名、数据类型、长度,注意勾选ID为主键。配置参考如下:

点击保存后,完成表的创建。
输入表数据
鼠标右键点击刚刚创建的student表,选择打开表

在界面右下方显示表结构,类似于Excel,将信息填入,参考如下:

注意改完后数据是没有保存的,右下方有提示 数据已修改但没有存储,鼠标右键空白处,点击保存更改即可。

至此,简单的登录MySQL->创建数据库->创建表->创建数据即完成。
但学习数据库,不是只用图形界面,还是要学习数据库语句和命令,点开历史记录,刚才我们所有的操作均以语句的形式展示在这里。接下来就要学习基本数据库语句。

MySQL基础指令
命令行连接数据库
--命令回顾,记得分号 ; 结尾
mysql -uroot -p123456 --连接数据库
update mysql.user set authentication_string=password('123456') where user='root' and Host = 'localhost'; --修改用户密码
flush privileges; --刷新权限

查看数据库
show databases; --查看所有的数据库

选择(切换)数据库
use school; --切换数据库 use [数据库名]

查看数据库中的表
show tables; --查看该数据库中所有的表

显示表中的数据
describe student; --查看school表中的信息 describe [表名称]

创建一个数据库
create database class; --创建一个数据库class create database [数据库名称]

注释
-- 这个单行注释
/*
这是块注释,和java类似
*/
MySQL语法分类
DDL Data Definition Language:数据定义语言
DML Data Manipulation Language:数据操作语言
DQL Data Query Language:数据查询语言
DCL Data Control Language:数据控制语言
后续敲命令均使用SQLyog来操作,尽量不使用cmd。
右侧为语句输入,左上箭头为执行语句,右下为结果(成功、错误、警告)

MySQL DML 操作数据库
操作数据库->操作数据库中的表->操作数据库中表中的数据
MySQL关键字不区分大小写,但一般用大写表示。
- 创建数据库
CREATE DATABASE [ IF NOT EXISTS ] newschool; --【如果不存在就】创建一个newschool的数据库
- 删除数据库
DROP DATABASE [ IF EXISTS ] newschool;--【如果存在就】删除一个newschool的数据库
- 使用数据库
USE school; --使用数据库 school
- 查看数据库
SHOW DATABASES; --查看所有的数据库
使用语句,同时学会对比
SQLyog可视化操作,不会的语句使用可视化操作,然后查看历史记录。
MySQL数据库类型
数据的类型
数值
| 类型 | 解释 | 大小 |
|---|---|---|
| tinyint | 小数据 | 1 Byte |
| smallint | 较小的数据 | 2 Byte |
| mediumint | 中等大小的数据 | 3 Byte |
| int | 标准的数据 | 4 Byte |
| bigint | 较大的数据 | 8 Byte |
| float | 浮点数 | 4 Byte (精度问题) |
| double | 较大的浮点数 | 8 Byte |
| decimal | 字符串形式的浮点数 | 金融计算较多使用 |
字符串
| 类型 | 解释 | 大小 |
|---|---|---|
| char | 字符串固定大小 | 0-255 |
| varchar | 可变字符串 | 0-65535 常用 String |
| tinytext | 微型文本 | 2^8-1 |
| text | 文本串 | 2^16-1 保存大文本 |
时间日期
| 类型 | 解释 | 备注 |
|---|---|---|
| date | YYYY-MM-DD | 日期格式 |
| time | HH:mm:ss | 时间格式 |
| datetime | YYYY-MM-DD HH:mm:ss | 最常用格式 |
| timestamp | 时间戳 | **1970.1.1到现在毫秒数 **常用 |
| year | 年份表示 |
null
- 没有值,未知
- 注意不要用null进行运算,结果为null
字段属性
Unsigned
- 无符号的整数
- 不能声明为负数
zerofill
- 0填充
- 不足的位数使用0来填充,例:int(3) 11 =011
自增
- 自增,通常在上一条的记录基础上+1(默认)
- 通常用来设计唯一主键,必须是整数类型
- 可以自定义设计主键自增的起始值和步长
非空
- 假如设置为非空,如果不给赋值就会报错(必填项)
- NULL 如果不填值,则默认为NULL
默认
- 设置默认的值
- sex 默认男,如果不指定该列,则默认值为男
常用,每个表,都必须存在以下五个字段!!!表示一个记录存在的意义!开发准则。
- id 主键
- 'version' 乐观锁
- is_delete 伪删除
- gmt_create 创建时间
- gmt_update 修改时间
操作示例
要求
--创建一个school 数据库
--创建学生表(列,字段)使用SQL创建
--学号int 登录密码varchar(20)姓名,性别varchar(2),出生日期(datetime),家庭地址,E-mail
--注意点,使用英文(),表名称和字段使用''括起来
--使用自增
--字符串使用单引号括起来
--所有语句后面加,最后一个不用加
--最后配置主键,一个表一般只有一个主键
代码记录
CREATE DATABASE IF NOT EXISTS school;
CREATE TABLE IF NOT EXISTS `student`(
`id` INT(4) NOT NULL AUTO_INCREMENT COMMENT '学号',
`name` VARCHAR(30) NOT NULL DEFAULT '匿名' COMMENT '姓名',
`password` 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 '地址',
`E-mail` VARCHAR(50) DEFAULT NULL COMMENT '邮箱地址',
PRIMARY KEY(`id`)
)ENGINE=INNODB DEFAULT CHARSET=utf8

格式
CREATE TABLE [IF NOT EXISTS] `表名`(
`字段名` 列类型 [属性] [索引] [注释],
`字段名` 列类型 [属性] [索引] [注释],
...
`字段名` 列类型 [属性] [索引] [注释],
PRIMARY KEY(`字段名`)
)[表类型][字符集设置][注释]
数据表的类型
INNODB 默认使用
MyISAM 早些年使用
| MYISAM | INNODB | |
|---|---|---|
| 事务支持 | 不支持 | 支持 |
| 数据行级锁定 | 不支持 | 支持 |
| 外键约束 | 不支持 | 支持 |
| 全文索引 | 支持 | 不支持(5.7后支持) |
| 表空间大小 | 较小 | 较大 约为2倍 |
常规使用操作:
- MYISAM 节约空间,速度较快
- INNODB 安全性较高,支持事务的处理,多表多用户操作
在物理空间存在的位置
所有的数据库文件都存在data目录下,本质是文件的存储,一个文件夹对应一个数据库。
MySQL 数据表类型在物理文件上的区别。
InnoDB在数据库中只有一个*.frm的文件 以及上级目录下的ibdata1文件MYISAM在数据库中有*.frm表结构定义的文件*.myd数据文件(data)*.myi索引文件(index)
设置数据库表的字符集编码
DEFAULT CHARSET=utf8
MySQL默认的字符集编码不支持中文,默认为Latin1不支持中文。
也可以在my.ini中修改,添加character-set-server=utf8(不建议,通用性低了)代码考到别人计算机可能就不能用了。
查询配置命令
SHOW CREATE DATABASE school --查看创建数据库的语句
SHOW CREATE TABLE student --查看student数据表的定义语句
DESC student --显示表结构
修改和删除
修改表
-- 表重命名
ALTER TABLE student RENAME AS student1 -- 表重命名
ALTER TABLE student1 ADD age INT(11) -- 表新增列
ALTER TABLE student1 MODIFY age VARCHAR(11) --表修改约束
ALTER TABLE student1 CHANGE age age1 INT(3) --表修改名称
ALTER TABLE student1 DROP age1 --删除列
删除表
DROP TABLE IF EXISTS student1 --删除表

浙公网安备 33010602011771号