-mysql window 版本不区分大小写 linux区分
set password for root@localhost=rassword(‘密码’)
create database 创建数据库名字;
show databases;确认数据库有多少 查看所有
use 数据库名;打开数据库,使用数据库
select database();显示当前使用的数据库
create table 表名(列 数据类型)每一列逗号分隔
如果编码错误解决不了 后面加上 charset= 编码类型
show tables;查看刚刚创建的表
select * from 数据库. 列表
数据库名.列表 连接数据库
desc 表名 确定表结构
describe 表名 确定表结构
insert into 表(列表) values (数据);
插入表数据
select * from 表名 查看所有记录
sleect * from 表名 limit 需要显示记录 显示需要显示的所有记录
select 数据 数字类型加运算符可以算得数
grant 赋予的权限 ON 数据库名.表名 TO 用户名
权限有 ALL(所有权限)
select和update仅仅允许查看
可以获取数据库的所有表设置为 .
drop user 用户名 删除用户所有权限
mysqladmin -u 用户名 -p 密码 create 数据库名 (创建数据库)
mysqladmin -u 用户名 -p 密码 drop 数据库名 (删库)
alter table 表名 modify 列名 数据类型 修改数据类型的存储大小
alter table 表名 add 列名 数据类型 添加数据类型
alter table 表名 change 列名 新列名 (需要替换的)数据类型 修改列名
alter table 表名 drop 列名 删除列
craete table 新表名 select * from 元素名 复制表
craete table 新表名 like 元素名 复制表的列结构
insert into 表名 select * from 元素名 复制表的记录 (*可以替代其他表)
drop table 表名 删表
drop table if exists 表名 确定是否有在进行删除表
drop databases 数据库名 删除数据库
delete from 表名 删除记录
select 列名 AS 别名 from 表名 指别名 指别名换别名
运算符
+ - % * / div(结果取整)
比较运算符
= > >= < <= <>(不等于) IN (什么数在列表中) NOT IN (什么数不在列表中)
between x1 AND x2(在x1与x2之间) NOT betwwen x1 AND x2 (不在x1与x2之间)
通配符
字符串的 %(任意字符串) _(任意一个字符串)
select 函数表达式 (列名) from 表名 可以进行计算
常见的函数表达式有: AVG:求平均值 sum:求和 count:统计有多少条记录
max:最高值
特殊的有: select pi() 求圆周率
select vegsion(); 显示MySQl服务器的版本
select user(); 显示当前用户
select charset(’’);显示当前的编码格式
select concat (列名,列名,列名)from 表名
连接记录信息 ''单引号可以直接进行增加所需字体
字符串操作是的函数
select right (列名,字符数)from 表名 从右取出
select left (列名,字符数)from 表名 从左取出
select substring (列名。字符数A,字符数b)from 表名;从x个字符开始截取n个字符 从字符数A显示字符数B的数量
select repeat (字符,列名) form 表名 重复显示 可以将列表值改成字符数
select reverse(列名)from 表名;反转显示 可以将列名里的记录从左往右反转显示
insert into 表名 (列表)valuescnow (); 自动编号只适用于data类型只有设置了主键后才能够自动编号
create table 表名(列表 数据类型 primary key , 列表 数据类型)
设置主键
create table 表名 (列名,数据类型 unique , 列表 数据类型 )
设置唯一键
指定多个条件进行选择
AND(且) OR(或者)
当多个and 和 or 处理时候会优先处理and
case
when 条件1 then 显示的值
when 条件2 then 显示的值
when 条件3 then 显示的值
else 不满足所有条件的值
end
更好的理解会(在表中添加列表)
select 列表,
case
when 条件 then 显示的值
else 显示的值
end as 添加的列表名
from 表
select 列名 from 表名 where 条件 可以获取与条件相关的数据
select * from 表名 where 列表 比较运算符或通配符 想要查询的数据源 可以得到想要查询的数据
模糊查询
select * from 表名 where 列表 like 想要查询的数据源; 可以得到与数据源相关的数据
select * from 表名 where 列表 not like 想要查询的数据源 不可以得到与数据源相关的数据
select distinct 列表 from 表名 删除重复的记录
select * from 表名 where 列名 is null; 查询需要null的数据
select * from 表名 where 列名 is not null; 查询不需要null的数据
升序:select 列名 from 表名 order by 作为键的列
降序:select 列名 from 表名 order by 作为键的列 desc;
(还可以配合limit 使用)
selectselect 列名 from 表名 order by 作为键的列 desc limit 需要显示的行数
select 列名 from 表名 order by 作为键的列 desc limit 需要显示的行数 offset 开始显示记录的移位数
分组显示:
select 列名 from 表名 group by 用于分组的列名
select count(*) from 表名 group by 列名 记录重复的记录数据
select 函数值(所有列表) from 表名 group by 列名 可以使用函数名来替换分组的记录
select 任意表名,函数值(所有列表) as 临时表名 from 表名 group by 列名 单个列表显示可取值
可以使用函数名来替换分组的记录
提取记录后分组
select 任意表名,函数值(所有列表) from 表名 group by 分组列 having 条件 分组记录并设置提取条件
分组后提取记录
select 任意表名,函数值(所有列表) from 表名 条件 group by 分组列 使用函数来进行分组记录并设置提取条件
执行的先后次序
select from where group by having order by
from where group by having order select order by
select
name,sum(name)
as a
from pir
分组后
where name>=20 group by name
having avg(name) order by avg(name)
desc;
编辑数据
UPDATE 可以结合多种表达式进行使用
UPDATE 表名 SET 列名 = 设置的值 修改列的所有记录
UPDATE 表名 SET 列名 = 设置的值 WHERE 条件 只修改符合条件的记录
UPDATE 表名 SET 列名 = 设置的值 ORDER BY 列名 LIMIT 显示的数目 降序排序显示前面几个值
CREATE TABLE 表名 SELECT * FROM WHERE 列名 LIKE 任意数据类型值 复制指定的记录
CREATE TABLE 表名 SELECT * FROM 其他表名 ORDER BY 列名 DESC LIMIT 显示值 OFFSET 显示值A 复制显示值到显示值A的记录所有值(排序后复制表)
DELETE FROM 表名 WHERE 条件 删除符合条件的记录
DELETE FROM 表名 ORDER BY 列名 DESC LIMIT 显示值 降序删除需要删除的记录
SELECT 列名1 FROM 表名1 UNION SELECT 列名2 FROM 表名2; 将两个表的记录合并起来显示
将表名2中的列名2的所有记录合并到表名1中的列名1的记录里面
当使用UNION合并数据表的时候可以使用条件语句来执行所需要的记录
SELECT 列名1 FROM 表名1 WHERE 条件 UNION SELECT 列名2 FROM 表名2
(SELECT 列名1 FROM 表名1 WHERE 条件)
UNION
(SELECT 列名2 FROM 表名2 WHERE 条件);
CREATE VIEW 视图名 AS SELECT 列名 FROM 表名 WHERE 条件
CREATE OR REPLACE VIEW 视图名 AS SELECT NOW() (删除视图重新创建新视图)当存在了同名的视图时可以像这样将视图删除在进行存储
ALTER VIEW 视图名 AS SELECT 列名 FROM 表名; 修改视图结构