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 增删改查常用命令 收藏相关推荐

  1. mysql增删改查常用命令

    -- 创建数据库用户 create user 'test'@'%' identified by '123qqq...A'; -- 授权所有库只读权限 grant select on *.* to 't ...

  2. MySQL增删改查常用语句命令

    2017/11/01 |  未分类 |songjian|  1 条评论 |  1818 views MySQL关系型数据库RDS中的老大哥,增删改查是MySQL入门的基础,数据库吧来说说MySQL数据 ...

  3. MySQL 学习二:高手必备!MySQL 增删改查高级命令大全硬核总结!

    文章目录 前言 一.连接到 MySQL 数据库 1.1.连接到本机上的 MySQL 1.2.连接到远程主机上的 MySQL 二.退出 MySQL 命令 三.修改 MySQL 密码 3.1.先给 roo ...

  4. 【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 ...

  5. mysql增删改查的命令_MySql增删改查命令

    5.1 创建数据表 命令:create table ( [,.. ]); 例如,建立一个名为MyClass的表, 字段名 数字类型 数据宽度 是否为空 是否主键 自动增加 默认值 id int 4 否 ...

  6. MySQL数据库增删改查常用语句详解

    MySQL数据库增删改查常用语句详解 一 MySQL数据库表结构 1.1 常见数据类型 1.2 常用约束类型 1.3 MySQL存储引擎 二 DDL语句:数据定义语句 2.1 修改数据库密码 2.1. ...

  7. 运维之道 | MySQL增删改查插入必会命令大全

    MySQL增删改查插入必会命令大全 基本命令 1.登录mysql [root@localhost ~]# mysql -u root -p 2.查询当前所存在的库 MariaDB [(none)]&g ...

  8. mysql增删改查,连表,排序,等

    (mysql增删改查,连表,排序,等,)–教学来自(bilibili狂神!)(笔记是自己学习过程中纯手写,由于是直接复制笔记,有些可以忽略) (学习方法"先理解,在敲一遍"之后复习 ...

  9. 二进制安装mysql及MySQL增删改查

    二进制安装mysql及MySQL增删改查 1. MySQL简介 2. MySQL的特点 3. 数据库在 Web 开发中的重要地位 4. 安装MySQL 4.1 首先需要下载MySQL的包 4.3 解决 ...

最新文章

  1. AI产业链分布图曝光:1040个玩家,BAT率先步入应用
  2. docker安装gamit_Gamit-Globk完整安装攻略
  3. HoloLens开发手记 - HoloLens shell概述 HoloLens shell overview
  4. 《Java程序设计》学期总结
  5. find_cmd函数分析
  6. python中的zip模块
  7. 做可交互的统计图表,这套图形语法不容错过
  8. 【写作技巧】如何写开题报告?
  9. Android 黑色样式menu
  10. 数学建模 —— 预测模型
  11. php文件如何转换成mp4,qlv文件如何转换成mp4 怎样把下载好的qlv格式视频转换成MP4格式...
  12. cadence、PADS、protel教程(PCB Layout图文教程终结版)
  13. 千呼万唤始出来,犹抱琵琶半遮面,揭开ArrayList的扩容机制的神秘面纱
  14. ZooKeeper客户端Curator的基本使用
  15. 1.4、云计算HCIA虚拟化存储基础知识
  16. Android 调用系统相册选取视频,过滤视频(兼容小米)
  17. qq宠物html代码,QQ企鹅即将消失,那个被我们所遗忘的宠物,终于要给大家说再见了...
  18. Virgin Voyages将提供按需香槟配送服务“Shake for Champagne™”
  19. 2019企业发布会最新震撼大气开场舞蹈 《全息未来已来》全息投影舞蹈 创意3D科技互动视频秀 企业舞蹈编排
  20. 《赢》--[美]杰克·韦尔奇

热门文章

  1. VBox 下win10 不能调节分辨率问题
  2. Android生成pdf文件之PdfDocument及踩过的坑
  3. 基本可行解matlab求解代码
  4. python int占几个字节_小白学python第1问: int 占几个字节?
  5. python int占几个字节_python int占几个字节
  6. 人脸识别 (5) 基于MCTNN人脸检测(Pytorch)
  7. Android控制闪光灯的方法(打开与关闭)
  8. 【Sketch技巧】响应式异形按钮设计
  9. foo和bar的来历
  10. JavaScript:赋值运算符以及运算符优先级