天河42期罗子苑 发表于 2022-6-2 19:32:11

MySQL

本帖最后由 天河42期罗子苑 于 2022-6-2 19:39 编辑

Linux服务器MySQL的安装方式:(两种方式只要选择一种就行)
方式一:在线安装
yum install mysql -y #安装MySQL数据库的客户端
yum install mysql-sever -y #MySQL服务端的安装
yum中的-y参数表示使用yum进行在线安装时不需要确认

方式二:离线安装 rpm安装
rpm -qa ==>查看当前Linux服务器中以及安装的程序首先需要下载相关的rpm文件安装包
执行:rpm -ivh +rpm文件名
-ivh 表示执行安装并显示进度

先启动MySQL的服务,才可以连接MySQL数据库管理系统
service mysqld start ==>启动MySQL数据库的服务
service mysqld syop==>停止MySQL数据库的服务
service mysqld restart ==>重启MySQL数据库的服务
service mysqld status==>检查MySQL数据库服务的运行状态

首次(未设置密码前)进入mysql数据库是不需要输入密码的
:mysql -uroot -p

退出的三种方法:quit、exit、Ctrl +C

设置mysql的登录密码(刚安装完mysql的设置密码的方法):mysqladmin -uroot password '123456'


C:\Users\25367\AppData\Local\YNote\data\weixinobU7VjqHgjVs6SGCT3TSHacgVdsE\ee4700a49adb45f4b2e7161ab6da5043\]t55me6gd4c]930qy$jxn4y.png
设置密码之后的两种登录方式:
密文方式: mysql -uroot -p加回车键 再输入密码
明文方式:mysql -uroot -p123456
-u表示用户名; -p表示密码

mysql的基本操作:
展示 所有的数据库==》show databases;==》查看当前数据库管理系统中有什么库
use +库名 ==》进入对应的库中(只有进入到对应的库中才可以操作里面的表)
show tables;==>展示当前库中所有的表
C:\Users\25367\AppData\Local\YNote\data\weixinobU7VjqHgjVs6SGCT3TSHacgVdsE\9092715bff55482e968fd9118adcd572\{%1%1igs]@rxujq0{_z%x0u.png

create databese +库名; ==》创建XX库,空库,没有表的
C:\Users\25367\AppData\Local\YNote\data\weixinobU7VjqHgjVs6SGCT3TSHacgVdsE\3941377ea60442b28b650bd08be89b07\{%%9p()j534%5em3(jq}1qn.png
select database();
database()==>MySQL中的内置函数,作用获取当前操作的库名,内置函数的执行需要使用select在前

drop database +库名;==》删除对应的库(注意:MysSQL中的基础库不要删除)
C:\Users\25367\AppData\Local\YNote\data\weixinobU7VjqHgjVs6SGCT3TSHacgVdsE\4f4441fdd20b4de2a0f9fde6a56c264d\gh~}$6nt`0}rzea57)a3%%m.png

C:\Users\25367\AppData\Local\YNote\data\weixinobU7VjqHgjVs6SGCT3TSHacgVdsE\f1bedf8c9eda491c8b1851470caa5628\aregxg2$30ubgexi`)yofl0.png

对表进行操作(注意:要先使用use 进入对应的库中)
创建表:
create table 表名(字段1 字段1的属性 字段1的约束,字段2 字段2的属性 字段2的约束,字段3 字段3的属性);

create table test(id int(20) primary key auto_increment,name varchar(20) not null,score float(20,2),phone bigint(20) default 17688889999,time date);

create table test(
id int(20) primary key auto_increment,
name varchar(20) not null,
score float(20,2),
phone bigint(20) default 17688889999,
time date
);


常见得数据类型:
1.int 整数,整数数字,只能保存4个字节得数字,也就是保存得范围±2147483647
2.bigint 大整型,大整数,只能保存整数数字,但是保存得范围比int大,可以保存8个字节得数字
3.float 浮点数,带小数位的数字,(20,2)前面的20也是表示数据的宽度,后面的2表示显示小数后两位,保存4个字节的数据
4.double 浮点数,大浮点数,保存8个字节的数据
5.data 日期格式数据,保存日期,固定格式 YYYY-MM-DD,所以在定义时不需要在字段后面加括号说明长度
6.char 字符串,保存字符串,固定存储长度,固定占磁盘的255个字节
7.varchar 字符串,可变长字符串,存储时占用磁盘的空间是不固定的,最多占2^16个字节

