2、Mysql 基础操作

1、连接mysql

连接:mysql -uroot -p -P3306 -h 127.0.0.1

\c 退出当前命令

exit 退出mysql

2、数据库管理操作

create database shop charset utf8; //1 创建数据库

show databases; //2 查看库列表

useo shop; //3 使用库

drop database if exists shop;//4 删除

show create database shop;//5 查看库的结构

3、导入外部sql文件

1、创建SQL文件
create database shop charset utf8;
show databases;

2、导入文件
source d:/shop.sql;

4、DBeaver软件的使用

5、创建表

create table class (id int primary key auto_increment,
name varchar(30) not null,
description varchar(10) default null
)charset utf8;
null在PHP是一种数据类型。
null在mysql中就是空,不是数据类型

6、插入数据

insert into class set name='html',description='';  //1 插入单条数据

insert into class(name,description) values('go','不会go你就落伍了'),('jQuery','前端功能都很炫酷'); //2 插入多条数据

7、复制表和数据

create table class1 like class; //1 复制表结构

insert into class1 select * from class; //2 插入其他表的数据

insert into class (name) select name from class;//3 插入其他表指定数据

desc tb_name;//4 查看表结构

show careate table class;//5 查看建表语句

create table a select * from class;//6 创建表并复制全部数据

create table b select name from class;//7 创建表并复制指定数据

实例:创建学生表student只需要sname字段 b表的字段名是name 这里需要用到起别名
create table student (
id int primary key auto_increment,sname varchar(30)
) select name as
sname
from class;
//起的别名和新表的字段名称一样


8、基本查询

select id from emp;

9、基本条件筛选

1)模糊查询 like

实际业务中会使用第三方的搜索,包括云主机的搜索,功能比较强悍,可以帮助我们分析里面的恶意关键字。

1、查询简介中包含 p 的
select * from class where description like '%p%';

2、查询简介中 不包含 p 的
select * from class where description not like '%p%';

2)多个列的结果合并返回 (连接函数concat())

select concat(name,description)as class_info from class;
+--------------------------------+
| class_info
+--------------------------------+
| php学习PHP来后盾人   
| php学习PHP来后盾人   
| php学习PHP来后盾人    
| java学Java工资就是高  
| go不会go你就落伍了     
| jQuery前端功能都很炫酷 
| html
| NULL
+--------------------------------+

10、查询基本关联字使用

//1 新建练习表
create table student(
id int primary key auto_increment,
name varchar(15),
class_id int default null,
age smallint not null
);
insert into student(name,class_id,age)values('小明',1,20),('小明',2,32),('李四',3,null),('小刘',null,20);
and = between and
select * from student where age between 20 and 40;//找出年龄在20-40之间

or = in
select * from student where class_id in(2,3);//找出在2班或3班的同学

not
select * from student where age not between 20 and 40;//找出年龄不在20-40之间

11、mysql 对 null 的处理

is null 找null

is not null 找非null

//1 找出哪些同学没有班级
select * from student where class_id = null; //错误的 因为null 不能用 等号比较
select * from student where class_id is null; //正确的

  +----+--------+----------+-----+
  | id |   name | class_id | age |
  +----+--------+----------+-----+
  | 4  |   小刘  |   NULL   | 20  |
  +----+--------+----------+-----+


//2 哪些同学是有班级的
select * from student where class_id is not null; //非空

+----+--------+----------+-----+
| id | name | class_id | age |
+----+--------+----------+-----+
| 1 | 小明 | 1 | 20 |
| 2 | 小明 | 2 | 32 |
| 3 | 李四 | 3 | 0  |
+----+--------+----------+-----+

 

//if三元运算 和 ifnull()函数

select name,if(class_id,class_id,'未分配')as '班级编号' from student;//三元运算实现

select name,ifnull(class_id,'未分配') from student;//ifnull()函数实现

+--------+--------------+
|  name  | 班级编号 |
+--------+--------------+
|  小明   |   1   |
|  小明   |   2   |
|  李四   |   3   |
|  小刘   | 未分配 |
+--------+--------------+

12、排序的使用

select * from student order by class_id desc,age asc;//可以多个字段参与排序 第一个字段优先级最高

13、增删改

//1 增加一条记录
insert into student set name='刘备',class_id=5,age=99;

//2 我们删除最后报名的两个同学删除
delete from student order by id desc limit 2;

 

posted @ 2020-12-02 09:11  棉花糖88  阅读(57)  评论(0)    收藏  举报