mysql trim 索引_mysql 学习笔记

登录数据库:

sudo mysql -u root -p778899      

注意哦,不输入sudo会出现一下问题:

Access denied for user 'root'@'localhost'

显示数据库:

show databases;

创建数据库:

create database school;

选择当前操作数据库:

use school;

创建新用户:

create user shaowen@'%' identified by '密码';

授权:

grant all on *.* to shaowen@'%';
//刷新
flush privileges;

收回权利:

revoke all ON *.*  FROM shaowen@'%';
flush privileges;

查询所有用户:

SELECT User, Host FROM mysql.user;

修改密码:

alter user 'shaowen'@'%' identified by '778899';
//%和localhost具体填哪个,根据上面的查询用户选项看
flush privileges;

之后就可以登录啦

sudo mysql -ushaowen -p778899

基本操作:

  • DML(数据操纵语言)
insert
delete
update

增加一行:

insert into student values ('0001', '臭猪', '男', '2002-09-10', '宽城区','');

删除某一行:

delete from student
where 学号 = ‘0001’;

修改某个字段的值:

update student SET 学号 = '001'
where 学号 = '';
//一定要加where,不然就修改了整个列
  • DDL(针对数据库对象:表 视图 索引 模式)
create
alter
drop

创建表

create table if not exists student(
    学号 nchar(4),
    姓名 nchar(8),
    性别 nchar(2),
    出生日期 date,
    家庭住址 nvarchar(50),
    备注 text
)engine = InnoDb default charset=utf8;

把某列设置为非空:

alter table student modify  姓名 char(4) not null;

修改某列的类型:

alter table student modify column 备注 char(4);

增加唯一约束:

alter table student add unique (学号);

增加属性列:

alter table student add S_no char(4);

删除属性列:

alter table student drop column S_no;

删除表:

drop table student;

存储引擎:是对于数据库文件的一种存取机制,如何实现存储数据,如何为存储的数据建立索引以及如何更新,查询数据等技术实现的方法

MySQL中常用的四种存储引擎分别是:

  1. MyISAM存储引擎
  2. innoDB存储引擎
  3. MEMORY存储引擎
  4. ARCHIVE存储引擎

InnoDB:MySQL的数据库引擎之一,现为MySQL的默认存储引擎

//事务型数据库的首选引擎,支持ACID事务,支持行级锁定
//InnoDB 给 MySQL 提供了具有事务(transaction),回滚(rollback)和崩溃修复能力(crash recovery capabilities)
//以及多版本并发控制(multi-versioned concurrency control)的事务安全(transaction-safe (ACID compliant))型表。
//InnoDB 提供了行级锁(locking on row level),提供与 Oracle 类似的不加锁读取(non-locking read in SELECTs)。

数据库中schema是数据库对象集合,它包含了表,视图等多种对象


1、CHAR CHAR存储定长数据很方便,CHAR字段上的索引效率级高,比如定义char(10),那么不论你存储的数据是否达到了10个字节,都要占去10个字节的空间,不足的自动用空格填充,所以在读取的时候可能要多次用到trim()

2、VARCHAR 存储变长数据,但存储效率没有CHAR高。VARCHAR类型的实际长度是它的值的实际长度+1。为什么“+1”呢?这一个字节用于保存实际使用了多大的长度。从空间上考虑,用varchar合适;从效率上考虑,用char合适,关键是根据实际情况找到权衡点。

3、TEXT text存储可变长度的非Unicode数据,最大长度为2^31-1(2,147,483,647)个字符。

4、NCHAR、NVARCHAR、NTEXT。这三种从名字上看比前面三种多了个“N”。它表示存储的是Unicode数据类型的字符。我们知道字符中,英文字符只需要一个字节存储就足够了,但汉字众多,需要两个字节存储,英文与汉字同时存在时容易造成混乱,Unicode字符集就是为了解决字符集这种不兼容的问题而产生的,它所有的字符都用两个字节表示,即英文字符也是用两个字节表示。nchar、nvarchar的长度是在1到4000之间。和char、varchar比较起来,nchar、nvarchar则最多存储4000个字符,不论是英文还是汉字;而char、varchar最多能存储8000个英文,4000个汉字。可以看出使用nchar、nvarchar数据类型时不用担心输入的字符是英文还是汉字,较为方便,但在存储英文时数量上有些损失

所以一般来说,如果含有中文字符,用nchar/nvarchar,如果纯英文和数字,用char/varchar它们的区别概括成:
CHAR,NCHAR 定长,速度快,占空间大,需处理
VARCHAR,NVARCHAR,TEXT 不定长,空间小,速度慢,无需处理
NCHAR、NVARCHAR、NTEXT处理Unicode码

转自:mysql中char,varchar以及nchar的区别_tusi-CSDN博客_nchar


再往下面的内容都是环境配置的,可以忽略了

凌晨1:56,伴着舍友的呼噜声我特娘的终于连接好了,至于为什么报错,记录一下

The specified database user/password combination is rejected:

a3e982ced0824f5991fa494a3d013002.png
一直重复,最初连postgre也不行,折腾了六七个小时

原因:没有权限的问题

解决办法:创建新用户,赋予权限

create user shaowen@'%' identified by '密码';

grant all on *.* to shaowen@'%';
flush privileges;

alter user 'shaowen'@'%' identified by '778899';
//%或localhost或170.0.0.1
flush privileges;

sudo mysql -ushaowen -p778899;
//创建个数据库
create database school;

b77d250296f647dfc982e2a625517499.png
不行了,睡觉去

更新:

d1e448a81d7abdff2b3efc3744d9e614.png
看我又加个 数据库

安装mysql

  • 安装:
sudo apt install mysql-server -y
  • 查看服务启动与否
sudo systemctl status mysql.service

f9e729299403705004479a7d4e199aeb.png
这是成功
  • 启动服务命令
sudo systemctl start mysql.service
  • 配置MySql
sudo mysql_secure_installation

输入后,第一步就是问你是否想使用 “ 密码有效强度(validate password component)"

cc134aa299e21b92e48b64c1f865d4c5.png
我选择的否,也就是按回车建

输入回车后就会提示你输入密码,输入后,确认密码;

4b139e204d92a66d14490d3dba4b54bf.png

之后的建议开启它们(对于每一步输入 y 或者 Y 和按下回车)。它们(依序)是:“ 移除匿名用户(remove anonymous user)”,“ 禁止 root 远程登录(disallow root login remotely)”,“ 移除测试数据库及其访问(remove test database and access to it)”。“ 重新载入权限表(reload privilege tables now)”。

039ebcb85731e95f5234f185315bf655.png
  • 关闭服务
sudo systemctl stop mysql.service
  • 使用简单的命令输出关于版本的信息
sudo mysqladmin -u root version -p

6c44315d8bb3d891ede4dd0f73d56878.png
  • 登录数据库:
sudo mysql -u root -p778899      

注意哦,不输入sudo会出现一下问题:

Access denied for user 'root'@'localhost'

正规登录是:

sudo mysql -h localhost -u root -p  
  • -h 用来指定一个主机名(如果这个服务被安装到其他机器上,那么会有用;如果没有,忽略它)
  • -u 指定登录的用户
  • -p 指定你想输入的密码

该部分转自:https://zhuanlan.zhihu.com/p/64080934


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值