MySQL常用知识

一、MySQL的命令

1、MySQL的常见命令

1.查看当前所有的数据库
show databases;
2.打开指定的库
use 库名
3.查看当前库的所有表
show tables;
4.查看其它库的所有表
show tables from 库名;
5.创建表
create table 表名(
 	列名 列类型,
 	列名 列类型,
 	。。。
);
6.查看表结构
desc 表名;
7.查看服务器的版本
方式一:登录到mysql服务端
select version();
方式二:没有登录到mysql服务端
mysql --version
或
mysql --V

2、DQL语言

DQL(Data Query Language):数据查询语言

① 基础查询:

SELECT 查询的字段
FROM 表名

② 条件查询

SELECT 查询的字段
FROM 表名
WHERE 条件
条件表达式

示例:salary>10000
条件运算符:
< >= <= = != <>

逻辑表达式

示例:salary>10000 && salary<20000
逻辑运算符:
and(&&):两个条件如果同时成立,结果为true,否则为false
or(||):两个条件只要有一个成立,结果为true,否则为false
not(!):如果条件成立,则not后为false,否则为true

模糊查询

示例:last_name like ‘a%’
':用于包裹搜索条件
%:用于代替任意数目的任意字符
_:用于代替一个任意字符
\:转义符号
注意:上述符号如果作为查询条件则需要进行转义。

排序查询

语法:

SELECT 条件
FROM 表明
WHERE 条件
ORDER BY 排序的字段|表达式|函数|别名 【asc|desc
分组查询
SELECT 条件
FROM 表明
WHERE 条件
GROUP BY 分组字段

特点:
1、可以按单个字段分组
2、和分组函数一同查询的字段最好是分组后的字段
3、分组筛选

针对的表					位置							关键字
分组前筛选:			原始表						group by的前面 where
分组后筛选:			分组后的结果集				group by的后面 having

4、可以按多个字段分组,字段之间用逗号隔开
5、可以支持排序
6、having后可以支持别名

多表连查

笛卡尔乘积:如果连接条件省略或无效则会出现
解决办法:添加上连接条件

  1. 传统模式下的连接 :等值连接——非等值连接
    等值连接的结果 = 多个表的交集
    n表连接,至少需要n-1个连接条件
    多个表不分主次,没有顺序要求
    一般为表起别名,提高阅读性和性能
  2. 通过join关键字实现连接
    等值连接、非等值连接 (内连接)
    外连接
    交叉连接
    语法:
SELECT 查询字段
FROM1
[ INNER | LEFT OUTER | RIGHT OUTER | CROSS ]JOIN2 ON 连接条件
[ INNER | LEFT OUTER | RIGHT OUTER | CROSS ]JOIN3 ON 连接条件
WHERE 条件
GROUP BY 分组字段
HAVING 分组后筛选条件
ORDER BY 排序字段或表达式
子查询
  1. 子查询都放在小括号内
  2. 子查询可以放在from后面、select后面、where后面、having后面,但一般放在条件的右侧
  3. 子查询优先于主查询执行,主查询使用了子查询的执行结果
  4. 子查询根据查询结果的行数不同分为以下两类:
    ① 单行子查询
    结果集只有一行
    一般搭配单行操作符使用:> < = <> >= <=
    非法使用子查询的情况:
    a、子查询的结果为一组值
    b、子查询的结果为空
    ② 多行子查询
    结果集有多行
    一般搭配多行操作符使用:any、all、in、not in
    in: 属于子查询结果中的任意一个就行
    any和all往往可以用其他查询代替
分页查询

语法:

SELECT 查询字段
FROM 表名
WHERE 条件
GROUP BY 分组字段
HAVING 分组后筛选
ORDER BY 排序字段
LIMIT [起始索引数,]每页条目

特点:

  1. 起始条目索引从0开始
  2. limit子句放在查询语句的最后
  3. 公式:select * from 表 limit (page-1)*sizePerPage,sizePerPage
    假如: 每页显示条目数sizePerPage 要显示的页数 page
