1.启动和停止服务

一)启动和停止

#启动服务:
$sudo service mysql start
#停止服务:
$sudo service mysql stop

二)创建和选择数据库

【创建数据库】

mysql> create database testdb;
Query OK, row affected (0.01 sec)

mysql> create database testdb default character set 'utf8';
Query OK, 1 row affected (0.00 sec)

status命令查看数据库状态:

mysql> status;
--------------
mysql Ver 14.14 Distrib 5.7., for Linux (i686) using EditLine wrapper Connection id:
Current database:
Current user: root@localhost
SSL: Not in use
Current pager: stdout
Using outfile: ''
Using delimiter: ;
Server version: 5.7. MySQL Community Server (GPL)
Protocol version:
Connection: Localhost via UNIX socket
Server characterset: latin1
Db characterset: latin1
Client characterset: utf8
Conn. characterset: utf8

UNIX socket: /var/run/mysqld/mysqld.sock
Uptime: hours min sec Threads: Questions: Slow queries: Opens: Flush tables: Open tables: Queries per second avg: 0.010

【选择数据库】

mysql> use testdb;
Database changed

【查看当前登录的数据库】

mysql> select database() mydb;
+--------+
| mydb |
+--------+
| testdb |
+--------+
row in set (0.00 sec)
mysql> desc t_users;
+----------+-------------+------+-----+-------------------+----------------+
| Field | Type | Null | Key | Default | Extra |
+----------+-------------+------+-----+-------------------+----------------+
| id | int() | NO | PRI | NULL | auto_increment |
| name | varchar() | NO | | NULL | |
| owner | varchar() | NO | | NULL | |
| descinfo | varchar() | YES | | NULL | |
| sex | char() | NO | | | |
| birth | date | YES | | NULL | |
| death | date | YES | | NULL | |
| addtime | datetime | YES | | CURRENT_TIMESTAMP | |
+----------+-------------+------+-----+-------------------+----------------+
rows in set (0.00 sec)

【删除数据库】

mysql> drop database testdb;
Query OK, rows affected (0.00 sec)

【创建用户和分配权限】

mysql> grant all privileges  on testdb.* to 'test2'@'localhost' identified by '';
Query OK, rows affected, warning (0.00 sec) mysql> flush privileges;
Query OK, rows affected (0.00 sec) mysql> select host,user,authentication_string from user;
+-----------+---------------+-------------------------------------------+
| host | user | authentication_string |
+-----------+---------------+-------------------------------------------+
| % | root | *9AAE89836D1D658A0BED88FEB96A3DFF84C94D77 |
| % | mysql.session | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
| % | mysql.sys | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
| localhost | test | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
| localhost | test2 | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
+-----------+---------------+-------------------------------------------+
rows in set (0.00 sec)

【创建表】

从源文件引入创建:假设有个sql.txt

DROP TABLE IF EXISTS t_users;
create table t_users (
id int() not null auto_increment,
name varchar() not null comment '姓名',
owner varchar() not null,
descinfo varchar(),
sex char() not null default '',
birth date comment '生日',
death date,
addtime datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
primary key (id)
);

然后执行:

mysql> source ./sql.txt;
Query OK, rows affected, warning (0.00 sec) Query OK, rows affected (0.02 sec) mysql> show tables;
+------------------+
| Tables_in_testdb |
+------------------+
| t_users |
+------------------+
row in set (0.00 sec) mysql> desc t_users;
+----------+-------------+------+-----+-------------------+----------------+
| Field | Type | Null | Key | Default | Extra |
+----------+-------------+------+-----+-------------------+----------------+
| id | int() | NO | PRI | NULL | auto_increment |
| name | varchar() | NO | | NULL | |
| owner | varchar() | NO | | NULL | |
| descinfo | varchar() | YES | | NULL | |
| sex | char() | NO | | | |
| birth | date | YES | | NULL | |
| death | date | YES | | NULL | |
| addtime | datetime | YES | | CURRENT_TIMESTAMP | |
+----------+-------------+------+-----+-------------------+----------------+
rows in set (0.00 sec) mysql> insert into t_users (name,owner,descinfo,birth,death) values ('php webs','test webs','test ok next boooks',curdate(),curdate());
Query OK, row affected (0.01 sec) mysql> select t.* from t_users t;
+----+----------+-----------+---------------------+-----+------------+------------+---------------------+
| id | name | owner | descinfo | sex | birth | death | addtime |
+----+----------+-----------+---------------------+-----+------------+------------+---------------------+
| | php webs | test webs | test ok next boooks | | -- | -- | -- :: |
+----+----------+-----------+---------------------+-----+------------+------------+---------------------+
row in set (0.00 sec)

