参考链接网站:

http://c.biancheng.net/view/2361.html

Mysql的版本以及版本号

MySQL Community Server(社区版):该版本完全免费,但是官方不提供技术支持。
MySQL Enterprise Server(企业版):该版本能够以很高的性价比为企业提供数据仓库应用,支持 ACID 事物处理,提供完整的提交、回滚、崩溃恢复和行级锁定功能,但是该版本需要付费使用,官方提供电话技术支持。

Mysql服务器端实用工具:

http://c.biancheng.net/view/2395.html

Mysql数据库的安装教程:

自行百度

Mysql创建数据库

create dababase [if not exists] 数据库名
default character set utf8
default collate utf8_chinese_ci;

Mysql查看数据库

show database [like '数据库名'];

Mysql修改数据库

alter database [数据库名]
default character set utf8
default collate utf8_chinese_ci;

Mysql删除数据库

drop database [数据库名];

Mysql选择数据库

use [数据库名];

Mysql存储引擎

数据库存储引擎是数据库底层软件组件,数据库管理系统使用数据引擎进行创建、查询、更新和删除数据操作。不同的存储引擎提供不同的存储机制、索引技巧、锁定水平等功能,使用不同的存储引擎还可以获得特定的功能。
在Mysql5.5.5之后,InnoDB作为默认的存储引擎
查看支持的引擎
show engines
修改默认引擎
set default_storage_engine=[引擎名];
当再次重启时,还是原来的引擎

Mysql常见的数据类型

http://c.biancheng.net/view/2421.html

Mysql创建数据表

创建表
create table 表名
(
字段名 数据类型,
字段名 数据类型,
字段名 数据类型
);
查看表结构
desc 表名
show create table 表名\G;

Mysql修改数据表

常见的修改表的操作有修改表名、修改字段数据类型或字段名、增加和删除字段、修改字段的排列位置、更改表的存储引擎、删除表的外键约束等
添加字段
alter table 表名 add 新字段名 数据类型 约束条件[first|after 已存在的字段名];
FIRST 为可选参数,其作用是将新添加的字段设置为表的第一个字段;AFTER 为可选参数,其作用是将新添加的字段添加到指定的已存在的字段名的后面。
修改字段数据类型
alter table 表名 modify 字段名 数据类型;
删除字段
alter table 表名 drop 字段名;
修改字段名称
alter table 表名 change 旧字段名 新字段名 新数据类型:
修改表名
alter table 旧表名 rename to 新表名:

Mysql删除数据表

drop table 表名;

Mysql主键

“主键(PRIMARY KEY)”的完整称呼是“主键约束”。MySQL 主键约束是一个列或者列的组合,其值能唯一地标识表中的每一行。这样的一列或多列称为表的主键,通过它可以强制表的实体完整性。
创建设置主键约束
create table 表名
(
id int(11) primary key,
name varchar(25)
);
或者
create table 表名
(
id int(11),
name varchar(25),
primary key(id)
);

Mysql外键约束

MySQL 外键约束(FOREIGN KEY)用来在两个表的数据之间建立链接,它可以是一列或者多列。一个表可以有一个或多个外键。
外键对应的是参照完整性,一个表的外键可以为空值,若不为空值,则每一个外键的值必须等于另一个表中主键的某个值。
外键是表的一个字段,不是本表的主键,但对应另一个表的主键。定义外键后,不允许删除另一个表中具有关联关系的行。
创建设置外键约束
首先创建主键
create table name1
(
id int(11) primary key,
name varchar(22) not null,
location varchar(50)
);
建立外键约束
create table name2
(
id int(11) primary key,
name varchar(25),
deptid int(11),
salary float,
foreign key(depid) references name1(id)
);
在修改表时添加外键约束
ALTER TABLE tb_emp2
ADD CONSTRAINT fk_tb_dept1
FOREIGN KEY(deptId)
REFERENCES tb_dept1(id);
删除外键约束
ALTER TABLE tb_emp2 DROP FOREIGN KEY fk_tb_dept1;

查看表中的约束

show create table 表名;

Mysql去重

select distinct 字段名 from 表名;

Mysql设置别名

表名 as 别名
列名 as 列别名

Mysql限制查询结果的记录条数

limit 位置偏移量 行数
limit 4,3和mysql中可以使用的limit 4 offset 3一样