联合查询
SELECT 字段|常量|表达式|函数 【FROM 表】 【WHERE 条件】 UNIONALLSELECT 字段|常量|表达式|函数 【FROM 表】 【WHERE 条件】 UNIONALLSELECT 字段|常量|表达式|函数 【FROM 表】 【WHERE 条件】 UNIONALL.....
SELECT 字段|常量|表达式|函数 【FROM 表】 【WHERE 条件】

特点:
1、多条查询语句的查询的列数必须是一致的
2、多条查询语句的查询的列的类型几乎相同
3、union代表去重,union all代表不去重

③ 常用函数

字符函数
  • concat:拼接
  • substr:截取子串
  • upper:转换成大写
  • lower:转换成小写
  • trim:去前后指定的空格和字符
  • ltrim:去左边空格
  • rtrim:去右边空格
  • replace:替换
  • lpad:左填充
  • rpad:右填充
  • instr:返回子串第一次出现的索引
  • length:获取字节个数
数学函数
  • round 四舍五入
  • rand 随机数
  • floor向下取整
  • ceil向上取整
  • mod取余
  • truncate截断
日期函数
  • now当前系统日期+时间
  • curdate当前系统日期
  • curtime当前系统时间
  • str_to_date 将字符转换成日期
  • date_format将日期转换成字符
流程控制函数
  • if 处理双分支
  • IFNULL(expr1,expr2):如果第一个参数 expr1 不为NULL则直接返回它,否则返回第二个参数 expr2。
  • CASE
    WHEN condition_1 THEN commands
    WHEN condition_2 THEN commands

    ELSE commands
    END
分组函数
  • sum 求和
  • max 最大值
  • min 最小值
  • avg 平均值
  • count 计数
其他函数
  • version版本
  • database当前库
  • user当前连接用户
  • NULLIF(expr1,expr2)

3、DML语言

① 插入

语法:
INSERT INTO 表名(字段名,...)
VALUES(字段值,...);
1、字段类型和值类型一致或兼容,而且一一对应
2、可以为空的字段,可以不用插入值,或用null填充
3、不可以为空的字段,必须插入值
4、字段个数和值的个数必须一致
5、字段可以省略,但默认所有字段,并且顺序和表中的存储顺序一致

② 更新

语法:
UPDATE 表名 SET 字段1=更新值1,字段2=更新值2...
[WHERE 条件]
修改多表的语法:
UPDATE 表名1 别名1,表明2 别名2
SET 别名.字段=更新值..
WHERE 连接条件
AND 筛选条件

③ 删除

方式一:DELETE

语法:
DELETE FROM 表名 
[WHERE 筛选条件]
多表删除的语法:
DELETE 别名1,别名2
FROM 表名1 别名1,表名2 别名2
WHERE 连接条件
AND 筛选条件

方式二:TRUNCATE

语法:
TRUNCATE TABLE 表名

两种删除的区别:

1.truncate不能加where条件,而delete可以加where条件
2.truncate的效率高一丢丢
3.truncate 删除带自增长的列的表后,如果再插入数据,数据从1开始
delete 删除带自增长列的表后,如果再插入数据,数据从上一次的断点处开始
4.truncate删除不能回滚,delete删除可以回滚

4、DDL语言

① 对数据库的管理

1、创建库
create database 库名
2、删除库
drop database 库名

② 对表的管理

#1.创建表
CREATE TABLE IF NOT EXISTS stuinfo(
	stuId INT,
	stuName VARCHAR(20),
	gender CHAR,
	bornDate DATETIME);
#2.修改表 alter
语法:ALTER TABLE 表名 ADD|MODIFY|DROP|CHANGE COLUMN 字段名 【字段类型】;

#①修改字段名
ALTER TABLE studentinfo CHANGE  COLUMN sex gender CHAR;

#②修改表名
ALTER TABLE stuinfo RENAME [TO]  studentinfo;
#③修改字段类型和列级约束
ALTER TABLE studentinfo MODIFY COLUMN borndate DATE ;

#④添加字段

ALTER TABLE studentinfo ADD COLUMN email VARCHAR(20) first;
#⑤删除字段
ALTER TABLE studentinfo DROP COLUMN email;
#3.删除表
DROP TABLE [IF EXISTS] studentinfo;

③ 常见的约束

NOT NULL
DEFAULT
UNIQUE
CHECK
PRIMARY KEY
FOREIGN KEY

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值