2.删掉时候用别名

delete t from t_users t where t.title='John';

3.查询及排序

默认asc升序 降序desc

SELECT name, birth FROM pet ORDER BY birth

结果:

查询当前时间和mysql版本函数 curdate() 和 current_date:

mysql> select version(),curdate();
+-----------+------------+
| version() | curdate() |
+-----------+------------+
| 5.7. | -- |
+-----------+------------+
row in set (0.00 sec)
mysql> select version(),current_date;
+-----------+--------------+
| version() | current_date |
+-----------+--------------+
| 5.7. | -- |
+-----------+--------------+
row in set (0.00 sec)

now(): 函数查询当前时间

mysql> select version(),now();
+-----------+---------------------+
| version() | now() |
+-----------+---------------------+
| 5.7. | -- :: |
+-----------+---------------------+
row in set (0.00 sec)

TIMESTAMPDIFF (year,birth,curdate()):日期计算使用 函数计算 查询年龄:

mysql> SELECT name, birth, CURDATE(),TIMESTAMPDIFF(YEAR,birth,CURDATE()) AS age FROM pet;

结果:

 is not null 查询不为空的数据:

mysql> select t.* from t_users t where t.title is not null;
+----+------------+--------------+-----------------+
| id | title | author | submission_date |
+----+------------+--------------+-----------------+
| | 学习 PHP | 菜鸟教程 | -- |
| | PHP webs | Doe | -- |
+----+------------+--------------+-----------------+
rows in set (0.00 sec)

day()  和month()函数的使用:查询指定日期的数据:

mysql> select t.* from t_users t where day(t.submission_date)=;
+----+------------+--------------+-----------------+
| id | title | author | submission_date |
+----+------------+--------------+-----------------+
| | 学习 PHP | 菜鸟教程 | -- |
+----+------------+--------------+-----------------+
row in set (0.01 sec) mysql> select t.* from t_users t where month(t.submission_date)=;
+----+------------+--------------+-----------------+
| id | title | author | submission_date |
+----+------------+--------------+-----------------+
| | 学习 PHP | 菜鸟教程 | -- |
| | PHP webs | Doe | -- |
+----+------------+--------------+-----------------+
rows in set (0.00 sec)

mod(n,m) 取余函数的使用

查询下一个月:

mysql> select mod(month(curdate()),)+ as nextmonth;
+-----------+
| nextmonth |
+-----------+
| |
+-----------+
row in set (0.00 sec)

如:想要查询下一个月过生日的人;

mysql> select t.* from t_users where t.month(birth) =  mod(month(curdate()),)+ ;

1 is null 返回false;

1 is not null 返回 true;

mysql> select  is not null;
+---------------+
| is not null |
+---------------+
| |
+---------------+
row in set (0.00 sec)

利用count()函数统计数据 以owner分组 group by

mysql> select owner,count(name) from t_users where name like 'C%' group by owner;
+----------+-------------+
| owner | count(name) |
+----------+-------------+
| C webs | |
| GOGGGOOK | |
| GOOOK | |
+----------+-------------+
rows in set (0.00 sec)

max(col):查询某列的最大值

mysql> select max(id) from t_users;
+---------+
| max(id) |
+---------+
| |
+---------+
row in set (0.00 sec)

【统计每天访问量】

mysql> select t.* from t1 t;
+------+-------+------+
| year | month | day |
+------+-------+------+
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
+------+-------+------+
rows in set (0.01 sec) mysql> select year,month,bit_count(bit_or(<<day)) as days from t1 group by year,month;
+------+-------+------+
| year | month | days |
+------+-------+------+
| | | |
| | | |
+------+-------+------+
rows in set (0.00 sec)

4.Mysql使用正则表达式匹配模糊查询 like的使用

Mysql提供了一个标准的SQL模式匹配,和基于扩展的正则表达式的模式匹配Unix工具(如vi,grep,sed)一样。
SQL模式匹配可以使用:

“_“来匹配任意单个字符,

”%“可以用来匹配任意数量(包含0个字符)的字符。

在MySQL中,SQL模式匹配的大小写默认是不敏感的,以下有一些例子,当你在使用SQL模式时,不要使用=或<>,而是使用LIKE或NOTLIKE。

要找到P%开头的名字:

mysql> select t.* from t_users t where t.title like 'P%'
-> ;
+----+----------+--------+-----------------+
| id | title | author | submission_date |
+----+----------+--------+-----------------+
| | PHP webs | Doe | -- |
+----+----------+--------+-----------------+
row in set (0.00 sec)

查询以%P结尾的名字:

mysql> select t.* from t_users t where t.title like '%PHP';
+----+------------+--------------+-----------------+
| id | title | author | submission_date |
+----+------------+--------------+-----------------+
| | 学习 PHP | 菜鸟教程 | -- |
+----+------------+--------------+-----------------+
row in set (0.00 sec)

使用“_”匹配 4个字符的名字:

mysql> select t.* from t_users t where t.title like '____';
+----+-------+--------+-----------------+
| id | title | author | submission_date |
+----+-------+--------+-----------------+
| | John | Doe | -- |
| | John | Doe | -- |
| | John | Doe | -- |
| | John | Doe | -- |
| | John | Doe | -- |
| | John | Doe | -- |
+----+-------+--------+-----------------+
rows in set (0.00 sec)

5.利用正则表达式REGEXP 和 NOT REGEXP

MySQL提供的其他模式匹配类型是使用扩展的正则表达式,当你使用这个类型来测试一个匹配,
要使用REGEXP和NOT REGEXP操作(或者RLIKE和NOT RLIKE,他们是同意詞)。
下面的列表描述了一些扩展正则表达式的特征:

"."匹配任意单个字符.

[a-z]:单个字符匹配类"[...]"匹配括号里的任意字符,例如,"[abc]"匹配"a","b",或"c",要指定字符范围,可以使用"-",
例如,[a-z] 匹配任意字母,而[0-9]匹配任意数字。

"*" 匹配0个或多个在它前面的东西。例如,"x*" 匹配任意个x字符,"[0-9]*"匹配任意个数字,".*"匹配任意个字符。
一个REGEXP模式匹配成功的条件是,模式在测试值中的任意地方匹配即可。
(这与LIKE模式匹配不同,LIKE模式匹配成功需要匹配整个值)。
"^" 开头作为模式匹配或用
"$" 作为模式的结尾。

为了验证扩展的正则表达式是如何工作的,在这使用REGEXP对前面使用LIKE查询进行重写。

查询以P开头:

mysql> select * from t_users where title regexp '^P';
+----+----------+--------+-----------------+
| id | title | author | submission_date |
+----+----------+--------+-----------------+
| | PHP webs | Doe | -- |
+----+----------+--------+-----------------+
row in set (0.00 sec)

查询以s结尾:

mysql> select * from t_users where title regexp 's$';
+----+----------+--------+-----------------+
| id | title | author | submission_date |
+----+----------+--------+-----------------+
| | PHP webs | Doe | -- |
+----+----------+--------+-----------------+
row in set (0.00 sec)

查询title包含e字符的:

mysql> select * from t_users where title regexp 'e';
+----+------------+----------+-----------------+
| id | title | author | submission_date |
+----+------------+----------+-----------------+
| | PHP webs | Doe | -- |
| | nexJohn | Doe | -- |
| | nexJohn123 | Doe baok | -- |
+----+------------+----------+-----------------+
rows in set (0.00 sec)

利用...匹配查询4个字符的名称:如查询以J开头的 并且是...表示三个字符

如:要找到只包含3个字符的名字,使用“^"和“$"来匹配名字的开头和结尾,且放3个“."在中间

mysql> select * from t_users where title regexp '^J...$';
+----+-------+--------+-----------------+
| id | title | author | submission_date |
+----+-------+--------+-----------------+
| | John | Doe | -- |
| | John | Doe | -- |
| | John | Doe | -- |
| | John | Doe | -- |
| | John | Doe | -- |
| | John | Doe | -- |
+----+-------+--------+-----------------+
rows in set (0.00 sec)

利用{n} ;n表示重复次数来替换上面的语句查询:

mysql> select * from t_users where title regexp '^.{4}$';
+----+-------+--------+-----------------+
| id | title | author | submission_date |
+----+-------+--------+-----------------+
| | John | Doe | -- |
| | John | Doe | -- |
| | John | Doe | -- |
| | John | Doe | -- |
| | John | Doe | -- |
| | John | Doe | -- |
+----+-------+--------+-----------------+
rows in set (0.00 sec)

