MySQL安装

MySQL的下载地址:https://dev.mysql.com/downloads/windows/installer/5.7.html https://blog.csdn.net/weixin_43189346/article/details/88595292

MySQL安装成功后,把bin目录配置到path环境,配置成功后,就可以登录到MySQL了,客户端登录的命令具体为:

mysql -h localhost -u root -p

Enter password:root

注意:Mysql命令后边都有; 都是英文格式下的符号

进入成功。

一.数据库连接

 

 公司为了安全会有ssh通道连接到linux

 

二.mysql数据库的管理

(一)创建数据库

1.查看:数据库服务有哪些数据库?

show databases;

2.增加:创建数据库

create database databaseName;

3.删除:数据库

drop database databasename;

 

 

MySQL⽬前⽀持的数据类型为:

  • 数字:tinyint smallint int bigint bit

  • decimal float double

  • char varchar blob text enum set

  • json数据类型(MySQL8.0新增加的特性

  • 数据类型: 1、varchar(20),是指的字符串比如姓名等 2、int ,年龄 3、double,薪资等带小数的

操作

1.先要进入到数据库:

use databaseName;

2.查看当前在哪个数据库下

select database();

3.查看版本

select version();

4.查看编码

status;

5.查看当前时间

select now();

6.别名

select now() as 当前时间;

7.查看当前连接数

show variables like '%connection%';

8.查看超时

show variables like '%timeout%';

(二)创建表

表的管理

表的结构维护: 1、查看表的字段 2、表里面修改字段名称,以及类型 3、删除表里面的字段 4、给表增加字段

1.查看数据库有的表格名show

show tables;

2.创建表create

create table 表的名称 (name varchar(20),age int);

特别注意:表的名称只能是英文,数字都不行!

数据类型: 1、varchar(20) ,是指的字符串比如姓名等 2、int ,年龄 3、double,薪资等带小数的

3.查看表的字段内容desc

desc 表的名称;

show tables; 查看表格的名称

4.查看表的创建过程

show create table 表的名称 \G;

 

5.创建表指定编码utf8

create table user (name varchar(20),age int,adress varchar(100)) ENGINE=InnoDB DEFAULT CHARSET=utf8;

                表的名称

6.添加字段alter table add

添加的字段在首位

alter table 表名称 add index_name varchar(6) first ;

把XX字段添加在XX字段的后面

alter table 表名称 add first_name varchar(6) after name ;

添加字段,默认是在最后一列

alter table 表名称 add sex varchar(6) ;

7.修改表格名称rename

rename table oldname to newname;

8.修改表的类型alter table modify

alter table 表的名称 modify name varchar(20);

alter table info modify name varchar(20); 修改info表格的name长度

9.修改列表的名称alter table change

alter table 表的名称 change name 列表的名称 varchar(20);

alter table info change name usrename varchar(20); 修改info表格的username列表名称

10.删除字段drop

alter table userinfo drop index_name;

11.删除表格drop

drop table 表的名称;

12.给字段添加备注comment

create table user(first_name varchar(20) comment "第一个名称");

show create table user \G;

 

三.mysql的DML语句

INSERT,UPDATE,DELETE,SELECT操作被称为MySQL的DML的语句,INSERT,UPDATE,DELETE可以理解为写的操 作,也就是write,SELECT是⼀个读的操作,也就是read。

(一)insert

13.表格内插入insert into

按字段插入:

insert into 表名称(列表名称) values(”zxx“);

全部插入:

insret into 表名称 values ("zxx",18);

批量插入:

insert into 表名称 values("A",18),("B",20),("C",25);

查看是否插入成功:

select * from tableName; 查询插入是否成功

 

14.如果插入的内容相同如何区分,需要主件即身份编码:id int primary key

create table user (id int primary key,name varchar(20),age int, adress varchar(100));

replace是可以插入相同编码的数据的,insert不可以,由于大数据有海量数据会出现相同的情况,所以基本都是replace插入,替代掉重复的内容。

15.not null 不能为空

alter table user add adress varchar(100) not null;

字段特性注意:

  1. 当输入的内容超过定义的长度,会出错。

  2. 当输入的内容为空,出错。但是不包含“ ”,引号内部不填写的情况。

16.default:默认值

增加一列名为sex的列,不能为空,且默认是boy

alter table user add sex varchar(6) not null default "boy";

插入内容(id和adress都不能为空且无默认需要单独输入)

replace into user (id,adress) values(5,"xian"); 注意:如果没有默认的话插入是可以不指定的

17.自增auto_increment

create table user(id int primary key auto_increment,name varchar(20),age int);

replace into user(name,age) values("zx",25),("ly",25);

注意:如果没有自增的话插入是可以不指定的: replace into user values("zx",25),("ly",25);

18.唯一性约束unique

alter table user add code varchar(18) unique;

replace into user values(3,"zc",25,"1234567890");

(二)update

19.修改表内数据update

update 表名称 set 需要修改的项目=要修改后的内容 where id=1;

update user set age=25 where id=1;

(三)delete

20.删除表内部的数据

针对大量表格内容全部删除:(更快)

truncate table 表名; truncate 截断

truncate table user;

针对表格内容全部删除:

delete from 表名;

delete from user;

针对某一条的删除:

delete from 表名 where id=X;

delete from user where id=1;

21.克隆表的结构

create table B like A; 克隆一个像A一样的B表格

create table info like user; 克隆一个像user的info表格

22.把表A的数据批量写入表B

replace into B select * from A; 把A里边的数据批量写入B表格,原本B表格是没有数据的。

replace into info values(1,"zx",20,"chengdu"),(2,"ly",25,"xian"),(3,"zl",22,"hangzhou"); 在info里边写入的数据

replace into user select * from info; 把原本在info内部的数据批量写入user

(三)select

进入到文件所在路径,导入employees.sql数据 命令:mysql -h localhost -u root -p <employees.sql

展开数据库,导入成功

 

四.MySQL查询

select:

23.全表内容查询

select * from 表名;

select * from user;

24.查询部分字段

select 列名 from 表名;

select name,age from user; 查询name,age

25.查询有多少行数据

select count(1) from user;

select count(1) as 总数 from user;

26.and、or查询

select * from user where name="ly" and age=20;

select * from user where name="ly" or age=20;

27.between...and查询范围,可用于查询价格、年龄、成绩等区间

select * from user where age between 18 and 25;

不包含此范围 not between... and

select * from user where age not between 18 and 25;

28.包含某字段查询in/不包含not in

select * from user where name in ("zx","ly");

select * from user where name not in ("zx","ly");

29.正则查询

包含了z××的查询,%是任意字符

select * from user where name like "z%";

以z开头的查询

select * from user where name rlike "^z";

以y结尾的查询

select * from user where name rlike "y$";

30.限制表的查询条数limit

select * from user limit3;

31.按照升序查询asc、降序desc

select * from user order by age asc; 升序

select * from user order by age desc; 降序

数字和字符串都可以排序,字符串排序规则:ascil码:把字母处理成数字,实现从小到大的排序,具体字母对应的数字需要在python里边打开查询

打开cmd输入Python进入,比如查询a字母ord("a")