MySql基础知识

  1. 创建数据库,并指定默认字符集
mysql> create database 数据库名 default character set utf8;
  1. 删除数据库
mysql> drop database 数据库名;
  1. 使用数据库
mysql> use 数据库; 
显示正在使用的数据库
mysql>select DATABASE();

管理表

  1. 删除表
mysql> drop table 表;
  1. 修改表
    添加字段
mysql> alter table 表 add column 字段名 类型;
mysql> alter table 表 add 字段名 1 类型,add 字段名 2 类型;

修改字段类型

mysql> alter table 表 modify column 列名 类型;

修改字段名称

mysql> alter table 表 change column 列名 新列名 数据类型;

删除字段

mysql> alter table 表 drop column 列名;

修改表名

mysql> alter table 表 rename to 新表名;

数据操作
1)查看表的数据

mysql> SELECT * FROM 表;

2) 插入数据
– 插入所有列(所有列的值都要按顺序依次插入)

mysql> INSERT INTO 表 VALUES(值 1,值 2);

3) 插入部分列(列的数据和值的顺序和数量一定保持一致 )

mysql> INSERT INTO 表(列名 1,列名 2,列名 3) VALUES(值 1,值 2,值 3);

4) 修改数据

mysql> UPDATE 表 SET 列名=值,列名 1=值 1,列名 2=值 2;

5)删除数据

mysql> DELETE FROM 表;

– 注意:
– 1)只能删除表中的数据,不能影响表中的自增长约束
– 2)使用 delete 删除的数据,通过事务可以回滚。
– 3)后面带条件
6)删除所有数据

mysql> TRUNCATE TABLE 表名;

– 注意:
– 1)既能删除表的数据,也能够把表的子增长约束置为 0.
– 2)使用 truncate 删除的数据,不能回滚!
– 3)后面不能带条件

查询数据
分组查询

SELECT COUNT(*) FROM 表名 GROUP BY 列;

分组筛选

SELECT COUNT(*) FROM 表名 GROUP BY 列 HAVING COUNT(*)>值;

查询去除重复数据

SELECT DISTINCT 列名 FROM 表;

条件查询

-- 1) 逻辑条件: and 且 or 或
SELECT * FROM 表名 WHERE 列名 1= 值 1 AND 列名 2=值 2;
SELECT * FROM 表名 列名 1= 值 1 OR 列名 2=值 2;
 
-- 2)比较条件: > < >= <= = between and
SELECT * FROM 表名 WHERE 别名>值;
SELECT * FROM 表名 WHERE 别名<=值;
SELECT * FROM 表名 WHERE 别名<值 OR 别名=值; 
SELECT * FROM 表名 WHERE 别名>=值 AND 别名<=值;
SELECT * FROM 表名 WHERE 别名 BETWEEN 值 1 AND 值 2; -- (包前包后) 
-- 3)判空条件: ='' is null <>'' is not null
UPDATE 表名 SET 列名 ="" WHERE 列名=值;
UPDATE 表名 SET 列名=NULL WHERE 列名=值; 
-- null 和 空字符串的区别:
-- null: 没有数据。 判断 null: is null,判断不为 null: is not null
-- 空字符: 有数据,数据就是空字符串。判断空字符: =''; 判断不为空字符串: <>''
SELECT * FROM 表名 WHERE 列 IS NULL; 
SELECT * FROM 表名 WHERE 列 ='';
 
-- 4) 模糊条件: like
-- like 后面跟上符合
-- %: 表示任意多个字符(0-多个)
-- _: 表示一个字符
SELECT * FROM 表名 WHERE 列名 LIKE '值%'; 
SELECT * FROM 表名 WHERE 列名 LIKE '%值%'; 
SELECT * FROM 表名 WHERE 列名 LIKE '值 ';

聚合查询

SELECT SUM(列)FROM 表名;
SELECT AVG(列) FROM 表名; 
SELECT MAX(列)FROM 表名;
SELECT MIN(列) FROM 表名;
SELECT COUNT(*) FROM 表名;
SELECT COUNT(列) FROM 表名; -- 效率会比 count(*)效率稍高
 
-- 注意: 聚合函数,会排除 null 值的数据

多表查询

内连接查询:只有满足条件的结果才会显示(使用最频繁) 
SELECT 列名 1, 列名 2 -- 2)确定哪些哪些字段
FROM 表 1,表 2 -- 1)确定查询哪些表
WHERE 表 1.列=表 2.列 -- 3)表与表之间连接条件
-- 内连接的另一种语法
SELECT 列名 1,列名 2 
FROM 表 1 
INNER JOIN 表 2
ON 表 1.列=表 2.列; 左[外]连接查询: 使用左边表的数据去匹配右边表的数据,如果符合连接条件的结果则显示,如果不符合连接条件
则显示 null
-- (注意: 左外连接:左表的数据一定会完成显示!)
SELECT 列名 1,列名 2 
FROM 表 1
LEFT OUTER JOIN 表 2
ON 表 1.列=表 2.列; 右[外]连接查询: 使用右边表的数据去匹配左边表的数据,如果符合连接条件的结果则显示,如果不符合连接条件
则显示 null
-- (注意: 右外连接:右表的数据一定会完成显示!)
SELECT 列名 1,列名 2 
FROM 表 1
RIGHT OUTER JOIN 表 2
ON 表 1.列=表 2.列; 
-- 2.4 自连接查询
SELECT 列名 1, 列名 2 
FROM 表 别名 1
LEFT OUTER JOIN 表 别名 2
ON 别名 1.列=别名 2.列;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值