mysql增删改查,连表,排序,等

(mysql增删改查,连表,排序,等,)–教学来自(bilibili狂神!)(笔记是自己学习过程中纯手写,由于是直接复制笔记,有些可以忽略)
(学习方法“先理解,在敲一遍”之后复习三到五遍,网络搜题,做题,就OK了)
本人博客请点击

systemctl start mysqld --启动mysql
systemctl status mysqld --查看mysql状态

grep -i password /var/log/mysqld.log --通过mysqllog过滤出mysql初始密码


#### 修改密码

```mysql
mysql -uroot -p123123
alter user  user() identified by '密码';    --这里注意,填写密码的时候满足8位并且尽量是混合密码(英文、下划线、数字)
--可以修改密码策略
----------------------------------------------------------
 set global validate_password_policy=low; 			//将密码级别改为弱
 set global validate_password_length=6;				//将密码长度改为6

/*
	执行完之后,我们可以将刚才设置的混合密码
	改为自己想要的数字密码或英文密码了
*/
 set password = password('123456');		    //修改当前密码
-----------------------------------------------------

flush privileges;  -- 刷新权限操作
-----------------------------------------------------------------------

--所用语句都用;号结尾
show databases; -- 查看所有数据库
use kuming  -- 切换库kuming

show tables; -- 查看数据库中所有的表
desc biaoming; -- 展示表结构
create database kuming; -- 创建一个名为kuming的数据库
--exit 退出连接
-- 单行注释(SQL)
/*
多行注释
*/



直接破解mysql密码请点击

数据库xxx语言CRUD增删改查

DDL 定义

DML操作

DQL查询

DCL控制

登录命令详解
MySQL登录:MySQL -h (sever——ip) -P (port) -u (username) -p (password) -D(database_name) --prompt=(prompt_name),
-h为服务器IP地址,本机可以写为localhost或者127.0.0.1,—P(大写)为端口号,默认为3306,-u为用户名,-p为密码,——prompt=可以设置命令行提示符

2.1操作数据库

create database if not exists ku;-- 如果不存在库ku就创建ku
drop database if exists ku; -- 如果存在ku就删除数据库ku
`特殊` 如果你的表名或者字段是一个特殊字符,就需要带上``
show databases; 查看所有数据库

2.2数据库的列类型

数值

(常用标黑)

  • tinyint 十分小的数据 1个字节

  • smallint 较小的数据 2个字节

  • mediumint 中等大小的数据 3个字节

  • int 标准的整数 4个字节 常用的 int

  • bigint 较大的数据 8个字节

  • float 浮点数 4个字节

  • double 浮点数 8个字节

  • decimal 字符串形式的浮点数 金融计算的时候,一般是使用decimal(9个字节)

  • decimal(M,D)
    M的取值范围是1–65,
    D的取值是0–30.(精度D最大为30,表示有30位小数。)

    对于浮点数(M,D),双精度数(M,D)或十进制数(M,D), M必须是>= D(列’money’)。

字符串

(常用标黑)

  • 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 时间戳 , 如:1952年到现在的毫秒数! 也较为常用!
  • year 年份表示
null
  • 没有值,未知
  • 注意,不要使用NULL进行运算,结果为NULL
  • comment 注释

2.3数据库的字段属性

Unsigned:
  • 无符号的整数
  • 声明了该列不能声明为复数
zerofill:
  • 0填充

  • 不足的位数,使用0来填充; 示例:int(3)定义3个位数 , 5— 005零填充了位数

    ​ (3)是定义宽度,就算是1也可以写好多位,只是零填充而已001

自增
  • 通常理解为自增,自动在上一条记录的基础上+1(默认)
  • 通常用来设计唯一的主键~ index ,必须是整数类型
  • 可以自定义设计主键自增的起始值和步长
非空NULL not null
  • 假设设置为 not null ,如果不给他赋值,就会报错!
  • NULL ,如果不填写值,默认就是null!
默认
  • 设置默认的值!default
  • sex,默认值为男,如果不指定该列的值,则会有默认的值!
拓展(了解就好)
/*每一个表,都必须存在以下五个字段!未来做项目用的,表示一个记录存在意义!
id 主键
`version` 乐观锁
is_delete 伪删除
gmt_create 创建时间
gmt_update 修改时间
*/

第一个练习(创建表)

  • 创建学生表(列,字段)使用SQL创建

  • 学号int 登录密码varchar(20) 姓名,性别varchar(2),出生年月(datatime),家庭住址,email

  • 注意点,使用英文(),表的名称和字段尽量使用 `` 括起来

  • AUTO INCREMENT 自增

  • 字符串使用 单引号括起来!

  • 所有的语句后面加 , (英文的) , 最后一个不加

  • PRIMARY KEY 主键,一般一个表只有一个唯一的主键!

  • default默认值

  • comment注释

CREATE TABLE IF NOT	EXISTS `student`(
`id` int(4) not null auto_increment comment '学号',
`name` varchar(30) not null default '匿名' comment '姓名',
`pwd` VARCHAR(20) not null default '123456' comment '密码',
`sex` VARCHAR(20) not null default '女' comment '性别',
`birthday` datetime default null comment '出生日期',
`address` varchar(100) default null comment '家庭住址',
`email` varchar(50) default null comment '邮箱',
primary key(`id`)
)ENGINE=INNODB DEFAULT charset=utf8
desc详解

| Field | Type | Null | Key | Default | Extra |

Field:字段表示的是列名

Type:字段表示的是列的数据类型

Null :字段表示这个列是否能取空值

Key :在mysql中key 和index 是一样的意思,这个Key列可能会看到有如 下的值:PRI(主键)、MUL(普通的b-tree索引)、UNI(唯一索引)

Default: 列的默认值

Extra :其它信息

create格式(必须会)
CREATE TABLE [IF NOT EXISTS]`表名`(
`字段名` 列类型[属性] [索引] [注释],
……
`字段名` 列类型[属性] [索引] [注释]
[设置主键列]
)[表类型][字符集设置][注释]

2.5、数据表的类型

引擎可能是面试题

--关于数据库引擎ENGINE=
/*
INNOOB 默认使用
MYISAM 早些年前使用
*/
对比 MYISAM INNODB
事务支持 不支持 支持
数据行锁定 不支持 支持
外键约束 不支持 支持
全文索引 支持 不支持
表空间的大小 较小 较大,约为MYISAM的两倍

常规使用操作对比

  • MYISAM 节约空间,速度较快
  • INNODB 安全性高,事务的处理,多表多用户操作

在物理机上的位置

​ 所有数据库文件都存在data目录下,一个文件夹就对应一个数据库

本质还是文件的储存!

Mysql 引擎在物理机文件上的区别

  • innoDB在数据库表中只有一个*.frm文件,以及上级目录下的ib
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ybt&kexiao

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值