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
一.数据库连接
公司为了安全会有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.先要进入到数据库:
2.查看当前在哪个数据库下
select database();
3.查看版本
select version();
4.查看编码
status;
5.查看当前时间
select now();
6.别名
select now() as 当前时间;
7.查看当前连接数
show variables like '%connection%';
表的管理
表的结构维护: 1、查看表的字段 2、表里面修改字段名称,以及类型 3、删除表里面的字段 4、给表增加字段
1.查看数据库有的表格名show
show tables;
2.创建表create
create table 表的名称 (name varchar(20),age int);
特别注意:表的名称只能是英文,数字都不行!
数据类型: 1、varchar(20) ,是指的字符串比如姓名等
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));
15.not null 不能为空
alter table user add adress varchar(100) not null;
字段特性注意:
-
当输入的内容超过定义的长度,会出错。
-
当输入的内容为空,出错。但是不包含“ ”,引号内部不填写的情况。
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
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 desc; 降序
数字和字符串都可以排序,字符串排序规则:ascil码:把字母处理成数字,实现从小到大的排序,具体字母对应的数字需要在python里边打开查询
打开cmd输入Python进入,比如查询a字母ord("a")