Mysql对查询结果进行排序

order by {列名|表达式|位置} [ASC|DESC]

Mysql条件查询

单一条件:
select name,height from users where name='zhangsan';
多条件的查询语句:
select * from users where age>21 and height>=175;
使用like的模糊查询:
表达式1 not like 表达式2
Mysql支持的通配符:
百分号%
百分号是Mysql中常用的一种通配符,在过滤条件中,百分号可以表示任何字符串,并且该字符串可以实现任意次。
下划线_
下划线通配符和百分号通配符的用途一样,下划线只匹配单个字符,而不是多个字符,也不是0个字符

Mysql常用运算符

算术运算符:
加、减、乘、除、取余
比较运算符:
= < <= > >= <=> <>或!=
isnull
is not null
betwwen and
least
greatest
in
not in
逻辑运算符:
not或者! 逻辑非
and或者&& 逻辑与
or或者|| 逻辑或
xor 逻辑异或
位运算符:
| 按位或
& 按位与
^ 按位异或
<< 按位左移
~ 按位取反,反转所有比特
无法确定优先级的情况下,可以使用()来改变优先级。

Mysql内连接查询

内连接是通过在查询中设置连接方式,来移除查询结果集中某些数据行后的交叉连接。简单来说,就是利用条件表达式来消除交叉连接的某些数据行。
在MySQL FROM 子句中使用关键字 INNER JOIN 连接两张表,并使用 ON 子句来设置连接条件。
select 列名1,列名2 from 表名 inner join 表名 [on 子句]
内连接是系统默认的表连接,所以在from子句后可省略Inner关键字,只用关键字join。

Mysql外连接查询

外连接先将连接的表分为基表和参考表,再以基表为依据返回满足和不满足的条件
左外连接又称为左连接,在 FROM 子句中使用关键字 LEFT OUTER JOIN 或者 LEFT JOIN,用于接收该关键字左表(基表)的所有行,并用这些行与该关键字右表(参考表)中的行进行匹配,即匹配左表中的每一行及右表中符合条件的行。
左外连接:
select name,dept_name form tb_students_info s left outer join tb_departments d on s.dept_id=d.dept_id;
右外连接:
select name,dept_name form tb_students_info s right outer join tb_departments d on s.dept_id=d.dept_id;

Mysql子查询

子查询指一个查询语句嵌套在另一个查询语句内部的查询,这个特性从Mysql4.1开始引入,在select子句中先计算子查询,子查询结果作为外层另一个查询的过滤条件,查询可以基于一个表或者多个表
子查询中常用的运算符
IN 子查询
[not] in
比较运算符子查询
{= | < | > | >= | <= | <=> | < > | != }{ ALL | SOME | ANY}
子查询实例:
select name from users where dept_id in (select dept_id from users2 where dept_type='a');
select name from users where dept_id <> (select dept_id from users2 where dept_type='a');
select name from users where exists (select dept_id from users2 where dept_type='a');

Mysql分组查询

允许使用group by子句,将结果集中的数据行根据选择列的值进行逻辑分组,以便能汇总表内容的子集,实现对每个组而不是对整个结果集进行整合。
group by {列名|表达式|位置} [ASC|DESC]
select dept_id,group_concat(name) as names from users group by dept_id;

Mysql指定过滤条件

having子句过滤分组条件(主要用来过滤组)
having 条件
实例:
select dept_id,group_concat(name) as names from users group by dept_id having count(name)>1;

Mysql正则表达式查询

Mysql插入数据

1.insert...values语句
insert into 表名(列名) values(值);
2.insert...set语句
insert into 表名 set 列名1=值1 列名2=值2;

Mysql修改语句

update 表名 set 字段1=值1[,字段2=值2...][where 子句][order by 子句][limit 子句]

Mysql删除数据

删除表中的数据
delete from 表名 [where 子句][order by 子句][limit 子句]

Mysql视图简介

视图是数据库系统中一种非常有用的数据库对象。
视图是一个虚拟表,其内容由查询定义。

Mysql自定义函数

create function 函数名(参数1 类型1[,参数2 类型2])
return 类型
函数主体

create function StuNnameById()
return varchar(45)
return
(select name from 表 where id=1);
删除自定义函数
drop function 自定义函数名

Mysql存储过程简介

