引言
MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。
MySQL是一种关系型数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。
MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语言。MySQL 软件采用了双授权政策,分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型和大型网站的开发都选择 MySQL 作为网站数据库。
目录
方法1:先按WIN+X,再点击任务管理器,后在服务中启动mysql服务。
方法二:同时按Ctrl+Shift+Esc,即可呼出任务管理器,后在服务中启动mysql服务。
方法三:鼠标点击底部任务栏,选择任务管理器即可,后在服务中启动mysql服务。
2、用管理员身份运行命令提示符界面,输入 mysql -u root -p(这里的root是指mysql的用户名),然后回车输入密码即可(如果不用管理员身份可能会因为没有权限显示拒绝访问)。
前言
注意mysql是不区分大小写的
数据详情信息
mysql基本函数
字符串函数
concat(s1,s2,...,sn) 将s1,s2,...sn拼接成一个字符串。
lower(str) 将字符串str全部转为小写。
upper(str) 将字符串str全部转为大写。
lpad(str,n,pad) 左填充,用字符串pad对str进行填充,达到n个长度。
rpad(str,n,pad) 右填充,用字符串pad对str进行填充,达到n个长度。
trim(str) 去掉字符串头部和尾部的空格。
substring(str,start,len) 截取str从start位置起的len个长度的字符串。
select 查询。
数值函数
ceil(x) 向上取整。
floor(x) 向下取整。
mod(x,y) 返回x/y的模。
rand() 返回0~1内的随机数。
round(x,y) 求参数x的四舍五入的值,保留y位小数。
日期函数
curdate() 返回当前日期。
curtime() 返回当前时间。
now() 返回当前日期和时间。
year(date) 获取指定date的年份。
month(date) 获取指定date的月份。
day(date) 获取指定date的日期。
datadiff(date1,date2) 返回起始时间date1和结束数据date2之间的天数。
流程函数
if(value,t,f) 如果value为true,返回t,否则返回f。
ifnull(value1,value2) 如果不为value1,否则返回value2。
case when [val1] then [res1] .... else [default] end; 如果val1为true,返回res1.......,否则返回默认值。
case [expr] when [val1] then [res1] ....else [default] end; 如果expr的值等于val1,返回res1,.....否则返回默认值。
约束
not null 非空
unique 唯一
primary key()主键
default 默认
check 检查
foreign key 外键
auto_increment 自动增长
启动mysql数据库
1、打开任务管理器,启动mysql服务
方法1:先按WIN+X,再点击任务管理器,后在服务中启动mysql服务。
方法二:同时按Ctrl+Shift+Esc,即可呼出任务管理器,后在服务中启动mysql服务。
方法三:鼠标点击底部任务栏,选择任务管理器即可,后在服务中启动mysql服务。
方法四:命令提示符界面启动
用管理员身份运行命令提示符界面,输入 net start mysql ,然后回车即可(如果不用管理员身份可能会因为没有权限显示拒绝访问)。
2、用管理员身份运行命令提示符界面,输入 mysql -u root -p(这里的root是指mysql的用户名),然后回车输入密码即可(如果不用管理员身份可能会因为没有权限显示拒绝访问)。
DDL(数据库操作)
查询所有数据库
show databases;
查询当前数据库
select database();
创建数据库
create database [if not exists] "数据库名称" [default charset "字符集"] [collate "排序规则"];([]里面的操作可以选择写或不写)
这条语句的意思是: 如果mysql不存在数据库名为class的数据库,则mysql创建数据库名class,并设置字符集为utf8排序规则为utf8_general_ci。
删除数据库
drop database [if exists] "数据库名";([]里面的操作可以选择写或不写)
这条语句的意思是:如果mysql存在数据库名为class的数据库,则删除该数据库,否则不进行任何操作。
使用数据库
use "数据库名";
查询当前数据库所有表
show tables;
查询表结构
desc "表名";
查询指定表的建表语句
show create table "表名";
在当前数据库下创建表
create table "表名" ("字段1" "字段类型1" [comment 字段注释],
"字段2" "字段类型2" [comment 字段注释],
"字段3" "字段类型3" [comment 字段注释]);([]里面的操作可以选择写或不写)
删除表中字段
alter table "表名" drop "字段名";
修改表名
alter table "表名" rename to "新表名";
删除表
drop table "表名";
删除表,并重建该表。
truncate table "表名";
添加字段
alter table "表名" add ("新字段名" “新字段类型" [default value][null/not null],….);([]里面的操作可以选择写或不写)
修改字段
alter table "表名" modify "字段名" “新字段类型" [default value][null/not null],….;([]里面的操作可以选择写或不写)
删除字段
alter table "表名" drop "字段名";
修改字段名称及类型
alter table "表名" change "字段名称" "新字段名称" "新类型";
DML (数据定义语言)
查询数据
select 字段列表1,…. from "表名" [where "条件"];
select * from "表名" where ["条件"];
给表添加数据(批量加入)
insert into "表名" values(值1,值2,….),(值n,值n+1,….),….;
给指定字段添加数据
insert into "表名"("字段名1","字段名2",….) values(值1,值2,….);
修改数据
updata "表名" set "字段名1" = "值1" , "字段名2" = "值2",…[where "条件"];([]里面的操作可以选择写或不写)
没加where条件,mysql修改数据时默认把该字段的全部数据改为你想修改的值。
删除数据
delete from "表名" [where "条件"];([]里面的操作可以选择写或不写)
删除数据时如果没有where条件的限制,mysql会默认删除所有数据。
清除数据
truncate table "表名";
只复制表结构到一张新表中
create table "新表名" like "原表名";
复制表结构及其数据到一张新表中
create table "新表名" as (select * from "原表名");
将一张表的数据插入另外一张表中
insert into "表1"(select * from "表2") ;
查询两张表数据
select * from "表1","表2" where "表1"."字段名" = "表2"."字段名";
select * from "表1"."字段名","表2"."字段名" where "表1"."字段名" = "表2"."字段名";
将两张表整合为一张新表
create table "新表名" as (select * from "表1"."字段名","表2"."字段名" where "表1"."字段名" = "表2"."字段名");
DQL (数据查询语言)
取别名
select "字段1" [as "别名1"], "字段2" [as "别名2"],... from "表名"; ([]里面的操作可以选择写或不写)
去掉重复记录
select distinct "字段1","字段2".. from "表名";
分组查询
select "字段列表" from "表名" [where "条件"] group by "分组字段" [having "分组后的过滤条件"];
排序查询
select "字段列表" from "表名" order by 字段1 排序方式 , 字段2 排序方式;(asc:升序(默认)、desc:降序)
分页查询
select "字段列表" from "表名" limit "起始索引","查询记录数";
DCL(数据控制语言)
查询用户
use mysql;
select * from mysql;
创建用户
create user "用户名"@"主机名" identified by "密码";(localhost:本主机、%:任意主机)
修改用户密码
set password for "用户名"@"主机名" = password("新密码");
删除用户
drop user "用户名"@"主机名";
查看用户的权限
show grants for "用户名"@"主机名";
授予权限
grant "权限列表" on "数据库名"."表名" to "用户名"@"主机名";
撤销权限
revoke "权限列表" on "数据库名" ."表名" from "用户名"@"主机名";