mysql 5.7 增删改查及别名的用法的更多相关文章

  1. java jdbc 连接mysql数据库 实现增删改查

    好久没有写博文了,写个简单的东西热热身,分享给大家. jdbc相信大家都不陌生,只要是个搞java的,最初接触j2ee的时候都是要学习这么个东西的,谁叫程序得和数据库打交道呢!而jdbc就是和数据库打 ...

  2. shell编程系列22--shell操作数据库实战之shell脚本与MySQL数据库交互(增删改查)

    shell编程系列22--shell操作数据库实战之shell脚本与MySQL数据库交互(增删改查) Shell脚本与MySQL数据库交互(增删改查) # 环境准备:安装mariadb 数据库 [ro ...

  3. 手撸Mysql原生语句--增删改查

    mysql数据库的增删改查有以下的几种的情况, 1.DDL语句 数据库定义语言: 数据库.表.视图.索引.存储过程,例如CREATE DROP ALTER SHOW 2.DML语句 数据库操纵语言: ...

  4. Node 连接Mysql并进行增删改查

    NPM: NPM的全称是Node Package Manager,类似于ruby的gem,Python的PyPL.setuptools,PHP的pear,是Nodejs中的包管理器.Nodejs自身提 ...

  5. 【转载】通过JDBC对MySQL数据库的增删改查

    通过JDBC进行简单的增删改查(以MySQL为例) 目录 前言:什么是JDBC 一.准备工作(一):MySQL安装配置和基础学习 二.准备工作(二):下载数据库对应的jar包并导入 三.JDBC基本操 ...

  6. mysql简单使用增删改查

    修改配置文件 在my.in配置文件 找到client 指的是mysql客户端 port3306 default -charachter-set=utf-8 default -charachter-se ...

  7. java数据库(MySQL)之增删改查

    1.查询数据 先救从简单的来吧,之前我们实现了将数据库表格信息读取到一个List集合中,数据库的查询,实 际上就是对这个集合的查询: public class Show { public static ...

  8. PHP+Mysql 实现数据库增删改查

    PHP和Mysql可以对数据库进行简单的增删改查,本文介绍了新闻列表的后台管理. Mysql数据库创建 创建一个新闻列表的数据库: 1. 查询数据库 1.1. 创建文件dbconfig.php,保存常 ...

  9. SpringBoot+Mybatis+Maven+MySQL逆向工程实现增删改查

    SpringBoot+Mybatis+MySQL+MAVEN逆向工程实现增删改查 这两天简单学习了下SpringBoot,发现这玩意配置起来是真的方便,相比于SpringMVC+Spring的配置简直 ...

随机推荐

  1. [SOJ #538]好数 [CC]FAVNUM(2019-8-6考试)

    题目大意:给定$n$个正整数,求$[l,r]$中第$k$小的”好数“.$l,r\leqslant10^{18},n\leqslant62$,出现的其他数均$\leqslant10^{50}$ 好数定义 ...

  2. 使用Jenkins自带功能(不用shell)构建Docker镜像并推送到远程仓库

    意义: 一开始实现这个目的是在Jenkins中使用的shell脚本,也就是如下的这个: bash # 进入到生成jar包的根目录 cd ${WORKSPACE}/${module_filename} ...

  3. shell 学习笔记9-while/until循环语句

    一.while循环语句 1.循环语句 循环愈久就是重复执行一条指令或一组执行,知道条件不在满足时停止,shell循环语句包括,while.until.for.select语句 2.while循环 主要 ...

  4. WPF 不要给 Window 类设置变换矩阵(应用篇)

    原文:WPF 不要给 Window 类设置变换矩阵(应用篇) WPF 的 Window 类是不允许设置变换矩阵的.不过,总会有小伙伴为了能够设置一下试图绕过一些验证机制. 不要试图绕过,因为你会遇到更 ...

  5. 3.MVC基础-Code First 入门完整实例

    1.添加一个EF的上下文类  EFDbContext public class EFDbContext:DbContext { public EFDbContext() : base("EF ...

  6. [winfrom]C#中使用SendMessage

    在C#中,程序采用了的驱动采用了事件驱动而不是原来的消息驱动,虽然.net框架提供的事件已经十分丰富,但是在以前的系统中定义了丰富的消息对系统的编程提供了方便的实现方法,因此在C#中使用消息有时候还是 ...

  7. MSMQ消息加密

    证书实现非对称加密/解密的代码如下 //非对称加密密钥 static byte[] RSAEncrypt(byte[] enkey, X509Certificate2 Certificate) { R ...

  8. iOS - 编译WebRTC.a静态库

    编译WebRTC.a静态库 编译的方式,我看了几个帖子,什么方法都有,这里我根据我的需求,说说我的做法.我的主要目的是因为网上找不到.a模式的webrtc的静态库,都是framework,所以我才自己 ...

  9. mySql入门-(二)

    最近刚刚开始学习Mysql,然而学习MySql必经的一个过程就是SQL语句,只有按照文档从头开始学习SQL语句.学习的过程是痛苦的,但是学完的成果是甘甜的. SQL 语法 所有的 SQL 语句都以下列 ...

  10. go语言实现分布式id生成器

    本文:https://chai2010.cn/advanced-go-programming-book/ch6-cloud/ch6-01-dist-id.html 分布式id生成器 有时我们需要能够生 ...