mysql数据库简单一些简单操作和总结
1. mysql 数据库操作方法:
进入数据库 mysql -uroot -p
退出 quite exit
默认引擎 innodb
查看版本 select verison();
查看时间 select now();
逻辑运算 select 1+1;
查询数据库 show databases ;
创建数据库 create database 库名 charset = utf8;
删除 drop database 库名;
使用某个数据库 use 库名;
查询库中所有表 show tables;
查看表结构 desc 表名;
创建表 create table 表名( 增加字段和数据类型
)
例如: create table classes(
id int unsigned(无符号的) primary key(主键) auto_increment (自动增加) not null(非空),
name varchar(30) not null default(默认)‘ ’
);
修改表名 alter table 表名 rename to 新表名;
删除表 drop table;
查询表内容 select * from 表名;
往表中插入数据 insert into 表名 values();
例如 insert into student values(0,'小明'),(0,'小花') ; 零 是占位。注:有几个字段名就插入几个数据,比如前面的插入了两个
删除数据 delete from 表名 where id = 1;
修改数据 update 表名 set 字段名 = ‘1234’where id = 1; 1234代表新的内容修改ID为1的数据
增加字段 :
alter table 'student'
add column 'num1' int(3) null default null;
修改字段 :
alter table'student'
change column 'num1' 'num2' int(3) null default null;
删除字段:
alter table 'classes'
drop column 'num';
一个英文字符等于一个字节,一个中文三个字节
2. 连接查询 join
join 用于多表中字段之间的联系,语法如下:
from table1 inner或者left或者right join table2 on conditiona
3. 使用 as 给字段起别名(给长的字段取别名)
select id as code from student; 可以通过 as 给表起别名
在select后面列前使用distinct可以消除重复的行
4. mysql的联合主键: select 字段1,字段2 from 表名 where 条件
逻辑运算符
and or not (is 用来判断null)
5. 范围查询
between ...... and.....
查询年龄在20岁到30岁之间的学生
select name from student where age between 20 and 30
in表示在一个非连续的范围内
select id from student where id in (1,2,3)
select distinct num from student ;
6 . 模糊查询 like
%表示任意多个任意字符
_ 表示一个任意字符
查询姓黄的学生
select * from student where name like ‘黄%’
7. 聚合函数
mysql中五种常用的聚合函数:
(1)max(列名):求最大值。 select max(salary) from salary_tab;
(2)min(列名):求最小值。
(2)sum(列名):求和。
(4)avg(列名):求平均值。select sum(salary) from salary_tab;
(5)count(列名):统计记录的条数
①count(*):返回表中满足where条件的行的数量
select count(*) from salary_tab where salary='1000';
8. 排序
为了方便查看数据,可以对数据进行排序
语法:order by 字段 asc 或者 desc
查询学生信息,按学号降序
select * from student order by id desc
9.分组
分组SELECT的基本格式:
select [聚合函数] 字段名 from 表名
[where 查询条件]
[group by 字段名]
[having 过滤条件]
指定一个列进行分组
select salary,count(*) from salary_tab
指定多个分组列,‘大组中再分小组’
select userid,count(salary) from salary_tab
根据表达式分组
select year(payment_date),count(*)
10. having字句
对分组结果进行过滤
having子语句与where子语句区别
where子句在分组前对记录进行过滤;
having子句在分组后对记录进行过滤
11. limit 分段取值
语法 limi m,n select * from student limit 0,2 从第一个开始取,取两个,如果不写第一个参数,就是默认从第一个参数取值,取n个
12. mysql外键约束
建表时生成外键 foreign key('sid') references'student'('id');
建表时添加外键 alter table'course_student' add foreige key('sid') references'student' (''id);
删除外键 alter table'course_student'drop foreign key'course_student_idfk_1';
13. mlsql自关联
select * from areas as p inner join areas as c on c.pid = p.aid where p.atile = '河南省';
14.自关联
标量子查询
select * from arrticle where uid = (select uid from user where status = 1 order by uid desc limit 1);
列子查询
select * from student where cls id in (select id from classes where id in (1,2))
行子查询
示例:查询一个班身高最高,岁数最大的学生
select * from student where(age,height) = (select max(age),max(height) from student);
15.视图
建立视图 create view 视图名称 as select 语句
建议名称以v_开头,用来和普通表区分, 使用show tables 可以显示视图
使用视图 select * from 视图名称
删除视图 drop view 视图名称
修改视图 create or replace view 视图名称 as sql语句
16.事务
开启事务后执行修改命令
begin 或者start transaction;
提交事务 commit;
回滚事务 rollback
17.索引
使用索引 select * from test_index where name = 'ca-900';
联合索引 select * from test_index where name = 'ca-900' and id = 'ha-900';
以上是学习数据库以来简单的总结
mysql数据库简单一些简单操作和总结的更多相关文章
- mysql数据库基础的简单操作指南
最近在学习mysql,本文是做的关于mysql学习的笔记,跟大家分享一下,希望对大家学习mysql知识有所助益.mysql现在几乎已经成了网站建设的主流数据库,很多php网站系统都采用了mysql数据 ...
- Swift3.0服务端开发(四) MySQL数据库的连接与操作
本篇博客我们来聊聊MySQL数据库的连接与操作.如果你本地没有MySQL数据库的话,需要你先安装MySQL数据库.在Mac OS中使用brew包管理器进行MySQL的安装是及其方便的.安装MySQL的 ...
- Linux安装Mycat1.6.7.4并实现Mysql数据库读写分离简单配置
1. Mycat简介 一个彻底开源的,面向企业应用开发的大数据库集群 支持事务.ACID.可以替代MySQL的加强版数据库 一个可以视为MySQL集群的企业级数据库,用来替代昂贵的Oracle集群 一 ...
- 在linux上安装MySQL数据库,并简单设置用户密码,登录MySQL
在新装的Centos系统上安装MySQL数据库. <p><a href="http://www.cnblogs.com/tijun/">提君博客原创< ...
- php基础编程-php连接mysql数据库-mysqli的简单使用
很多php小白在学习完php基础后,或多或少要接触到数据库的使用.而mysql数据库是你最好的选择,本文就mysql来为大家介绍php如何连接到数据库. PHP MySQLi = PHP MySQL ...
- Python操作Mysql数据库进阶篇——查询操作详解(一)
前面我们已经介绍了在Python3.x中如何连接一个Mysql数据库,以及怎么样对这个数据库创建一个表,增删改查表里的数据.想必大家对Mysql数据库和简单的sql语句有了一定的了解,其实sql语句博 ...
- WebAPI调用笔记 ASP.NET CORE 学习之自定义异常处理 MySQL数据库查询优化建议 .NET操作XML文件之泛型集合的序列化与反序列化 Asp.Net Core 轻松学-多线程之Task快速上手 Asp.Net Core 轻松学-多线程之Task(补充)
WebAPI调用笔记 前言 即时通信项目中初次调用OA接口遇到了一些问题,因为本人从业后几乎一直做CS端项目,一个简单的WebAPI调用居然浪费了不少时间,特此记录. 接口描述 首先说明一下,基于 ...
- 对mysql数据库表的相关操作
虫师博客(Python使用MySQL数据库(新)): https://www.cnblogs.com/fnng/p/3565912.html 1.更改表的结构,增加一个字段放置新增的属性 alter ...
- MyBatis实现Mysql数据库分库分表操作和总结
前言 作为一个数据库,作为数据库中的一张表,随着用户的增多随着时间的推移,总有一天,数据量会大到一个难以处理的地步.这时仅仅一张表的数据就已经超过了千万,无论是查询还是修改,对于它的操作都会很耗时,这 ...
- MySQL数据库的权限问题操作及基本增删改查操作
前面我们讲了mysql的基本内容,现在我们详细的了解一下mysql中的具体操作. what's the SQl SQL(Structured Query Language 即结构化查询语言) SQL语 ...
随机推荐
- 手机端页面自适应解决方案—rem布局进阶版
手机端页面自适应解决方案—rem布局进阶版 https://www.jianshu.com/p/985d26b40199 注:本文转载之处:https://www.cnblogs.com/anni ...
- ansible 剧本
ansible的管理与剧本 首先我们安装一个ansible. 在7版本,直接用yum安装就可以 yum -y install ansible 然后清空ansible的配置文件,在里面写入自己需要管 ...
- es6(一)
一.let和const: let :块作用域,不能重复声明. const:块作用域,声明的时候必须赋值,声明的值类型不能修改,引用类型由于是指针,所以可以修改. 二.解构赋值: 左边一种结构,右边一种 ...
- Java判断当前时间是否在某一时间段内
今天有一个任务,判断现在的时间是否在某一个时间段内 遇到的第一个问题 Date类获取日期时间大的方法失效了 问题描述: 在学习Date类时,习惯性的用get方法调用Date()的年月日,发现不怎么好用 ...
- 【Java集合系列五】HashMap解析
2017-07-31 19:36:00 一.简介 1.HashMap作用及使用场景 HashMap利用数组+单向链表的方式,实现了key-value型数据的存储功能.HashMap的size永远是2^ ...
- 九州动态ip的特色
九州代理是一款高覆盖的换ip软件,范围可覆盖全国160多个城市.软件可用于游戏试玩.游戏挂机.营销.优化.文档分享.管理.问答推广.数据采集.点赞.增效回访.用户注册等.“九州代理”仅提供国内网络节点 ...
- 转载: http状态码
消息 这一类型的状态码,代表请求已被接受,需要继续处理.这类响应是临时响应,只包含状态行和某些可选的响应头信息,并以空行结束.由于 HTTP/1.0 协议中没有定义任何 1xx 状态码,所以除非在 ...
- HashMap 的put方法
final V putVal(int hash, K key, V value, boolean onlyIfAbsent, boolean evict) { Node<K,V>[] ta ...
- 初读"Thinking in Java"读书笔记之第三章 --- 操作符
更简单的打印语句 导入自己编写的静态类库,即可使用print();打印 使用Java操作符 操作符:+,-,*,/,=,==,!=,+=,?:,%等 几乎所有操作符都只能操作"基本类型&qu ...
- Node.js 串口通讯 node-serialport 使用说明
官网:https://serialport.io/en/ 安装:npm install serialport Parsers说明:parser-byte-length:大概意思是定义了一个长度为len ...