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); #调用https://www.cnblogs.com/wuxiaoyu-1537/p/6257419.html
转载于:https://www.cnblogs.com/shy1766IT/p/10621720.html
mysql 基础 增删改查语句相关推荐
- MySQL基础增删改查
登录MySQL mysql -uroot -p123456 -h 127.0.0.1 exit 或 quit 退出 关键字 if exists 是否存在 数据库增删改查 查看MySQL :查 ...
- MySQL基础---增删改查语法
一.DDL-数据定义语言,操作数据库(CRUD)和表(CRUD) 1 创建数据库(指定字符集) create database 数据库名称 character set utf8; 数据库和表修改都是 ...
- Mysql基础增删改查,主外键关联
Mysql基础入门 章节导航 Mysql基础入门 创建 新增 删除 修改 查询 数据类型 主键 外键 数值计算 关联查询 1.登录mysql:mysql -uroot -p2.使用数据库: use 数 ...
- mysql之增删改查语句
一.SQL语句之增 insert into 表名 values (值1,....) 向student表中插入一个学生的数据insert into student (num,name,sex,age) ...
- Mysql简单增删改查语句复习题
基础概念: 数据库系统模型分为 层次模型 网状模型 关系模型 MySQL属于哪一种关系型数据库 关系型数据库 数据模型的要素 1. 数据结构 2.数据操作 3.数据的约束条件 数据库设计的阶段分为 概 ...
- mysql:增删改查语句大全
一.插入 1. 法一 insert into 表名(列名1,列名2,--)values(值1,值2,--): insert into bbms.users (userid,username) valu ...
- Mysql的增删改查语句
删除sex:alter table employee drop cpolumn sex; 修改name字段:alter table employee change column name userna ...
- sql 基础增删改查语句
1.1[插入单行] insert [into] <表名> (列名) values (列值) 例:insert into Strdents (姓名,性别,出生日期) values ('开心朋 ...
- mysql数据库增删改查关键字_MySQL数据库(增删改查语句)
MySQL数据库(增删改查语句) 一.登录数据库:----> mysql -uroot -proot;(对应用户名和密码) 二.SQL语句: 数据定义语言DDL 用来定义数据库.表.列,关键 ...
最新文章
- dumpbin发现没有入口函数_详解VS2019 dumpbin查看DLL的导出函数
- 关于反射GetType().GetProperties()的疑惑
- ntdll 异常代码0xc0000374_不要把异常当做业务逻辑,这性能可能你无法承受
- 【ZOJ - 3946】Highway Project(最短路子图,维护双权值,贪心,最小树形图)
- 向量加减法首尾规律_向量加减口诀首尾相接
- 成绩查看_2019一级建造师成绩已公布,赶紧来查看成绩吧
- 计算机的配置与选购调查报告,目前主流危机计算机的配置及选购的调查报告.doc...
- 读取P12格式证书的密钥
- 大规模分布式深度网络
- PHP不支持多线程,有时候处理问题不是那么爽,今天谈论一下PHP定时执行的方法...
- matlab怎么画地震反应谱,地震工程学-反应谱和地震时程波的相互转化matlab编程...
- 算法:(七)模拟算法
- 计算机京东账户安全退出,京东账号如果提示存在风险该怎么解除?
- 细节复盘2 (图片放足够大高斯模糊< style > scopedvue打开新的页面轮播图抖动的问题 translateZ、translateY、垂直水平居中)2020-8-1
- android仿微信点击好友,安卓开发仿微信联系人列表-机器人列表视图仿微通道聊天多久最底部滑动...
- 开源分享,让技术发光——最受欢迎“开发者布道师”评选结果来啦!
- Point Estimation
- 游戏行业如何做防护?游戏被攻击怎么办?
- Java岗面试题--Java基础(日积月累,每日三题)
- springboot企业人力资源管理系统毕业设计源码291816
热门文章
- 7系统内部系统组件禁止休眠_海康监控系统平台设计思路(二)
- raster | 多图层栅格对象的一些处理方法
- python能开发android吗_python可以开发安卓吗
- 索爱S60 java,谈谈索爱S60 触屏强机U5i的功能怎么样
- python中求根公式_用python做个带GUI的求根公式吧
- python对二维数组统计某一行的去重计数_Python数据分析笔记——Numpy、Pandas库
- python函数的作用域是什么_python函数的作用域
- 荣威i5能升级鸿蒙系统吗,荣威i5更新系统方法
- c语言实现点在多边形内部,求教这个判断点是否在多边形内的C语言算法用的什么原理....
- 华硕微型计算机配置数据,“智能”显卡 华硕ROG Matrix显卡赏析