mysql 增删改查常用命令 收藏
MySQL:众多关系型数据库中的一种
仓库 --数据库
箱子 --表
数据库:
进入mysql 命令行: mysql -uroot -p
查看所有数据库: show databases;
创建数据库: create database niu charset utf8;
删除数据库: drop database niu;
选择数据库: use databases;
查看所有表: show tables;
查看创建数据库的语句:show create database databasename;
查看创建表的语句:show create table tablename;
查看表结构:desc tablenmae;
表:
约束
#自增长 auto_increment
#非空 not null
#默认值 default 'xx'
#唯一 unique
#指定字符集 charset
#主键 primary key
#外键 增加两个表之间的联系
#学生表
create table students(
id int auto_increment primary key,
name varchar(10) not null,
sex varchar(3) default '女',
address varchar(50),
phone int not null unique,
age,
);
#成绩表
create table scores(
id int auto_increnent primary key,
s_id int not null,
grade float not null,
);
删:
drop table tablename;
truncate tablename;#快速删除表
改:
alter table oldtable rename newtable; #改表名
alter table tablename modify name varchar(20);#改表结构
alter table tablename change name newname varchar(20);#改表结构
alter table tablename add age float after name;#新增字段的位置
查:
show create table tablename ;#查看新建表语句
desc table;#查看表结构
show tables ;#查看所有表
数据:
增
insert into student (name,money,sex,phone) values ('hk',10000,'男',188);
insert into student values('','小明',100,'',120);
删
turncate tablename; #删除整表数据,自增长id从头再来,快速,从磁盘直接删除,不可恢复
delete from student;
#删除整个表的数据,自增长继续
改
update student set money=100;#不指定条件,修改所有
update student set money=110 where name='hk';#只改hk
自动提交
取消自动提交 set @@autocommitt=0;
select @@autocommitt=0;
#自动提交取消后,当前会话显示已经成功执行,其实后台并没有执行
查:
select * from students limit 1,5; #从第几条开始,下面的x条,不包含开始的那一条
SELECT * from students limit 5;查询5条
SELECT id,stu_name,sex,money,phone from students;#指定查询的字段
SELECT * from students;#查询所有的数据
SELECT * from students where sex='男';#指定条件
SELECT * from students where sex='男' and money>100; #多个条件,必须同时满足
SELECT * from students where sex='男' or sex='未知' ; #多个条件,有一个满足即可
SELECT * from students where sex !='男'; #<>也是不等于
SELECT * FROM students where addr like '%东京%';#模糊匹配,%代表的是通配符,必须得用like
SELECT * from students a where a.stu_name like '姚_';#_通配符表示任意一个单字符,姚字后面只能跟一个字
SELECT a.stu_name '学生名称',a.phone '学生电话' from students as a where a.stu_name='姚远';#给表起别名,as可以省略
SELECT * from students a where a.stu_name in ('牛牛','林倩','林远');# in
SELECT * from students a where a.money BETWEEN 1000 and 10000;#在什么什么之间的数据
SELECT * from students ORDER BY money desc;
#order by xxx desc,根据哪个字段继续排序,默认是升序,
降序是desc,升序asc
SELECT * from students a where a.addr = '' or a.addr is null; #查询字段为空的数据
SELECT DISTINCT a.money from students a ;#去重
SELECT COUNT(*) '学生人数' from students where sex='女'; #统计行数
SELECT MAX(a.money) 钱最多 from students a; #最大值
SELECT min(money) 钱最少 from students;#最小值
SELECT AVG(a.money) 平均多少钱 from students a; #平均数
SELECT sum(a.money) 总共多少钱 from students a;#总和
SELECT sex 性别,count(*) 人数 from students GROUP BY sex; #分组
SELECT
sex 性别,
count(*) 人数,
a.stu_name 名字
FROM
students a WHERE a.money > 300 GROUP BY a.id HAVING a.stu_name LIKE '姚%';
#如果group by后面有条件的话,必须得用having子句,having子句里面用到的字段必须出现在select后面,如果group by和order by一起用的话,order by必须写在group by后面
SELECT *,COUNT(*) from students GROUP BY sex,class; #多个字段进行分组
SELECT id,stu_name from students UNION SELECT id,t_name from teacher;
#用来合并两条select语句的结果,两条select语句字段数量要一致,并且数据类型也要一致
union和union all的区别就是一个会去重一个不会
多表关联:
SELECT * FROM USER a, accounts b WHERE
a.id = b.user_id
AND a.username = 'niuhy';
-- SELECT * from students a ,scores b where a.id=b.s_id; -- 多表关联
-- 两个表里面都存在的数据查出来
SELECT * from students a LEFT JOIN scores b on a.id=b.s_id;
-- LEFT JOIN会把左边表所有的数据都查出来,右边表有匹配的就查出来
SELECT * from students a RIGHT JOIN scores b on a.id=b.s_id;
-- RIGHT JOIN会把右边表所有的数据都查出来,左边表有匹配的就查出来
SELECT * from students a inner JOIN scores b on a.id=b.s_id;
-- INNER JOIN两边表里都匹配的数据才查到
子查询:
把一条sql的结果,作为另一条sql的条件
SELECT * from scores a where a.s_id = (SELECT id from students where stu_name='牛牛');
把子查询当成一个表
SELECT
a.grade 成绩,
b.stu_name 学生名称,
b.id 学号
FROM
scores a,
( SELECT id,stu_name FROM students WHERE stu_name = '牛牛') b
WHERE
a.s_id = b.id;
数据库权限:
mysql数据的权限实质上都是在user表里控制的
1、grant
#所有的权限 所有数据库下面的所有表 用户 用户ip
grant all on *.* to 'andashu'@'localhost' IDENTIFIED BY '123456' with grant option;
密码 #有执行grant语句的权限
grant all on *.* to 'andashu'@'%' IDENTIFIED BY '123456' with grant option;
取消授权:
Revoke select on *.* from dba@localhost;
Revoke all on *.* from andashu@localhost;
2、修改user表的数据
对user表进行增加、修改和删除
flush privileges;#刷新权限
备份数据库:
mysqldump -uroot -p123456 db > db.sql
mysqldump -uroot -p123456 -A > all.sql
恢复数据:
mysql -uroot -p123456 db < db.sql
存储过程:
批量的造数据
delimiter $$; #为了改结束符
CREATE PROCEDURE big_data1(num int)#代表要造多少条数据 100
BEGIN
DECLARE i int;
set i=0;
WHILE i<num do
insert into students (stu_name,money) VALUES (CONCAT('小明',i),20000);
#CONCAT的作用是连接不同类型的数据
#把字符串和数字拼接到一起
set i=i+1;
end WHILE;
End
$$;
delimiter;
call big_data1(500); #调用
mysql 增删改查常用命令 收藏相关推荐
- mysql增删改查常用命令
-- 创建数据库用户 create user 'test'@'%' identified by '123qqq...A'; -- 授权所有库只读权限 grant select on *.* to 't ...
- MySQL增删改查常用语句命令
2017/11/01 | 未分类 |songjian| 1 条评论 | 1818 views MySQL关系型数据库RDS中的老大哥,增删改查是MySQL入门的基础,数据库吧来说说MySQL数据 ...
- MySQL 学习二:高手必备!MySQL 增删改查高级命令大全硬核总结!
文章目录 前言 一.连接到 MySQL 数据库 1.1.连接到本机上的 MySQL 1.2.连接到远程主机上的 MySQL 二.退出 MySQL 命令 三.修改 MySQL 密码 3.1.先给 roo ...
- 【Linux系统】第5节 Linux增删改查常用命令及查看命令字帮助手册
目录 1 常用命令 1.1 查询 1.1.1 ls命令 1.1.2 cat命令 1.1.3 du命令 1.2 创建 1.2.1 touch命令 1.2.2 echo命令 1.2.3 mkdir命令 1 ...
- mysql增删改查的命令_MySql增删改查命令
5.1 创建数据表 命令:create table ( [,.. ]); 例如,建立一个名为MyClass的表, 字段名 数字类型 数据宽度 是否为空 是否主键 自动增加 默认值 id int 4 否 ...
- MySQL数据库增删改查常用语句详解
MySQL数据库增删改查常用语句详解 一 MySQL数据库表结构 1.1 常见数据类型 1.2 常用约束类型 1.3 MySQL存储引擎 二 DDL语句:数据定义语句 2.1 修改数据库密码 2.1. ...
- 运维之道 | MySQL增删改查插入必会命令大全
MySQL增删改查插入必会命令大全 基本命令 1.登录mysql [root@localhost ~]# mysql -u root -p 2.查询当前所存在的库 MariaDB [(none)]&g ...
- mysql增删改查,连表,排序,等
(mysql增删改查,连表,排序,等,)–教学来自(bilibili狂神!)(笔记是自己学习过程中纯手写,由于是直接复制笔记,有些可以忽略) (学习方法"先理解,在敲一遍"之后复习 ...
- 二进制安装mysql及MySQL增删改查
二进制安装mysql及MySQL增删改查 1. MySQL简介 2. MySQL的特点 3. 数据库在 Web 开发中的重要地位 4. 安装MySQL 4.1 首先需要下载MySQL的包 4.3 解决 ...
最新文章
- AI产业链分布图曝光:1040个玩家,BAT率先步入应用
- docker安装gamit_Gamit-Globk完整安装攻略
- HoloLens开发手记 - HoloLens shell概述 HoloLens shell overview
- 《Java程序设计》学期总结
- find_cmd函数分析
- python中的zip模块
- 做可交互的统计图表,这套图形语法不容错过
- 【写作技巧】如何写开题报告?
- Android 黑色样式menu
- 数学建模 —— 预测模型
- php文件如何转换成mp4,qlv文件如何转换成mp4 怎样把下载好的qlv格式视频转换成MP4格式...
- cadence、PADS、protel教程(PCB Layout图文教程终结版)
- 千呼万唤始出来,犹抱琵琶半遮面,揭开ArrayList的扩容机制的神秘面纱
- ZooKeeper客户端Curator的基本使用
- 1.4、云计算HCIA虚拟化存储基础知识
- Android 调用系统相册选取视频,过滤视频(兼容小米)
- qq宠物html代码,QQ企鹅即将消失,那个被我们所遗忘的宠物,终于要给大家说再见了...
- Virgin Voyages将提供按需香槟配送服务“Shake for Champagne™”
- 2019企业发布会最新震撼大气开场舞蹈 《全息未来已来》全息投影舞蹈 创意3D科技互动视频秀 企业舞蹈编排
- 《赢》--[美]杰克·韦尔奇