mysql常见操作语句,建表,增删改查
用户操作
新建用户
grant 权限 on 数据库.表名 to 用户名@'访问地址' identified by "密码";
新建一个可以远程访问数据库的用户 test, 密码:ps12345 并且只赋予查询权限:
grant select on *.* to test@'%' identified by "ps12345";
用户格式: 用户名@'地址' , %表示所有,意思是所有远程主机都可以登录,root默认只能本地登录,可以上面的语句修改
赋予用户权限
指定部分授权
grant insert,update,delete,select on *.* to test@'%';
授权所有权限
grant all privileges on *.* to test@'%';
后面加上 identified by "password" 可以修改密码;
*.* 表示所有数据库的所有表
mysql.* 表示mysql数据库的所有表
mysql.user 表示mysql数据库的user表
撤销权限
revoke update on *.* from test@'%'; (撤销更新数据库的权限)
revoke all on *.* from test@'%'; (撤销所有的权限)
删除用户
drop user test@'%';
查看权限
show grants for test@'%';
数据操作
linux环境运行sql 文件
如 test.sql 文件在/root 目录下
登录mysql之后
source /root/test.sql; #即可导入sql文件内容
新建数据库
creat database database_name default character set utf8 collate utf8_general_ci;
creat database 数据库名 default character set utf8mb4 collate utf8mb4_unicode_ci;
新建表
creat table 表名 {
字段一 类型
字段二 类型
字段三 类型
...
}
增删改查 针对表
增 insert
insert into 表名(字段1,字段2,...)value(值1,值2,...);
insert into 表名(值1,值2,值3);
删 delete
delete from 表名 where 条件 ;不加条件会把表内所有的数据删除
改 update
update 表名 set 字段 = 值 where 条件; 不加条件会更新表内每条数据
查 select
select * from 表名 where 条件; 不加条件会查出表内所有数据
聚合函数
count(*)数据总数,min(字段)最小值,max(字段)最大值 ,sum(字段)字段内容求和,avg(字段)字段内容求平均值
综合性查询,条件查询
group by (字段) 通过字段分组
having
在 SQL 中增加 HAVING 子句原因是,WHERE 关键字无法与合计函数一起使用。
like 模糊查询
select 字段 from 表名 where 字段 like ‘st%’; 查询字段以 'st' 开头的数据
select 字段 from 表名 where 字段 like ‘%st%’; 查询字段包含 'st' 的数据
select 字段 from 表名 where 字段 like ’%st'; 查询字段以st 结尾的数据
特殊字符处理
java开发中,包含 '%' '_' '\' 特殊字符如何处理:
需要用到转义字符 \
% -> \%
_ -> \_
\ -> \\\\
在java中可以如下处理:
/**
* 处理 mysql 模糊查询语句 关键字keywords 包含 % \ _ 特殊字符问题
* @param keywords
* @return
*/
private static synchronized String HandleSqlLikeKey(String keywords) {
keywords = keywords.replaceAll("\\\\", "\\\\\\\\\\\\\\\\"); // \ -> \\\\
keywords = keywords.replaceAll("%", "\\\\%"); // % -> \%
return keywords.replaceAll("_", "\\\\_"); // _ -> \_ }
这里会觉得反斜杠“\"很多,这是因为 \\\\ 经过Java程序读取一次的时候,转义为 \\ ,到了数据库,再一次读取,第二次转义为 \
数据库某条数据的一个字段为 ’eg%cd‘ 如果想通过模糊查询找到(条件,包含%的字段),
那么在java开始接收参数的时候,查询条件的内容就应该是"\\\\%"
经过两次转义 \\\\% 变成 \% 拼接到sql中的样子就是
select * from tableName where value like '%\%%' -- 不转义 sql拼接的结果是
select * from tableName where value like '%%%'
--会出差错 因为前两个%% mysql就读完了 模糊查询
6 函数调用,存储过程
mysql常见操作语句,建表,增删改查的更多相关文章
- mySQL CRUD操作(数据库的增删改查)
一.数据库操作 1.创建数据库 create database 数据库名称 2.删除数据库 drop database 数据库名称 二.表操作 1.创建表 create table 表名 ( ...
- MySql CURD操作(数据的增删改查)
1.增 格式 insert into 表名字 (列名) values(...); 两种方式 1.直接insert into 表名字 values(...); 全部插入 2.insert into ...
- Django框架之第二篇--app注册、静态文件配置、form表单提交、pycharm连接数据库、django使用mysql数据库、表字段的增删改查、表数据的增删改查
本节知识点大致为:静态文件配置.form表单提交数据后端如何获取.request方法.pycharm连接数据库,django使用mysql数据库.表字段的增删改查.表数据的增删改查 一.创建app,创 ...
- Vc数据库编程基础MySql数据库的表增删改查数据
Vc数据库编程基础MySql数据库的表增删改查数据 一丶表操作命令 1.查看表中所有数据 select * from 表名 2.为表中所有的字段添加数据 insert into 表名( 字段1,字段2 ...
- TESTUSERB 仅能对TESTUSERA 用户下的某些表增删改查、有些表仅能对某些列update,查询TESTUSERB 用户权限,获取批量赋予语句。
TESTUSERB 仅能对TESTUSERA 用户下的某些表增删改查.有些表仅能对某些列update,查询TESTUSERB 用户权限,获取批量赋予语句. select 'grant '|| PRIV ...
- 用SpringBoot+MySql+JPA实现对数据库的增删改查和分页
使用SpringBoot+Mysql+JPA实现对数据库的增删改查和分页 JPA是Java Persistence API的简称,中文名Java持久层API,是JDK 5.0注解或XML描述 ...
- Django框架(八)--单表增删改查,在Python脚本中调用Django环境
一.数据库连接配置 如果连接的是pycharm默认的Sqlite,不用改动,使用默认配置即可 如果连接mysql,需要在配置文件中的setting中进行配置: 将DATABASES={} 更新为 DA ...
- Django框架(九)—— 单表增删改查,在Python脚本中调用Django环境
目录 单表增删改查,在Python脚本中调用Django环境 一.数据库连接配置 二.orm创建表和字段 三.单表增删改查 1.增加数据 2.删除数据 3.修改数据 4.查询数据 四.在Python脚 ...
- GZFramwork数据库层《一》普通表增删改查
运行结果: 使用代码生成器(GZCodeGenerate)生成tb_MyUser的Model 生成器源代码下载地址: https://github.com/GarsonZhang/GZCode ...
- GZFramwork数据库层《四》单据主从表增删改查
同GZFramwork数据库层<三>普通主从表增删改查 不同之处在于:实例 修改为: 直接上效果: 本系列项目源码下载地址:https://github.com/GarsonZhang/G ...
随机推荐
- 【jenkins 忘记密码】忘记Jenkins管理员密码的解决办法
一.admin密码未更改情况 1.进入\Jenkins\secrets目录,打开initialAdminPassword文件,复制密码: 2.访问Jenkins页面,输入管理员admin,及刚才的密码 ...
- two sum --无脑法
public class Solution { /* * @param numbers: An array of Integer * @param target: target = numbers[i ...
- Rabbit RPC 代码阅读(一)
前言 因为想对RPC内部的机制作一个了解,特作以下阅读代码日志,以备忘. RPC介绍 Rabbit RPC 原理可以用3点概括: 1.服务端启动并且向注册中心发送服务信息,注册中心收到后会定时监控服务 ...
- .Wait()与.GetAwaiter()之间有什么区别
两者都是同步等待操作的结果差异主要在于处理异常.使用Wait,异常堆栈跟踪不会改变并表示异常时的实际堆栈,因此如果您有一段代码在线程池线程上运行,那么您将拥有类似的堆栈 ThreadPoolThrea ...
- 背水一战 Windows 10 (84) - 用户和账号: 微软账号的登录和注销
[源码下载] 背水一战 Windows 10 (84) - 用户和账号: 微软账号的登录和注销 作者:webabcd 介绍背水一战 Windows 10 之 用户和账号 微软账号的登录和注销 示例演示 ...
- Shell - 简明Shell入门
本文以示例和注释的方式,对Shell编程的基本知识点进行了总结和回顾,所有脚本均已做了基本的调试和验证. Shell - 简明Shell入门 01 - 第一个脚本 脚本的定义.执行方法以及echo命令 ...
- es6中的对象的可计算的属性名
先简单的啰嗦一下对象的属性: var obj = { a:2 } 要访问obj中a的位置,方法:1. obj.a //2 2..obj ["a"] ...
- odoo开发笔记 -- 日常开发注意点总结(持续补充)
(1) odoo视图字段,如果是readonly,默认该数据是不会往后台传递的,因此,保存数据的时候,该字段的数据是不会存到数据库中的.(待确认,字段中增加默认值,保存) (2)视图界面,注释的时候, ...
- JavaScript设计模式----装饰者模式
装饰者模式的定义: 装饰者(decorator)模式能够在不改变对象自身的基础上,在程序运行期间给对像动态的添加职责.与继承相比,装饰者是一种更轻便灵活的做法. 装饰者模式的特点: 可以动态的给某个对 ...
- python学习之切片
所谓切片,其实是列表的部分元素——Python称之为切片.要创建切片,可指定要使用的第一个元素和最后一个元素的索引 . players = ['charles', 'martina', 'michae ...