Java基础前端学习

mysql常见操作合集

2020-08-04  本文已影响0人  小盐_814e

mysql数据库常见操作合集

显示所有数据库

show databases

创建新数据库

create database db1;

判断是否有已存在,如不存在创建新数据库

create database if not exists db1;

创建数据库指派字符编码

create database db3 character set gbk;

查询某个数据库的字符集;查询某个数据库的创建语句

 show create database db3;

修改数据库的字符集

alter database db1 character set gbk;

删除数据库

drop database db1;

验证是否存在如存在就删除

drop database if exists db1;

查询当前正在使用的数据库名称

select database();

选择正在使用的数据库

use db3;

数据库表的常见CRUD操作

查询数据库中所有表的名称

show tables;

查询表结构

desc tableName;

创建数据表

create table 表名(
列名1 数据类型1,
列名2 数据类型2,
....
列名n 数据类型n
);

示例

create table student(
   id int,
   name varchar(32),
   age int,
   score double(4,1),
   birthday date,
   insert_time timestamp
);

mysql数据库类型

https://www.cnblogs.com/-xlp/p/8617760.html

复制表

create table 表名 like 被复制表名;

删除表
drop table 表名;
drop table if exists 表名;

修改表名

alter table 表名 rename to 新的表名;

修改表的字符集

alter table 表名 character set utf8;

添加一列

alter table 表名 add 列名 数据类型;

修改列名称类型

alter table 表名 change 列名 新列名 数据类型

修改列类型

alter table 表名 modify sex varchar(10);

删除列

alter table 表名 drop 列名;

增删改表中数据#

增加数据

insert into 表名(列名1,列名2,...列名n) values( 值1,值2,...值n);

不写列名默认给所有列加值

insert into 表名(列名1,列名2,...列名n) values( 值1,值2,...值n);

注意除了数字其他类型需要引号

删除数据,如果不加条件则删除表中所有数据

delete from 表名 [where 条件]
例 delete from stu where id=1;

删除表,然后再创建一个一摸一样的空表

TRUNCATE TABLE 表名  --推荐使用,效率更高
delete from 表名 --不推荐使用有多少条记录就会删除多少次

修改数据

update 表名 set 列名1=值1,列名2=值2,...[where 条件]
例 update stu set age=117 where id=3;
如果不添加条件则会把表中所有数据全部修改

查询表中的记录

select * from 表名;

1,语法

select 
  字段列表
from
  表名列表
where
  条件列表
group by
  分组字段
having
  分组之后的条件
order by
  排序
limit
  分页限定

2,基础查询

1.多个字段的查询

去除重复的结果

SELECT DISTINCT 列名 FROM 表名

计算math和english分数之和

SELECT math,english,math+english FROM 表名
--如果有null参与计算结果都为null
SELECT name,waybill_prefix,waybill_prefix1 ,waybill_prefix + IFNULL(waybill_prefix1,0) FROM dkd_airline 
--起别名 as 可以省略
SELECT name,waybill_prefix,waybill_prefix1 ,waybill_prefix + IFNULL(waybill_prefix1,0) as 总分 FROM dkd_airline 

SELECT name,waybill_prefix 数学,waybill_prefix1 英语,waybill_prefix + IFNULL(waybill_prefix1,0) AS 总分 FROM dkd_airline

2.条件查询

1,where子句后跟条件
2,运算符

* > | < | <= | >= |= | <>
* between...and
* in
* like:模糊查询
    * 占位符:
    * _:单个任意字符
    * %:任意多个字符
* is null

* and 或 &&
* or 或 ||
* not 或 !

例子

SELECT * FROM dkd_airline WHERE CODE>5
---大于20小于30
SELECT * FROM dkd_airline WHERE CODE>=20 && CODE>=30;
SELECT * FROM dkd_airline WHERE CODE>=20 AND CODE>=30;
SELECT * FROM dkd_airline WHERE CODE BETWEEN 20 AND 30;
--查询22,18或25的消息
SELECT * FROM dkd_airline WHERE CODE=22 OR CODE=18 OR CODE=25;
SELECT * FROM dkd_airline WHERE CODE IN(22,18,25);
--null不能用=或(!=)判断
SELECT * FROM dkd_airline WHERE waybill_prefix IS (NOT) NULL

like例子

-- 查询第一个字是华的人
SELECT * FROM dkd_airline WHERE name LIKE '华%'
-- 查询第二个字是海的人
SELECT * FROM dkd_airline WHERE name LIKE '_海%';
-- 查询姓名是三个字
SELECT * FROM dkd_airline WHERE name LIKE '___';
-- 查询名称中包含海的
SELECT * FROM dkd_airline WHERE name LIKE '%海%';

查询语句:

1,排序查询

语法:order by 子句
order by 排序字段1 排序方式1,排序字段2 排序方式2
排序方式
ASC:升序,默认的
DESC:降序

例子
--按照数学升级降序
SELECT * FROM dkd_airline ORDER BY `math` DESC;

--按照数学降序如果数学一样则英语降序
SELECT * FROM dkd_airline ORDER BY `math` DESC;

如果多个排序条件,只有前面条件值一样时,才会判断第二个条件

2,聚合函数:将一列数据作为一个整体,进行纵向的计算

1. count:计算个数
    -一般选择非空的列:主键
    -count(*)
2. max:计算最大值
3. min:计算最小值
4. sum:计算和
5. avg:计算平均值

*注意聚合的计算排除null值

SELECT COUNT(IFNULL(math,0)) FROM dkd_airline;

解决方案

1. 选择不包含非空的列进行计算
2. IFNULL函数

3,分页查询

4, 分页查询

  1. 语法:limit开始的索引,每页查询的条数;
例子
--公式 ,开始的索引=(当前的页码-1)*每页显示的条数
SELECT* FROM dkd_flight LIMIT 0,3;

limit是一个mysql方言

上一篇 下一篇

猜你喜欢

热点阅读