存储过程是一组为了完成特定功能的 SQL 语句集合。一个存储过程是一个可编程的函数,它在数据库中创建并保存,一般由 SQL 语句和一些特殊的控制结构组成。

Mysql触发器简介

触发器与表关系密切,主要用于保护表中的数据。特别是当有多个表具有一定的相互联系的时候,触发器能够让不同的表保持数据的一致性。

Mysql索引

索引是 MySQL 数据库中的重要对象之一,用于快速找出某个列中有某一特定值的行。

Mysql创建用户

创建用户
create user 用户名 [identified] by [password] 口令
用户名:指定创建用户账号,格式为 'user_name'@'host_name'。这里user_name是用户名,host_name为主机名,即用户连接 MySQL 时所在主机的名字。若在创建的过程中,只给出了账户的用户名,而没指定主机名,则主机名默认为“%”,表示一组主机。
password:可选项,用于指定散列口令,即若使用明文设置口令,则需忽略PASSWORD关键字;若不想以明文设置口令,且知道 PASSWORD() 函数返回给密码的散列值,则可以在口令设置语句中指定此散列值,但需要加上关键字PASSWORD。
identified by子句:用于指定用户账号对应的口令,若该用户账号无口令,则可省略此子句。
口令:密码
create user 'james'@'localhost' identified by 'tiger';
mysql -h localhost -u james -p;
修改用户
rename user 旧用户 to 新用户
eg:rename user james@'localhost' to jack@'localhost';
修改用户密码
set password for 'jack'@'localhost'=password('lion');

Mysql删除用户

drop user 'jack'@'localhost';

Mysql用户授权

转载链接:http://c.biancheng.net/view/2615.html
当成功创建用户账户后,还不能执行任何操作,需要为该用户分配适当的访问权限,可以使用show grant for查看用户的权限
语法格式:
GRANT
[ ( ) ] [ , [ ( ) ] ]
ON TO
其中的格式:
[ IDENTIFIED ] BY [ PASSWORD ]
[ WITH GRANT OPTION]
| MAX_QUERIES_PER_HOUR
| MAX_UPDATES_PER_HOUR
| MAX_CONNECTIONS_PER_HOUR
| MAX_USER_CONNECTIONS
eg:grant select,insert on . to 'testUser'@'localhost' identified by 'testpwd' with grant option;

Mysql删除用户权限

转载链接:http://c.biancheng.net/view/2616.html
Mysql数据库中可以使用revoke语句删除一个用户的权限,此用户不会被删除
revoke insert on . from 'testuser'@'localhost';

Mysql事务

MySQL 数据库中事务是用户一系列的数据库操作序列,这些操作要么全做要么全不做,是一个不可分割的工作单位。

数据库备份

使用select into outfile
SELECT * FROM test_db.tb_students_info
INTO OUTFILE 'C:/ProgramData/MySQL/MySQL Server 5.7/Uploads/file.txt'
FIELDS TERMINATED BY '"'
LINES TERMINATED BY '?';

数据库导入

create table name;
LOAD DATA INFILE 'C:/ProgramData/MySQL/MySQL Server 5.7/
Uploads/file.txt'
INTO TABLE test_db.name
FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '?';

mysql字符串函数、Mysql数字函数、Mysql高级函数

转载链接: https://www.runoob.com/mysql/mysql-functions.html

