初识MYSQL

安装MySQL

  • 1.下载安装包,解压。
  • 2.创建并配置配置文件
    在这里插入图片描述
  • 3.使用管理员权限将MySQL服务安装到系统,切换到bin目录下。 mysqld -install
    在这里插入图片描述
  • 4.初始化数据目录data
    在这里插入图片描述
  • 启动MySQL并修改密码。
  • 刷新权限: flush privileges;
  • 删除跳过密码配置,重新启动MySQL。

连接数据库

mysql -u root -p123456;  -- 登录本机

update user set authentication_string=password('123456') where user='root' and Host='localhost'; -- 修改root密码

flush privileges; -- 刷新权限,使修改后的密码生效

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

use mysql; -- 切换数据库。

show tables; -- 查看所有的表

describe user; -- 查看表的结构信息

create database testdb; -- 创建数据库 

exit; -- 退出连接

DDL 数据库定义语言

DML 数据库操作语言

DQL 数据库查询语言

DCL 数据库控制语言

2.操作数据库

表=》表的数据。

-- 创建数据库
create database [if not exists] testdb01;

-- 删除数据库 
drop database [if exists] testdb;

-- 使用数据库
use testdb01;
-- 查看数据库
show databases;

show create database [dbname]; -- 查看数据库定义语句
show create table student; -- 查看表的定义语句
 

2.1数据库的列类型

数值

  • tinyint 十分小的数据 1个字节
  • smallint 比较小的数据 2个字节
  • int 标准的整数 4个字节
  • mediumint 中等的字节 3个字节
  • 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进行计算。

2.2 数据库的字段属性

  • Unsigned
    无符号的整数,不能为负数。
  • zerofill
    0填充,不足的位数,使用0来填充。int(3) 5 --> 005
  • 主键
  • 自增
    通常理解为自增,自动在上一条记录的基础上+1
    用来设计唯一的主键index,必须是整数类型。
    可以自定义设计自增的起始值和自增步长。
  • 非空
    null 和 not null
  • 默认
    设置默认值,插入数据时该字段没有指定值的时候会使用默认值填充。
  • 更新
    version 乐观锁
  • 备注
  • 常用字段: id/ version/ is_delete/ gmt_create /gmt_update

2.3数据库创建表

create table if not exists `student`(
	`id` int(4) NOT NULL AUTO_INCREMENT comment 'id字段',
	`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 '家庭地址',
	primary key (`id`)
) ENGINE = innodb default charset=utf8
  • 格式

CREATE TABLE [IF NOT EXISTS]  `表名`(
·字段名· 列类型	 [属性] [索引] [注释],
·字段名· 列类型	 [属性] [索引] [注释],
·字段名· 列类型	 [属性] [索引] [注释],
······
·字段名· 列类型	 [属性] [索引] [注释][表类型] [字符集设置][注释]

2.4数据表的类型

  • INNODB 默认使用
    安全性高,支持事务处理,多表多用户操作。
  • MYISAM 早些年使用
    节约空间 速度较快
  • 区别
    在这里插入图片描述> 在物理文件存储上的区别
    所有的数据文件都存在data目录下,本质还是文件的存储!一个文件夹就对应一个数据库
    MySQL引擎在物理文件上的区别
  • InnoDB在数据库表中只有一个*.frm文件,以及上级目录下的ibdata1文件
  • MYISAM对应的文件
    *.frm(表结构定义文件)
    *.myd 数据文件
    *.MYI 索引文件

设置数据库表的字符集编码 CHARSET=utf8,可以在my.ini中设置默认的字符集编码cahracter-set-server=utf8

2.5修改删除表

-- 修改表名
alter table student rename as student1;
-- 增加字段
alter table sutdent1 add age int(3);
-- 修改表的字段(重命名,修改约束)
alter table student1 modify age varchar(11); -- 修改约束
alter table student1 change age age1; -- 重命名字段 
-- 删除表字段
 alter table student1 drop age1;
 
 -- 删除表
 drop table student1;

3.MySQL的数据管理

3.1外键

key `FK_gradeid` (`gradeid`),
constraint `FK_gradeid` FOREIGN KEY(`gradeid`) REFERE NCES `grade`(`gradeid`);

alter table `student` add constraint `FK_gradeud` FOREIGN KEY (`gradeid`) REFERENCES `grade`(`gradeid`);


在这里插入图片描述

3.2DML语言

  • insert
  • update
  • delete
-- truncate 清空一个表的数据。
truncate `student`;
  • delete 和 truncate的区别
    truncate会重置自增序列。
    truncate不会影响事物。

3.3DQL查询语句

-- 函数 concat(a,b) 拼接字符串
select concat('姓名:',name) from student ;
-- 去重 distinct
select distinct(name) from student where age >18;

-- 查看系统版本
select version();
-- 查询张姓同学
select * from student where name like '张%'
 -- 查询张姓单字名称同学。
select * from student where name like '张_'

在这里插入图片描述
在这里插入图片描述

CREATE DATABASE shop CHARACTER SET utf8 COLLATE utf8_general_ci;
use shop;

create table `account`(
	`id` int(3) NOT NULL AUTO_INCREMENT,
	`name` VARCHAR(30) NOT NULL,
	`money` DECIMAL(8,2) NOT NULL,
	PRIMARY KEY(`id`)
)ENGINE=INNODB DEFAULT CHARSET=utf8

insert into account (`name`,`money`) VALUES('A',8000.00),('B',20000.00);

select * from account;

SET autocommit = 0; -- 关闭自动提交

START TRANSACTION; -- 开启事务

update account set money =money -500 where `name`='A'; -- A 账户减少500
update account set money =money +500 where `name`='B'; -- B 账号增加500

COMMIT; -- 提交事务

ROLLBACK; -- 回滚事务

SET autocommit = 1; -- 开启自动提交
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值