Mysql基础知识01

一、数据库简介

数据库(DB,DataBase)
作用:存储数据,管理数据
概念:数据仓库,软件,安装在操作系统上
数据库的分类:
①关系型数据库(SQL):行列
例如:Mysql、Oracle、Sql Sever、DB2、SQLite
通过表和表之间,行和列之间的关系进行数据的存储
②非关系型数据库(NoSQL Not SQL):{key:value}
例如:Redis、MongDB
非关系型数据库,通过对象来存储,通过对象的自身的属性来决定。

二、MySQL

Mysql是一个关系型数据库管理系统,属于Oracle旗下产品
开源的数据库软件
体积小、速度快、总体拥有成本低
官网:www.mysql.com

三、MySQL安装

安装建议:
1、尽量不要使用exe,否则卸载麻烦
2、尽可能用压缩包安装
步骤:
①下载zip
②解压到目录 D:\Mysql8.0\mysql-8.0.31-winx64
③添加环境变量
我的电脑→属性→高级→环境变量
将bin的目录添加到PATH后
④在D:\Mysql8.0\mysql-8.0.31-winx64下新建my.ini文件
编辑my.ini文件

[mysqld]
# 设置3306端口,如果之前下载过旧版本的MySQL,将3306改为3307,进行区分
port=3306
# 设置mysql的安装目录
basedir=D:\\Mysql8.0\mysql-8.0.31-winx64
# 设置mysql数据库的数据的存放目录
datadir=D:\\Mysql8.0\mysql-8.0.31-winx64\data
# 允许最大连接数
max_connections=200
# 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统
max_connect_errors=10
# 服务端使用的字符集默认为UTF8
character-set-server=utf8mb4
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
default_authentication_plugin=mysql_native_password
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8mb4
[client]
# 如果电脑里没有其他版本的MySQL,此处为3306, 否则为3307;需要与第三行的保持一致!
port=3306
default-character-set=utf8mb4

⑤启动管理员模式的cmd,到bin目录下输入mysqld -install 安装mysql
mysqld --initialize-insecure --user=mysql初始化数据文件
⑥mysql -u root -p 进入mysql管理界面
⑦ALTER USER ‘root’@‘localhost’ IDENTIFIED WITH mysql_native_password BY ‘新密码’; 修改密码
⑧flush privileges;刷新权限
⑨exit→net stop mysql→net start mysql

四、sql常用命令行

每一个sqlyog的操作都对应sql语句的实现,可以在软件的历史记录看到

创建数据库
create database shop;
CREATE DATABASE `school`CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci; 
创建表格
CREATE TABLE `school`.`student` ( `id` INT(10) NOT NULL AUTO_INCREMENT COMMENT '学员id', `name` VARCHAR(20) NOT NULL COMMENT '学员姓名', `age` INT NOT NULL COMMENT '学员年龄', PRIMARY KEY (`id`) ) CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci; 
插入
INSERT INTO `school`.`student` (`id`, `name`, `age`) VALUES (NULL, 'kewin', '13'); 
切换数据库
USE school;
查看数据库中所有的表
show tables;
查看表的信息
describe student;
退出连接
exit;
-- 单行注释
/*
sql的多行注释
*/

数据库语言分类
DDL 数据库定义语言
DML 数据库操作语言
DQL 数据库查询语言
DCL 数据库控制语言

五、操作数据库

mysql关键字不区分大小写

创建数据库
CREATE DATABASE [IF NOT EXISTS] database1;
删除数据库
DROP DATABASE [IF EXISTS] database1;
使用数据库 如果有特殊字符则加上``
use `user`
查看所有数据库
SHOW DATABASES
创建表格
CREATE TABLE [IF NOT EXISTS] `表名`(
	`字段名` 列类型 [属性] [索引] [注释]`字段名` 列类型 [属性] [索引] [注释]...
	`字段名` 列类型 [属性] [索引] [注释]
)[表类型][字符集设置][注释];

CREATE TABLE IF NOT EXISTS `teacher`(
	`id` INT(4) NOT NULL AUTO_INCREMENT COMMENT '学号',
	`name` VARCHAR(30) NOT NULL DEFAULT 'name' COMMENT '姓名',
	`pwd` VARCHAR(20) NOT NULL DEFAULT '123' COMMENT '密码',
	`sex` VARCHAR(2) NOT NULL DEFAULT '男' COMMENT '性别',
	`birthday` DATETIME NOT NULL COMMENT '出生日期',
	`address` VARCHAR(100) DEFAULT NULL COMMENT '地址',
	`email` VARCHAR(50) DEFAULT NULL COMMENT '邮箱',
	PRIMARY KEY(`id`)
)ENGINE=INNODB DEFAULT CHARSET=utf8;
查看创建数据库的语句
SHOW CREATE DATABASE school
查看student数据表的定义语句
SHOW CREATE TABLE student
显示表的结构
DESC student

六、数据库列的类型

数值
tinyint 十分小的数据 1个字节
smallint 较小的数据 2个字节
mediumint 中等大小的数据 3个字节
int 标准的整数 4个字节
bigint 较大的数据 8个字节
float 浮点数 4个字节
double 浮点数 8个字节
decimal 字符串形式的浮点数 金融计算的时候使用
字符串
char 字符串固定大小的 0-255
varchar 可变字符串 0-65535
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:无符号的整数,声明了该列不能为负数,只能用于int类型
zerofill:0填充,不足的位数用0补上
自增:自动在上一条记录的基础上+1(默认),用来设计唯一的主键index,必须是整数类型
可以自定义设置主键自增的起始值和步长
空与非空:假设设置为not null,如果不赋值就报错,null的话代表如果不填写值,默认是null
默认:设置默认值
规范的表格必有的五个属性:id主键、version乐观锁、is_delete伪删除、gmt_create创建时间、gmt_update修改时间

八、数据表的类型

数据库的引擎
①INNODB 表空间较大,约2倍,安全性高,多表多用户操作
默认使用 支持事务支持、数据行锁定、外键约束,不支持全文索引
②MYISAM 表空间较小 速度快
早些年使用的 支持全文索引,不支持事务支持、数据行锁定、外键约束

所有数据库文件都存在data中,一个文件夹对应一个数据局,本质还是文件的存储
两者在物理文件上的区别
InnoDB在数据库表中只有一个*.frm文件,以及上级目录下的ibdata1文件
MYISAM对应的文件:*.frm 表结构的定义文件 *.MYD 数据文件 *.MYI 索引文件

设置数据库的字符集编码
charset=utf8
不设置的话默认的不支持中文
Mysql的默认编码是Lartin1
在my.ini中可以配置默认编码
character-set-sever=utf8

九、修改和删除数据表字段

修改表
ALTER TABLE 旧表名 RENAME AS 新表名;
ALTER TABLE teacher RENAME AS teacher1;
增加表的字段
ALTER TABLE 表名 ADD 字段名 列类型;
ALTER TABLE job ADD jobname VARCHAR(20);
修改表字段
ALTER TABLE 表名 MODIFY 列名 列类型;
ALTER TABLE job MODIFY jobname INT(10);
ALTER TABLE 表名 CHANGE 旧列名 新列名 列类型;
ALTER TABLE job CHANGE jobname job VARCHAR(20);
删除表字段
ALTER TABLE 表名 DROP 列名;
ALTER TABLE job DROP job;
删除表
DROP TABLE IF EXISTS 表名;
DROP TABLE IF EXISTS teacher;

注意:
①所有创建和删除尽量加上判断,以免报错
②字段名,使用``包裹
③sql关键字大小不敏感,建议小写
④所有符号全部英文

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值