千家信息网

初识Mysql(一)

发表于:2025-02-02 作者:千家信息网编辑
千家信息网最后更新 2025年02月02日,1 搭建数据库服务器2 MYSQL数据类型3 修改表结构1 搭建数据库服务器1.1 存在mariadb时:#systemctl status mariadb#systemctl stop mariad
千家信息网最后更新 2025年02月02日初识Mysql(一)

1 搭建数据库服务器


2 MYSQL数据类型


3 修改表结构




1 搭建数据库服务器

1.1 存在mariadb时:

#systemctl status mariadb

#systemctl stop mariadb

#rpm -e --nodeps mariadb-libs #不依赖关系卸载

#rm -rf /etc/my.cnf

#rm -rf /var/lib/mysql/*

1.2 新安装时

[root@ser51 ~]# yum -y install perl-Data-Dumper perl-JSON

[root@ser51 ~]# rpm -Uvh mysql-community-*.rpm

#无论软件存在与否都执行升级

[root@ser51 ~]# rpm -qa | grep -i mysql

1.3启动服务

服务名称:mysqld

端口号:3306

主配置文件:/etc/my.cnf

数据库目录:/var/lib/mysql 启动服务,数据数初始化会生成文件

日志文件:/var/log/mysqld.log

服务脚本:/usr/lib/systemd/system/mysqld.service

1.4 连接数据库

[root@ser51 ~]# which mysql

/usr/bin/mysql

[root@ser51 ~]# rpm -qf /usr/bin/mysql #询问文件属于哪个包

mysql-community-client-5.7.17-1.el7.x86_64

[root@ser50 ~]# mysql -u root -p密码

[root@ser50 ~]# mysql -h 服务器 -u用户名 -p密码 数据库

查看登录的初始密码:

[root@ser51 ~]# grep password /var/log/mysqld.log

登录:

[root@ser51 ~]# mysql -uroot -p'5;wG)DluZ)#Q' #特殊符号用单引

1.5 临时登录生效

第一次登录需要重新设置密码才能查看数据库信息

设置全局密码验证策略:

mysql> set global validate_password_policy=0;

设置全局变量密码长度:

mysql> set global validate_password_length=6;

mysql> alter user root@"localhost" identified by "123456" #修改密码

1.6 全局永久生效

[root@ser51 ~]# vim /etc/my.cnf

[mysqld]

validate_password_policy=0

validate_password_length=6

1.7 数据库使用命令

SQL指令:

DDL:数据定义语言

DML:数据操作语言

DCL:数据控制语言

DTL:数据事物语言

mysql> select database(); #查看当前所在的库:

mysql> create database 库名; #创建数据库

mysql> use 库名; #切换数据库

mysql> system ls /var/lib/mysql #不退出操作linux命令

mysql> drop database 数据库名; #删除数据库

创建表

mysql> create table 库名.表名(字段名1 字段类型(宽度) 约束条件, ...);

mysql> alter table 表名 add 字段 类型(宽度); #增加表字段

mysql> drop table 库名.表名 #删除表

mysql> describe 表名 #查看表内字段(desc)

mysql> insert into 表名 values();

mysql> select * from 表名;

mysql> update 表名 set 字段="新值" where 字段="值";

2 MYSQL数据类型

2.1 数值类型

tinyint 1字节 -128~127 0~255

int 4字节

float 4字节 float(m,n) m:总位数 n:小数位位数

double 8字节

2.2 字符类型

定长:char(255) 不写宽度默认为1

不够指定字符数时在右边用空格补齐(会浪费磁盘空间)

变长:varchar 按数据实际大小分配存储空间(会消耗CPU资源,每次都会询问需要的储存的空间的大小)

大文本类型:text/blob

数值类型的宽度和字符类型的宽度的区别:

字符类型超出就不能写入数据;

数值类型的宽度是显示宽度,不能控制给字段赋值的大小,大小由类型本身决定;

案例:int类型的宽度

mysql> create table db1.t10(id int zerofill,pay int(3) zerofill);

#不够字节的用0填充

mysql> insert into t10 values(25,25);

mysql> select *from t10;

+------------+------+

| id | pay |

+------------+------+

| 0000000025 | 025 |

