MySQL

数据库:按照数据结构来组织,来存储和管理数据的仓库,就是一堆文件可以存储数据再加上数据管理
DBMS 数据库管里软件

书写规则:关键字大写 其他小写(一般)

表:
行:一条数据 一条记录
列:字段 或者属性

储存引擎:
MyISAM,较高的插入,查询功能,但不支持事物,不支持外键
InnoDB支持事务,支持外键,支持行级锁,性能低

列的常用类型:
1):整数类型:INT BIGINT
2): FLOAT DOUBLE DECIMAL (定点数据)
3):字符类型 CHAR(定长字符)
VARCHAR(边长字节)
TEXT 系列
TINYtext
TEXT
MEDIUMTEXT
LONGTEXT

4):日期类型
YEAR
DATE 日历
TIME 时间
DATETIME 日历加时间
TIMESTAMP

二进制类型: 图形图像等
BINARY
VARBINARY
BIT
TINYBLOB
BLOB
MEDIUBLOB
LONGBLOB

创建表
1.先进入某一个数据库
2.输入建表的命令
CREAT TABLE 表名(
列名1 类名 【约束】,
列名2 类名 【约束】,
列名n 类名 【约束】
);

一张学生信息表(t_student) 包含 id name emal age

CREATE TABLE u_student(
id BIGINT,
name VARCHAR(20),
emal VARCHAR(40),
age INT DEFAULT 20
);

若果建表的时候用到关键字
比如表名使用了oeder 表名 此为SQL中的关键字 排序 避免使用关键字 或者用反引号
查看表的结构desc 表名

表的约束:
针对于列来做的约束
NOT NULL 非空约束
DEFAULT(20) 设置默认值
UNIQUE 唯一约束(元素唯一)
PRIMARY KEY 主键约束 非空且唯一
AUTO_INCREMENT 主键自增
/*****************************************
操作数据 (DML)
插入数据:每次只能插入一行
INSERT INTO 表名(列名1,列名2.。。。)(值 value1, value2….)

////////////////////////////////////////////////////////////////***************************************************
DQL查询语句
DML 增删改
DDL 创建和删除一张表

常见得命令:
show databases 查看多个数据库
CREATE DATABASE database_name 创建数据库
DROP DATABASE database_name 删除数据库
INSERT INTO 表名(列名1,列名2.。。。)(值 value1, value2….)
insert into 表名 (咧1,例2,咧3)(值 value1, value2….),(值 value1, value2….),(值 value1, value2….)插入多次
插入查询结果,
insert into t_student (name) select name from t_student
将 t_student中的 name查询出来再插入到t_student里面
更新语句 修改语句
UPDATE 表名 SET 列名1=值1,列名2=值2.。。。。WHERE【条件】where(id=4) 没有条件则修改全表
删除语句
DELETE FROM 表名 WHERE(条件)

DQL 简单查询
SELECT 列名1 列名2.。。。FROM表名 SELECT *FROM表名 查询全表 列的顺序跟建表的时候一样的
SELECT DISTINCT 列名 FROM 表名 去掉列中重复的部分

实现数学运算
SELECT 列1,列2 , 列1*列2 FROM 表名
SELECT 列1*50 FROM 表名

设置列的别名
SELECT 列1*50 别名 FROM 表名

再查询结构中加入字符串
SELECT CONCAT(列1,‘字符串’,。。。)FROM 表名

过滤查询:
比较运算符 < > <= >= !=
SELECT * FROM 表名 WHERE 条件

SELECT FROM WHERE

先执行 FROM 再执行WHERE 最后执行 SELECT 最后执行ORDER BY LIMIT最后分页

逻辑运算符 and( 等于&&的效果) or(等于||的效果) not(等于!的效果)

优先级
1.比较运算符
2 not
3. and
4. OR

范围查询
SELECT 列名 FROM 表名
WHERE BETWEEN 最小值 AND 最大值
WHERE id IN(2,4); 条件为2和4
WHERE 列名 ISNULL 判断列为空

模糊查询
LIKE的通配符
_:必须占据一个字符位置
%:可以占据任意字符
WHERE name LIKE ‘张_三’ 查不出张三
WHERE name LIKE ‘张%三’ 能查出张三
WHERE name LIKE ‘%张%三’

排序 ORDER BY必须出现在SELECT后边

ASC 缺省 升序
DESC 降序

SELECT FROM 表名 WHERE(条件) ORDER BY(列名1【ASC/DESC】,列名2【ASC/DESC】.。。。)

MYSQL的分页查询

LIMIT i,j i表示从哪一个索引开始截取 j表示每页最多的数据量
第N叶 i=j*(n-1);
SELECT * FROM 表名 LIMIT j*(n-1),j

统计函数:
作用于一组数据 并返回一个之
COUNT :统计结果记录数 (一共多少条数据)查询结构总数用Long来接受
MAX:最大值
MIN:最小值
SUM:求和
AVG:平均值
SELECT AVG(列)FROM 表名 平 均数
SELECT COUNT(主键id) FROM 表名 WHERE(id=3)
SELECT COUNT(主键id),MAX(列名) FROM 表名 WHERE(id=3)

多表查询

从多种变种查询数据
SELECT 列1 列2 .。。。。FROM 表1,表2.。。。
笛卡尔积:没有连接条件的表关系

消除笛卡尔积 做等值连接
WHERE 表名。列1=表2名。列名
外键约束(FOREING KEY):A表中的外键例必须来源于B表中的主键列
ALTER TABLE 表名 engine ‘innoDB’ 将表改成innoDB
外键列一般起名 引用表名_引用列名
SELECT P.id
FROM 表名 别名p,表名
WHERE 等值连接 AND条件

备份 和回复

再改数据库之前 请先备份
mysqldump-u账户-p密码 数据库名称>地址 导出
mysql-u账户-p密码 数据库名称<地址 导入

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值