创建表格  

先判断users表是否存在,然后设置user_id为无符号(UNSIGNED)自动增长(AUTO_INCREMENT)的整型

并通过PRIMARY KEY设置user_id为主键

ENGINE是指存储引擎为INNODB

CHARSET是指编码格式为utf-8

CREATE TABLE
IF NOT EXISTS `users` (
`user_id` INT UNSIGNED AUTO_INCREMENT,
`user_password` VARCHAR (100) NOT NULL,
PRIMARY KEY (`user_id`)
) ENGINE = INNODB DEFAULT CHARSET = utf8

删除表格

DROP TABLE `users`

插入数据:由于user_id是自增的,所以给定值是0,给其他值会赋值上去

字符串的值必须要加上单引号或者双引号

INSERT INTO `users`(`user_id`,`user_password`) VALUES(0,'nihao')

查询数据:条件user_id<20,查询结果如下图

SELECT * from `users` where `user_id`<20

BINARY的使用:

查询时在where后面使用BINARY可以区分字母大小写,否则不区分

select * from `users` where BINARY `user_password`='Nihao';
select * from `users` where `user_password`='Nihao'

LIMIT的使用:

第一条语句:查询使用LIMIT 2时相当于获取两条数据,

第二条语句:使用LIMIT 1,2时相当于在第一条数据之后开始获取两条数据

第三条语句:LIMIT 1 OFFSET 2相当于从第二条数据之后开始获取一条数据,注意与第二条语句是相反的

select * from `users` where `user_password`='Nihao' LIMIT 2;
select * from `users` where `user_password`='Nihao' LIMIT 1,2;
SELECT * from `users` LIMIT 1 OFFSET 2

使用LIke查询:

%指代在这个字符前所有的字符,_指代单个字符

SELECT * from users where user_password LIKE '%明';
SELECT * from users where user_password LIKE '刘%';
SELECT * from users where user_password LIKE '%德%';
SELECT * from users where user_password LIKE '_明';

UNION的使用:

UNION:将不同表的相同列的相同值展示出来(不包含重复数据)

UNION  ALL:将不同表的相同列的相同值展示出来(包含重复数据)

distinct:可以去除重复数据

SELECT class_id from users where user_password LIKE '%明'
UNION SELECT class_id from classes;
SELECT class_id from users where user_password LIKE '%明'
UNION all SELECT class_id from classes;

查询语句排序:根据order by 后面的字段进行排列,默认asc(升序),而desc是降序

SELECT * from classes ORDER BY class_name desc;

转码:

如果字符集采用utf8的编码格式,想要用拼音排序,先要转码

SELECT * from classes ORDER BY CONVERT(class_name using gbk) desc;

GROUP BY:分组查询

select count(*) from users;
select class_id,count(*) from users GROUP BY class_id;

 with rollup:可以将group by的值最后再统计一遍

 coalesce:如果括号内第一个值为空,后面的值会替代前面的值

select COALESCE(class_id,'总数') as '班级ID',count(*) as '人数'  from users GROUP BY class_id WITH ROLLUP;

 空值处理:

SELECT * from users where class_id is null;
select * from users where class_id is not null;
SELECT *,IFNULL(class_id,4) as '其他' from users;下图是查询出来的结果class_id和其他是同一个项,不同的处理方式,用4代替空值

正则表达式的使用

SELECT * from users where user_password REGEXP '^武';#^查找以武开头的所有数据#
SELECT * from users where user_password REGEXP '易$';#$查找以易结尾的所有数据#
SELECT * from users where user_password REGEXP '苏';#包含苏的所有数据
SELECT * from users where user_password REGEXP '王.';#放在后面就是匹配前面的字符,放在前面就是匹配后面的字符,如王维,用'.维'或'王.'
SELECT * from users where class_id REGEXP '[12]';#包含在[]内的单个字符,中文会出现问题
SELECT * from users where user_password REGEXP '[^苏轼的]';#[^]查找不包含在[]里的字符
SELECT * from users where user_password regexp '武*';#和前面的匹配包含所有数据类似,包括空字符
select * from users where user_password REGEXP '武+';#不包括空字符
select * from users where user_password REGEXP '武?';#*+?类似,后续还待研究
select * from users where user_password REGEXP '白|刘';#匹配多个值

返回值是是否有匹配的,即bool值

SELECT 'asssssas' REGEXP 'as{2}';#正则表达式的{}表示匹配2个s
SELECT 'asssssas' REGEXP 'as{2,}';#正则表达式的{}表示匹配2个s到无数个s
SELECT 'asssssas' REGEXP 'as{2,4}';#正则表达式的{}表示匹配2个s到4个s
SELECT 'asssssas' REGEXP 'a(ss)*';#括号内作为一个整体去匹配

 MySql的执行顺序

  1. FROM, including JOINs
  2. WHERE
  3. GROUP BY
  4. HAVING
  5. WINDOW functions
  6. SELECT
  7. DISTINCT
  8. UNION
  9. ORDER BY
  10. LIMIT and OFFSET

更新语句:使用replace可以批量更改数据

 UPDATE users SET user_password='李白' where user_id=20;
UPDATE users set user_password=REPLACE(user_password,'nihao','刘德华');
SELECT * from users;

删除语句:

delete是DML支持回滚,

truncate和drop是DDL语言不支持回滚

delete  from users where user_id=20;

