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语 ...
随机推荐
- list map to map
Map<String, Object> merged = lists.stream() .map(Map::entrySet) .flatMap(Set::stream) .collect ...
- 模仿也是提高,纯css小技巧实现头部进度条
刚开始的时候我也觉得不可能,但是就是这么神奇,总有大神给你意想不到的惊喜. 快来感受一下把.(仔细看看头部黄色条的变化) 思考一下啊,怎么出现的那,其实作者使用了一点小技巧,那就是背景色渐变和遮挡产生 ...
- 解决Eclipse中.properties文件中文乱码问题
在.properties文件写注释时,发现中文乱码了,由于之前在idea中有见设置.properties文件的编码类型,便找了找乱码原因 在中文操作系统中,Eclipse中的Java类型文件的编码的默 ...
- Elixir东游记/上:intro/1
1. 为啥前面还在搞haxe,现在又换到elixir了? erlang本来我就在用,用elixir不过是方便顺手给人科普而已. 2. so,接下来你打算用elixir干嘛? 很简单,写一个简单的解释器 ...
- linux服务器用nginx做网站内页之间301的跳转方法
例: 要将这个页面 /topic/show-228-1.html 做301跳转到 /dance/topic-show-228-1.html nginx的伪静态规则就这样写: rewrite ^/top ...
- 常用的lamp环境以及一些依赖包的安装
- python 面向对象 继承 派生 组合
具体参考博客:http://www.cnblogs.com/linhaifeng/articles/6182264.html#_label12 一.面向对象 面向对象:对象与对象之间的相互交互,不可预 ...
- js时间过滤方法
js时间过滤 自己写的 记录一下 /** * * 过滤时间格式 * Created by Catlina at 2019.4.26 */ export const setTime = time = ...
- 怎么在多场景下使用不同的 git 账号 commit
应用场景 我有多个github的账号,不同的账号对应不同的repo,需要push的时候自动区分账号 我有多个git的账号,有的是github的,有的是单位的gitlab的,不同账号对应不同的repo, ...
- day45-python实例练习
'''ABCD * 9 = DCBA 通过计算机的方法,给我们计算出 A= ? B = ? C = ? D =? A; 1-9 B: 1-9 C: 1-9 D; 1-9 A != B != C != ...