+------------+------+

2.3 日期时间类型

年: year YYYY

日期:date YYYYMMDD

时间:time HHMMSS

日期时间:datetime/timestamp YYYYMMDDHHMMSS

Datetime占8个字节

Timestamp占4个字节

区别:当没有给两者分别赋值时,timestamp自动以当前系统时间赋值,而datetime默认为NULL

案例:

create table t15(

meetting datetime,

partty timestamp

);

insert into t15 values(now(),now());

insert into t15(meetting) values(20171020091828);

insert into t15(partty) values(20191020091828);

select * from t15;

2.4 时间函数

now() 获取调用此函数时的系统日期时间

year() date() time() day() month()

mysql> select date(now()); #函数可以嵌套

Year的年份处理:默认使用4位数字表示

2位数字时:01~69为2000~2069 70~99为1970~1999

2.5 枚举类型

字段只能在指定的范围内选择

格式:

字段名 enum(值1,值2,值N) 单选

字段名 set(值1,值2,值N) 多选

案例:

create table t21(name char(10),sex enum("boy","girl"),

likes set("film","game","book","food"));

mysql> insert into t21 values("tom","boy","film,game");

mysql> insert into t21 values("hai",2,"film,game");#可以用数字表示

2.6 约束条件

作用:限制如何给字段赋值

NULL:空,不设置默认为空 NOT NULL:不允许为空

Key:索引类型

Default:默认设置

Extra:额外设置

案例:查看约束条件(desc)

mysql> create table t22(name char(10) not null,

-> sex enum("boy","girl") default "boy",

-> age tinyint(2) unsigned not null default 18,

->likes set("game","food","book","music") not null

default "game,book");

mysql> insert into t22(name) values("tom");

#其他字段没有写值,使用默认

mysql> insert into t22 values("jom",1,20,"game,music");

注意:"null" 和 "" 和 null的区别

mysql> insert into t22(name) values("null");

Query OK, 1 row affected (0.04 sec)

mysql> insert into t22(name) values(null);

ERROR 1048 (23000): Column 'name' cannot be null

mysql> insert into t22(name) values("");

Query OK, 1 row affected (0.03 sec)

3 修改表结构

alter table 库.表 执行动作

3.1 添加新字段

add 字段名 类型(宽度);

add 字段名 类型(宽度) 约束条件;

add 字段名 类型(宽度) 约束条件 first; #添加在第一个

add 字段名 类型(宽度) 约束条件 after 字段名; #在...之后添加

add 字段名 类型(宽度),add 字段名 类型(宽度); #添加多个

案例:

mysql> alter table t21 add mail char(20);#默认添加在字段最后

mysql> alter table t21 add id int(4) not null default 0001 first;

mysql> alter table t21 add class int(4) not null default 1710 after name;

3.2 删除已有字段

drop 字段名;

3.3 修改字段类型

modify 字段名 类型(宽度) 约束条件;

3.4 修改字段名

change 原字段名 新字段名 类型(宽度) 约束条件;

3.5 修改表名

alter table 旧表名 rename (to) 新表名


字段 类型 数据 宽度 数据库 条件 字节 密码 服务 时间 大小 字符 文件 日期 案例 语言 登录 全局 函数 数值 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 游戏防封服务器 高并发低时延 数据库 江西常用软件开发近期价格 互联网科技龙头上市公司 我的网络安全故事300字 四川久远银海软件开发公司 手机软件的服务器怎么看在哪里 如何更新apk文件的数据库 sfew数据库 闵行区个人数据库服务商前景 部队网络安全事故案例 一般来说web服务器安全措施 顺丰快递服务器机房空调着火 中国的网络技术是什么 杭州西奥中文服务器能复制参数吗 软件开发项目管理课程设计 网络安全宣传笔记本 网络安全总结怎么写 国家网络安全周开幕式主持词 张家港美程网络技术有限公司 联想服务器管理口可以吗 多功能网络技术咨询计划表 河北java软件开发性价比高 信安签名服务器指示灯 长沙市服务器包装选哪家 南京学习软件开发公司哪个好 网络技术答辩视频实录 数据科学与大数据库 抖音服务器异常怎么解决 计算机网络技术专科
0