天河42期吕锡良 发表于 2022-6-3 22:18:30

MySQL笔记

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

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

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


三、MySQL的登录
首次(未设置密码前)进入MySQL数据库,是不需要输入密码的:mysql -uroot -p
退出的三种方法:quit、exit、Ctrl+c

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

设置密码之后的两种登陆方式:
密文方式:mysql -uroot -p   加回车键 再输入密码
明文方式:mysql -uroot -p123456
-u表示用户名
-p表示密码



四、mysql数据库的基本操作:
show databases; ==》展示所有的库
use +库名;   ==>进入对应的库中(只有进入到对的库中才可以操作里面的表)
show tables;==>展示当前库中所有的表
create database +库名;==》创建xx库,是没有表的

select database();==》查询 当前操作的库名
database()==>MySQL中的内置函数,作用获取当前操作的库名,内置函数的执行需要使用 select 在前

drop database +库名;==>删除对应的库(注意:MySQL中的基础库不要删除)

五、对表进行操作(注意:要先使用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,date 日期格式数据,保存日期,固定格式 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 table test rename test1;==》修改表 test表,重命名为test1
alter 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,为字段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) after score;==》修改表,test表,添中字段age,字段属性是int(2),位置放在score后面
alter table test drop sex;==》修改表,test表,丢弃sex字段
alter table test drop age,drop class;==》修改表,test表,丢弃字段age,丢弃class字段
alter table test add(sex varchar(5),age int(10));==》修改表,test表,添加字段sex,字段属性是varchar(5)和字段age,字段属性是int(10)

alter table test change sex sex varchar(5) after name;==》修改表,test表,修改字段sec,为字段sex,属性值是varchar(5),放在字段name后面
alter table test modify age int(5) after sex;==》修改表,test表,改变字段age,字段属性是int(5),放在字段sex后面
*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笔记