2021-7-29 MySql的简单使用的更多相关文章

  1. jsp+servlet+mysql 实现简单的银行登录转账功能

    jsp+servlet+mysql 实现简单的银行登录转账功能 [前期的准备] html(登录界面),servlet(处理业务逻辑),jsp(主要实现界面),mysql(实现与数据库的简单的交互)先从 ...

  2. Ubuntu 安装mysql和简单操作

    http://www.cnblogs.com/zhuyp1015/p/3561470.html ubuntu上安装mysql非常简单只需要几条命令就可以完成. 1. sudo apt-get inst ...

  3. mysql定时任务简单例子

    mysql定时任务简单例子 ? 1 2 3 4 5 6 7 8 9     如果要每30秒执行以下语句:   [sql] update userinfo set endtime = now() WHE ...

  4. Mysql的简单使用(三)

    接上文Mysql的简单使用(二) mysql中结构相同的两个表进行合并:(注意需要两个表的结构是一样的) 有如下结构的两个表father和person. 合并的步骤为: 1.把person表和fath ...

  5. PHP 17: MySQL的简单介绍

    原文:PHP 17: MySQL的简单介绍 这一章将简单介绍MySQL的基本知识. 本文来自http://lib.hackbase.com/html/8/35125.htm. MySQL是最受欢迎的开 ...

  6. MySQL的简单使用-(一)

    MySQL的简单使用 使用MySQL命令行工具 Windows 用户使用: MySQL Client, 输入密码 Linux: mysql -u用户名 -p密码 mysql -uroot -p 显示数 ...

  7. mysql安装简单教程(自动安装/配置安装)

    mysql安装简单教程(自动安装/配置安装) 1.1前言: 由于特殊原因,在最近2-3个月里mysql真是安装了无数遍,每次安装都要上网找教程,每个教程基本都不一样,因此还是自己写下来比较好,毕竟自己 ...

  8. python操作三大主流数据库(2)python操作mysql②python对mysql进行简单的增删改查

    python操作mysql②python对mysql进行简单的增删改查 1.设计mysql的数据库和表 id:新闻的唯一标示 title:新闻的标题 content:新闻的内容 created_at: ...

  9. 29.Mysql监控

    29.Mysql监控29.1 如何选择一个监控方案 29.1.1 选择何种监控方式 29.1.2 如何选择合适自己的监控工具29.2 常用网络监控工具 29.2.1 Cacti简介 29.2.2 Na ...

  10. Linux下MySQL的简单操作

    Linux下MySQL的简单操作 更改mysql数据库root的密码 首次进入数据库是不用密码的: [root@localhost ~]# /usr/local/mysql/bin/mysql -ur ...

随机推荐

  1. iOS APP启动广告实现方式 与 APP唤端调用

    APP启动广告功能实现要从2个方面思考 一是UI方案,怎样处理广告页与主页之间的切换方式. 二是广告页展示时机,是使用后台实时广告数据还是使用本地缓存广告数据.后台数据方式获取广告最新但是用户要等待后 ...

  2. [Pytorch框架] 4.1 Fine tuning 模型微调

    文章目录 4.1 Fine tuning 模型微调 4.1.1 什么是微调 为什么要微调 迁移学习 Transfer Learning 二者关系 4.1.2 如何微调 4.1.3 注意事项 4.1.3 ...

  3. Hugging News #0428: HuggingChat 来啦

    每一周,我们的同事都会向社区的成员们发布一些关于 Hugging Face 相关的更新,包括我们的产品和平台更新.社区活动.学习资源和内容更新.开源库和模型更新等,我们将其称之为「Hugging Ne ...

  4. nuxt.js项目中全局捕获异常并生成错误日志全过程

    需求:客户在使用过程中页面报错时,可以生成错误记录传回服务器,以便改进. 步骤: 一.全局捕获异常, 二.发送到服务端, 三.生成错误日志. 一.全局捕获异常 如图,vue提供了errorHandle ...

  5. 从原理到应用,人人都懂的ChatGPT指南

    作者:京东科技 何雨航 引言 如何充分发挥ChatGPT潜能,已是众多企业关注的焦点.但是,这种变化对员工来说未必是好事情.IBM计划用AI替代7800个工作岗位,游戏公司使用MidJourney削减 ...

  6. 2023-01-12:一个n*n的二维数组中,只有0和1两种值, 当你决定在某个位置操作一次, 那么该位置的行和列整体都会变成1,不管之前是什么状态。 返回让所有值全变成1,最少的操作次数。 1 <

    2023-01-12:一个n*n的二维数组中,只有0和1两种值, 当你决定在某个位置操作一次, 那么该位置的行和列整体都会变成1,不管之前是什么状态. 返回让所有值全变成1,最少的操作次数. 1 &l ...

  7. 2022-07-26:以下go语言代码输出什么?A:5;B:hello;C:编译错误;D:运行错误。 package main import ( “fmt“ ) type integer in

    2022-07-26:以下go语言代码输出什么?A:5:B:hello:C:编译错误:D:运行错误. package main import ( "fmt" ) type inte ...

  8. 2021-10-12:验证回文串。给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。说明:本题中,我们将空字符串定义为有效的回文串 。输入: “A man, a plan

    2021-10-12:验证回文串.给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写.说明:本题中,我们将空字符串定义为有效的回文串 .输入: "A man, a ...

  9. postman接口关联1

    1.接口关联 在接口测试中,经常会遇到后一接口的请求数据需要用到前一接口响应数据 关联接口:简单描述就是一个接口的返回结果作为另一个接口入参,其中最典型的就是需要登录token验证的接口,需要先调用登 ...

  10. SqlServer 设置用户只能访问特定表、特定数据库

    设置用户只能访问特定表.特定数据库 一.只能访问特定数据库 1.[安全性]-[登录名]右击用户.打开属性,选择用户映射,勾选特定数据库 2. 如果 服务器角色 勾选了 [查看任意数据库],那么登录后会 ...