面试题:char型的varchar型的区别:
两者都是MySQL数据库保存字符串数据的格式,区别是:char型数据是定长的,不节省资源,性能更好;varchar是可变长的,但是查询性能差一点,节省资源

char()和varchar() 括号中的数字表示内容显示的长度,例如varchar(20)表示插入的数据最多显示20个字母或者特殊字符,如果是汉字显示,utf-8编码格式的汉字会显示6个汉字和一个乱码,GBK编码格式的汉字就显示10个汉字,一个utf-8占3个字符位,一个GBK编码格式的汉字占2个字符位

约束:
1.primary key 主键约束,一张表中只能有一个主键约束,特点:表中主键字段的值唯一,不能为空
2.auto_increment 自增长约束,要结合着主键约束使用,而且字段的类型要为数值型,如果插入数据时,不对主键字段插入值则会自动在主键字段中的值中匹配最大值+1
3.not null 非空约束,表示对应字段不能为 空值null
4.default 默认值约束,对有默认值约束的字段,如果插入数据时,不对该字段插入数据则直接赋予一个已经定义的默认值

desc +表名;==>查看对应表的表结构
修改表结构:alter table
修改表结构:alter tablealter table test rename test1;==》修改 test表 重命名为test1alter table test1 rename test;==》修改 test1表 重命名为test
alter table test change id sid int(4); ==》修改test表 改变id字段为sid,属性为int(4)alter table test change sid sid int(4)auto_increment; ==》修改 test表sid字段的属性为int(4),增加自增长约束
alter table test add class char(10);   ==》修改 test表 增加class字段,设置属性为char(10)alter table test add sex varchar(3) first;==》修改 test表 增加sex字段 设置属性为varchar(3) 并放在第一行alter table test add age int(2) afterscore;==》 修改 test表增加年龄字段 设置属性为int(2) 放在score的后面alter table test drop sex;==》修改 test表 删除sex字段alter table test drop age,drop class; ==》修改test表 删除年龄字段和删除class字段alter table test add(sex varchar(5),ageint(10));==》修改 test表增加sex字段,设置属性为varchar(5),增加年龄字段,设置属性为int(10)
alter table test change sex sex varchar(5)after name;==》修改 test表使用change将sex字段放在name字段的后面alter table test modify age int(5) aftersex;==》修改 test表使用modify将age字段放在sex字段的后面

mysql> alter table test drop primarykey;==》修改 test表删除主键alter table test change sid sid int(5)primary key;==》修改 test表 改变sid字段 设置属性为int(5)设置为主键alter table test add primary key(sid,name);==》修改 test表将sid字段和name字段设置为复合主键

create table test2 like test; 创建test2表 像test表一样drop table test2; 删除test2表

*modify和change都可以修改表中字段的定义,但是change使用相对不那么方便,因为要写两次字段名,modify则不用,但是modify不能对字段名进行重命名

删除主键约束:
mysql> alter table test drop primary key;
ERROR 1075 (42000): Incorrect table definition; there can be only one auto column and it must be defined as a key
但是删除失败,因为表中的主键字段sid,是有自增长约束,而自增长约束又必须要依赖主键约束所以直接删除主键约束时,会报错,需要先删除自增长约束才可以删除主键约束

1,首先要删除自增长约束,可以通过modify或者change的方式修改表字段的属性就可以删除自增长
alter table test modify sid int(4);
2,删除表中主键约束:
alter table test drop primary key;

3,添加主键约束,
(1)可以通过modify、change的方式进行添加:
alter table test change sid sid int(5) primary key;
(2)通过add primary key的方式添加
alter table test add primary key(sid,name);


复合主键:在一个表中,只能有一个主键约束,但是这个主键约束可以放在多个字段上。
主键特点:表中主键字段的值唯一,而且不能为空
复合主键特点:多个复合主键字段上的值,组合后不能存在全为空,且组合后不能出现重复的情况

create table test2 like test;
drop table test2;


页: [1]
查看完整版本: MySQL