数据库学习之mysql数据库的更多相关文章

  1. Mysql数据库学习笔记之数据库索引(index)

    什么是索引: SQL索引有两种,聚集索引和非聚集索引,索引主要目的是提高了SQL Server系统的性能,加快数据的查询速度与减少系统的响应时间. 聚集索引:该索引中键值的逻辑顺序决定了表中相应行的物 ...

  2. Jmeter(七) - 从入门到精通 - 建立数据库测试计划实战<MySQL数据库>(详解教程)

    1.简介 在实际工作中,我们经常会听到数据库的性能和稳定性等等,这些有时候也需要测试工程师去评估和测试,上一篇文章宏哥主要介绍了jmeter连接和创建数据库测试计划的过程,宏哥在文中通过示例和代码非常 ...

  3. 怎样将Sqlserver数据库转成mysql数据库

    手上有一个网站之前是用asp.net做的,所使用的数据库是sqlserver,现在打算用PHP+MYSQL架构.因原来的站点有一定排名,直接改版的话,会导致产生很多错误页,网站排名和收录结果要恢复过来 ...

  4. Vc数据库编程基础MySql数据库的表查询功能

    Vc数据库编程基础MySql数据库的表查询功能 一丶简介 不管是任何数据库.都会有查询功能.而且是很重要的功能.上一讲知识简单的讲解了表的查询所有. 那么这次我们需要掌握的则是. 1.使用select ...

  5. Vc数据库编程基础MySql数据库的表增删改查数据

    Vc数据库编程基础MySql数据库的表增删改查数据 一丶表操作命令 1.查看表中所有数据 select * from 表名 2.为表中所有的字段添加数据 insert into 表名( 字段1,字段2 ...

  6. Vc数据库编程基础MySql数据库的常见库命令.跟表操作命令

    Vc数据库编程基础MySql数据库的常见操作 一丶数据库常见的库操作 1.1查看全部数据库 命令:  show databases 1.2 创建数据库 命令: Create database 数据库名 ...

  7. 通过JSP网页连接MySQL数据库,从MySQL数据库中读出一张表并显示在JSP网页中

    1.安装所需软件 ①安装java和tomcat,建立JSP网页最基础的软件②安装MySQL数据库(下载地址:https://www.mysql.com/)③安装Navicat Premium来查看数据 ...

  8. MySQL数据库迁移与MySQL数据库批量恢复

    目录 一.MySQL数据库迁移或备份 1. 了解使用InnoDB引擎创建数据库所产生的文件 2. 迁移数据库步骤 1. 从A服务器迁移至B服务器 2. MySQL重装并导入之前数据库 二.MySQL数 ...

  9. 数据库学习之MySQL基础

    数据库基础 一.数据库简介 数据库:存放数据的仓库 sql及其规范 sql是Structured Query Language(结构化查询语言)的缩写.SQL是专为数据库而建立的操作命令集,是一种功能 ...

随机推荐

  1. 构建CRD工程 - 程序员学点xx 43 k8s

    目录 Kubernetes -3- 这是yann的第98篇分享 本日状态: ​ 帮同事排了一天bug. Kubernetes -3- 这是yann的第98篇分享 第 1 部分 承前 昨天用视屏的方式演 ...

  2. 成为k8s大佬,从这个操作开始(伪) - 程序员学点xx 42 k8s

    目录 Kubernetes -2- 这是yann的第97篇分享 本日状态: ​ 饿着肚子写公众号的 yann 同学. 第 1 部分 反省 昨天的内容被熊哥批评了. 熊哥说,「你光想着自己爽,一句我认为 ...

  3. Django 的 logging日志文件配置

    在Django的settings配置文件里配置以下信息: import os BASE_LOG_DIR = os.path.join(BASE_DIR , "log") # log ...

  4. vue 一个轮播的组件

    当我们进行开发的时候,并不是说所有信息都会在写一个组件中 作为项目的老大,我们要去思考每个文件下面需要放什么业务,分的越细.越合理为好 我们在componts文件下新建一个Banner.vue 组件 ...

  5. 实现斐波那契数列之es5、es6

    es5实现斐波拉契函数数列: <script type="text/javascript"> function fibonacci(n) { var one = 1; ...

  6. Maven 集成Tomcat插件(引用)

    Maven已经是Java的项目管理标配,如何在JavaEE开发使用Maven调用Web应用,是很多同学关心的问题.本文将介绍,Maven如何介绍Tomcat插件. Maven Tomcat插件现在主要 ...

  7. C# 模拟页面登录

    using System; using System.Collections; using System.Collections.Generic; using System.IO; using Sys ...

  8. 记录cobbler报错

    出现下面这个错误解决方法 httpd does not appear to be running and proxying cobbler, or SELinux is in the way. Ori ...

  9. 阿里云ECS VSFTP上传本地文件

    开始终端 购买云服务,获得公网IP,内网IP 控制台首页获得 获得终端连接密码 连接终端,输入连接密码 获得终端界面,进入终端 上传文件 ## .安装VSFTP服务器程序 yum install vs ...

  10. 为什么有线宽带提供商获得ASN非常重要?

    光纤和同轴电缆的组合(数据有线电视服务接口规范),由此产生的网络在世界引入了高速互联网接入.我们能够从网络运营中心向家庭用户提供10Mbps的下载速度. 拥有自己的自治系统编号(ASN)和IP块意味着 ...