安装MySQL
- 安装命令: sudo apt install mysql-server-5.7
- 注意:
- 安装过程中,会提示输入root用户的密码,输入结束后回车;会再次提示一个确认密码,输入后回车,等待安装。
- mysql-server-5.7表示指定mysql版本为5.7,可自己选定版本
- 注意:
- 安装结束后进入mysql的指令:
- mysql -u root -p
- 会提示输入密码(输入root用户的密码,成功后进入mysql)
- 当出现 mysql> 代表成功进入mysql服务器
- 在mysql下所有的语句与在windows下写过的语句完全一致。
- mysql -u root -p
mysql服务基本命令
- A、启动服务(Windiws环境)
- 说明:以管理员身份运行cmd
- B、格式:net start 服务名称
- 示例:net start mysql57
- C、停止服务
- 说明:以管理员身份运行cmd
- 格式:net stop 服务名称
- 示例:net stop mysql57
- D、登录MySQL
- 格式:mysql -u 用户名 -p
- 示例:mysql -u root -p
- 输入密码(安装时设置的)
- E、退出登录(断开连接)
- quit或exit
- F、查看版本(连接后可以执行)
- 格式:select version();
- G、显示当前时间(连接后可以执行)
- 格式:select now();
- H、远程连接
- 格式:mysql -h ip地址 -u 用户名 -p
- 输入对方mysql密码
MySQL数据库常用操作
- A、查看数据库
- show databases;
- B、创建数据库
- 格式:create database 数据库名 charset=utf8;
- 示例:create database school charset=utf8;
- 注意编码
- charset=utf8;
- 格式:create database 数据库名 charset=utf8;
- C、删除数据库
- 格式:drop database 数据库名;
- 示例:drop database school;
- 格式:drop database 数据库名;
- D、切换数据库
- 格式:use 数据库名;
- 示例:use school;
- E、查看当前选择的数据库
- 格式:select database();
MySQL数据库表常用操作
- A、查看当前数据库中所有表
- show tables;
- B、创建表
- 格式:create table 表名(列及类型);
- 示例
- create table student(id int auto_increment primary key,name varchar(20) not null, age int not null, gender bit default 1,address varchar(20), isDelete bit default 0);
- 限制
- auto_increment表示自增长
- primary key表示主键
- not null表示不为空
- default 表示 默认值
- C、查看当前数据库下面的表
- show tables;
- D、查看表结构
- 格式:desc 表名;
- 示例:desc student;
- E、查看建表语句
- 格式:show create table 表名;
- 示例:show create table
- F、删除表
- 格式:drop table 表名;
- 示例:drop table students;
- G、重命名表名
- 格式:rename table 原表名 to 新表名;
- 示例:rename table student to students;
- H、修改表结构
-
格式:alter table 表名 add change drop 列名 类型; - 添加字段
- 格式:alter table 表名 add 字段名 字段描述;
- 示例:alter table students add phonenumber varchar(20);
- 修改字段:
- 格式:alter table 表名 change 旧字段名 新字段名 类型;
- 示例:alter table students change phonenumber phonenum varchar(20);
- 删除字段
- 格式:alter table 表名 drop 字段名;
- 示例:alter table students drop phonenum;
- 开发中尽量避免修改已有数据的字段,可以预留一些空的字段,后期添加功能时使用
- 添加字段
-
创建表表的字段类型及约束条件介绍:
1 | |
MySQL数据库表数据常用操作–增、删、改
- A、增
- 全列插入
- 说明:主键列是自动增长,但是在全列插入时需要占位,通常使用0,插入成功以后以实际数据为准
- 格式:insert into 表名 values(值1,值2,值3,…)值和表结构中参数对应
- 示例:insert into students values(0,”东方不败”,18,0,”不详”);
- 缺省插入
- 格式:insert into 表名(字段1,字段2,……) values(值1,值2,…);
- 示例:insert into students(name,age,sex) values(“令狐冲”,16,1);
- 同时插入多条数据
- 格式:insert into 表名 values(值1,值2,…),(值1,值2,…),…;
- 示例:insert into students values(0,”岳不群”,36,1,”华山”),values(0,”任盈盈”,16,0,”.月 神教总部”);
- 全列插入
- B、删
- 格式:delete from 表名 where 条件;
- 示例:delete from students where id=2;
- 注意:没有条件是全部删除,慎用
- C、改
- 格式:update 表名 set 列1=值1,列2=值2,…… where 条件;
- 示例:update students set age=16 where id=7;
- 注意:没有条件是全部列都修改,慎用
MySQL数据库表数据常用操作–查
- 简单查询:
- 说明:查询表中的全部数据
- 格式:select * from 表名;
- 示例:select * from students;
- A、基本语法
- 格式:select 字段1,字段2… from 表名 where 查询条件;
- 说明:
- a、from关键字后面是表名,表示数据来源于这张表
- b、select后面写表中的列名,如果是 (*) 表示在结果集中显示表中的所有列
- c、在select后面的列名部分,可以使用as为烈面起别名,这个别名显示在结果集中
- d、如果要查询多个列,之间使用逗号分隔
- e、查询条件where可以不写,表示查询表中所有符合条件的内容
- 示例:
- select * from students;
- select name, age from students id=1;
- select name as names, age from students;
- 消除重复行
- 在select后面列前面使用distinct可以消除重复的行\
- 示例:
- select distinct gender from students;
- select gender from students;
- B、条件查询
- a、语法
- select * from 表名 where 条件
- b、比较运算符
- 等于 =
- 小于 <
- 大于 >
- 大于等于 >=
- 小于等于 <=
- 不等于 !=或<>
- 需求:查询id值大于8的所有数据
- 示例:select * from students where age>18;
- c、逻辑运算符 * and 并且 * or 或者 * not 非 * 需求:查询id值大于7的女同学 * 示例:select * from students where age>17 and age<20;
- d、模糊查询
- like
- %表示任意多个任意字符
- _表示一个任意字符
- 需求:查询地址在日月神教总部的同学
- 示例:
- select * from students where address like “日%””;
- select * from students where address like “日_”;
- select * from students where address like “%月%”;
- like
- e、范围查询
- in 表示在一个非连续的范围内
- between…and… 表示在一个连续的范围内
- 需求:查询编号为1、3的学生
- 示例:select * from students where id in(1,3);
- 需求:查询编号为1到3的学生
- 示例:select * from students where id between 1 and 5;
- f、空判断
- 注意:null与”“是不同
- 判断空:is null
- 判断非空: is not null
- 需求:查询没有地址的同学
- 示例:select * from students where address is null;
- 需求:查询有地址的同学
- 示例:select * from students where address is not null;
- a、语法
- C、优先级
- 小括号,not 比较运算符,逻辑运算符
- and比or优先级高,如果同时出现并希望先选or,需要结合()来使用
- D、聚合
- 为了快速等到统计数据,提供了5个聚合函数
- a、count( * ) 表示计算总行数,括号中可以写*和列名
- b、max(列) 表示求此列的最大值
- c、min(列) 表示求此列的最小值
- d、sum(列) 表示求此列的和
- e、avg(列) 表示求此列的平均值
- 示例:查询学生总数 * select count(*) from students;
- 示例:查询女生的编号最大值 * select max(id) from students where gender=0;
- 示例:查询女生的编号最小值 * select min(id) from students where gender=0;
- 示例:查询所有学生的年龄和 * select sum(age) from students;
- 示例:查询所有学生的年龄平均值 * select avg(age) from students;
- E、分组
- 语法:select 列1,列2,聚合…… from 表名 group by 列1,列2,列3…;
- 按照字段分组,表示此字段相同的数据会被放到一个集合中。
- 分组后,只能查询出相同的数据列,对于有差异的数据列无法显示在结果集中
- 可以对分组后的数据进行统计,做聚合运算
- 需求:查询某一地址学生总数
- 示例:
- select address,count(*) from students group by address;
- 分组后的数据筛选:
- select 列,聚合…… from 表名 group by 列 having 列=值; * 示例: * select address,count(*) from students group by address having address=”日月神教总部”;
- where与having的区别:
- where是对from后面指定的表进行筛选,属于对原始数据的筛选
- having是对group by的结果进行筛选
- F、排序
-
语法:select * from 表名 order by 列1 asc desc,列2 asc desc…; - 说明:
- a、将数据按照列1进行排序,如果某些列1的值相同,则按照列2进行排序
- b、默认按照从小到大的顺序排序
- c、asc升序
- d、desc降序
- 示例:所有学生按年龄顺序排序/倒序
- select * from students order by age asc;
- select * from students order by age desc;
- 示例:所有学生按年龄顺序排序,年龄相同按照id倒序排序
- select * from students order by age asc,id desc;
-
- G、分页
- 语法:select * from 表名 limit start,count;
- 说明:
- start:索引从start的值位置开始
- count:获取数据数量为count条
- 示例:
- select * from students limit 0,3;
- select * from students limit 3,3;
- select * from students where gender=1 limit 0,3;
- 每页m条数据,获取第n页的数据
- select * from students limit m(n-1), m
- 说明:
- 语法:select * from 表名 limit start,count;
