Mysql操作指令

创建数据库

语法: create database 数据库名称(库选项)
在这里插入图片描述
库选项:数据库相关属性
字符集:charset字符集,代表当前数据库下所有表存储的数据默认指定的字符集(如果当前不指定,采用DBMS默认)
校对集:collate校对集
Create database 数据库名字 charset 字符集名称;

查看数据库
显示所有数据库
show databases;

删除数据库
drop database [if exists] 数据库名

显示创建数据库的语句
show create database 数据库名

修改数据库(只能修改数据库选项,数据库的选项只有字符编码)
alter database 数据库名 charset=字符编码

选择数据库
use 数据库名

表的操作

创建表

create table [if not exists] `表名`(
    `字段名` 数据类型 [null|not null] [default] [auto_increment] [primary key] [comment],
    `字段名 数据类型 …
)[engine=存储引擎] [charset=字符编码]

null|not null     是否为空
default:          默认值
auto_increment    自动增长,默认从1开始,每次递增1
primary key       主键,主键的值不能重复,不能为空,每个表必须只能有一个主键
comment:          备注
engine            引擎决定了数据的存储和查找   myisam、innodb

1、如果不指定引擎,默认是innodb
2、如果不指定字符编码,默认和数据库编码一致
3、varchar(20) 表示长度是20个字符

显示所有表
show tables;

显示创建表的语句
show create table; – 结果横着排列
show create table \G – 将结果竖着排列

查看表结构
desc[ribe] 表名

复制表
create table 新表 select 字段 from 旧表 (不能复制父表的键,能够复制父表的数据)
create table 新表 like 旧表 (只能复制表结构,不能复制表数据)

删除表
drop table [if exists] 表1,表2,…

*表示所有字段

修改表
alter table 表名
添加字段:alter table 表名add [column] 字段名 数据类型 [位置]
删除字段:alter table 表 drop [column] 字段名
修改字段(改名):alter table 表 change [column] 原字段名 新字段名 数据类型 …
修改字段(不改名):alter table 表 modify 字段名 字段属性…
修改引擎:alter table 表名 engine=引擎名
修改表名:alter table 表名 rename to 新表名
将表移动到其他数据库 (将当前数据库中的student表移动到php74数据库中改名为stu
–mysql> alter table student rename to php74.stu)

数据操作

插入数据
insert into 表名 (字段名, 字段名,…) values (值1, 值1,…)
更新数据
语法:update 表名 set 字段=值 [where 条件]
删除数据
delete from 表名 [where 条件]
查询数据
select 列名 from 表名

数据类型

数值型:
在这里插入图片描述
浮点型:
在这里插入图片描述

小数(定点数):将整数部分和小数部分分开存储
语法:decimal(M,D)

字符型
在这里插入图片描述

枚举(enum)
从集合中选择一个值作为数据(单选)
枚举值是通过整形数字来管理的,第一个值是1,第二个值是2,以此类推,枚举值在数据库存储的是整形数字

集合(set)
从集合中选择一些值作为数据(多选)
集合和枚举一样,也为每个集合元素分配一个固定值,分配方式是从前往后按2的0、1、2、…次方,转换成二进制后只有一位是1,其他都是0

日期时间型
在这里插入图片描述
Boolean
MySQL不支持布尔型,true和false在数据库中对应的是1和0
boolean型在MySQL中对应的是tinyint。

列属性

是否为空(null|not null) null表示字段值可以为null / not null字段值不能为空
默认值(default) 如果一个字段没有插入值,可以默认插入一个指定的值
自动增长(auto_increment)字段值从1开始,每次递增1,自动增长的值就不会有重复,适合用来生成唯一的id。在MySQL中只要是自动增长列必须是主键
主键(primary key) 唯一标识表中的记录的一个或一组列称为主键。
只要是auto_increment必须是主键,但是主键不一定是auto_increment
主键特点是不能重复不能为空
一个表只能有一个主键,但是一个主键可以有多个字段组成
自动增长列通过插入null值让其递增
自动增长列的数据被删除,默认不再重复使用。truncate table删除数据后,再次插入从1开始
唯一键(unique) 一个表可以有多个唯一键
备注(comment) 说明性文本

查询语句

语法:select [选项] 列名 [from 表名] [where 条件] [group by 分组] [order by 排序][having 条件] [limit 限制]
from:来自,from后面跟的是数据源。数据源可以有多个
dual表是一个伪表。在有些特定情况下,没有具体的表的参与,但是为了保证select语句的完整又必须要一个表名,这时候就使用伪表。
where后面跟的是条件,在数据源中进行筛选。返回条件为真记录

在这里插入图片描述
group by 【分组查询】 将查询的结果分组,分组查询目的在于统计数据。
order by排序 asc:升序【默认】 / desc:降序
having:是在结果集上进行条件筛选
limit [起始位置],显示长度
查询语句中的选项有两个: all:显示所有数据 【默认】 / distinct:去除结果集中重复的数据

聚合函数

sum() 求和
avg() 求平均值
max() 求最大值
min() 求最小值
count() 求记录数

模糊查询

_ [下划线] 表示任意一个字符
% 表示任意字符
模糊查询的条件不能用’=’,要使用like

union(联合) 将多个select语句结果集纵向联合起来

多表查询

内连接你 返回两个表的公共记录
– 语法一
select * from 表1 inner join 表2 on 表1.公共字段=表2.公共字段
– 语法二
select * from 表1,表2 where 表1.公共字段=表2.公共字段

左外连接 以左边的表为准,右边如果没有对应的记录用null显示
select * from 表1 left join 表2 on 表1.公共字段=表2.公共字段

右外连接 以右边的表为准,左边如果没有对应的记录用null显示
select * from 表1 right join 表2 on 表1.公共字段=表2.公共字段

交叉连接 返回笛卡尔积
select * from 表1 cross join 表2

自然连接 自动判断条件连接,判断的条件是依据同名字段

子查询

子查询返回的值是一个

视图

创建视图
create view 视图名
as
select 语句;

查询视图
select 列名 from 视图

修改视图
alter view 视图名
as
select 语句

删除视图
drop view [if exists ] 视图1,视图,…

查看视图信息
在这里插入图片描述

函数

加密函数 md5() sha()

连接服务器

<?php
//连接数据库,连接成功返回连接对象
$link=@mysqli_connect('localhost','root','root','data','3306');
//var_dump($link);			//object(mysqli)
if(mysqli_connect_error()){
	echo '错误号:'.mysqli_connect_errno(),'<br>';	//显示错误编码
	echo '错误信息:'.mysqli_connect_error();		//显示错误信息
	exit;
}
//设置字符编码
mysqli_set_charset($link,'utf8');	

与数据库相关用utf8,与页面显示相关用utf-8

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值