Mysql数据库学习
一、命令行数据库
1、登录数据库
net start MySQL 启动数据库服务
mysql -uroot -pwxs15279571064
2、Mysql 的常用命令
show databases; 查看数据库中有那些数据库以分号结尾
use 数据库名; 使用数据库
create database study ; 创建数据库
show databases ; 展现数据库
3、表的常用命令
use student;
show tables;
4、数据类型
5、字段的属性
二、表的创建和操作
1、命令创建一张表
CREATE TABLE IF NOT EXISTS student
(
id
INT(4) NOT NULL AUTO_INCREMENT COMMENT ‘学号’,
name
VARCHAR(20) NOT NULL DEFAULT ‘匿名’ COMMENT ‘姓名’,
pwd
VARCHAR(20) NOT NULL DEFAULT ‘123456’ COMMENT ‘密码’,
sex
VARCHAR(4) NOT NULL DEFAULT ‘男’ COMMENT ‘性别’,
birthday
DATETIME DEFAULT NULL COMMENT ‘出生日期’,
address
VARCHAR(100) DEFAULT NULL COMMENT ‘家庭住址’,
PRIMARY KEY(id
)
)ENGINE=INNODB DEFAULT CHARSET=utf8
2、数据库引擎
3、修改表和删除表
1、修改表
ALTER TABLE wxs RENAME AS dxy 给表重命名
ALTER TABLE wxsuser
ADD age
INT(20) 增加一个字段
ALTER TABLE wxsuser MODIFY age VARCAHER(10) 修改字段的约束类型
ALTER TABLE wxsuser
CHANGE age
age01
INT(15) 修改字段名
ALTER TABLE wxsuser
DROP age01
删除字段
2、删除表
DROP TABLE IF EXISTS wxsuser
三、数据库的数据管理
1、数据库的外键
四、DML语言(增、删、改)
1、添加(insert)
2、更改操作
3、删除表数据
CREATE TABLE test
(
id
INT(10) NOT NULL AUTO_INCREMENT,
coll
VARCHAR(20) NOT NULL,
PRIMARY KEY(id
)
)ENGINE=INNODB DEFAULT CHARSET=utf8
INSERT INTO test
(coll
) VALUES(‘1’),(‘2’),(‘3’)
DELETE from test
五、DQL查询数据
1、字符串拼接查询
SELECT * FROM account
SELECT name
,money
FROM account
SELECT name
as 姓名,money
as 金额 FROM account
SELECT CONCAT(‘姓名:’,name) as 新名字 FROM account 拼接字符串函数 concat(str,str)
2、去重查询
去重复的数据
SELECT * FROM account
SELECT id
from account
SELECT DISTINCT id
from account id字段重复数据去重
数据库列表达式
3、模糊查询
4、联表查询
–查询(学号、姓名,金额,COLL)
两张表的节点
通过inner join 将两张表连接
两张表相同的字段查询出来,指明是那张表的字段 s.id
SELECT s.id,name,money,coll from account
as s INNER JOIN test
as t WHERE s.id=t.id
5、自动连接和联表查询
6、分页(limit)排序(order by)
排序
排序: 升序 ASC 降序:DESC
分页:
7、子查询和嵌套查询
inner join:
子查询嵌套:
子查询改造:
8、Mysql的常用函数和查询语法
9、聚合函数count()及分组过滤
分组和过滤:
10、数据库级别的MD5加密
CREATE TABLE tearch
(
id
INT(10) not NULL auto_increment,
name
VARCHAR(10) NOT null,
meojr
VARCHAR(20) NOT NULL,
seryty
INT(30) NOT NULL,
PRIMARY KEY(id
)
)ENGINE=INNODB DEFAULT CHARSET=utf8
INSERT INTO tearch
VALUES(1,‘wxs’,‘学生’,1000),(2,‘dxy’,‘老师’,3000),(3,‘zyj’,‘程序员’,3477)
UPDATE tearch
SET seryty=MD5(seryty)
INSERT INTO tearch
VALUES(4,‘wdw’,‘老板’,MD5(‘6751651’))
11、select小结
六、Mysql事务
1、事务的原则ACID(原则性,一致性,隔离性,持久性)
2、事务执行的流程
3、模拟事务转账场景
CREATE TABLE accout(
id
INT(10) NOT NULL auto_increment,
name
VARCHAR(20) NOT NULL ,
money
INT(10) NOT NULL,
PRIMARY KEY(id
)
)ENGINE=INNODB DEFAULT CHARSET=utf8
INSERT INTO accout
(name
,money
) VALUES(‘wxs’,2000.00),(‘dxy’,10000.00)
SET autocommot=0;
START TRANSACTION
UPDATE accout SET money=money-500 WHERE name
=‘wxs’;
UPDATE accout SET money=money+500 WHERE name
=‘dxy’;
COMMIT;
ROLLBACK;
SET autocommit=1;
七、数据库索引
1、索引的分类和基础语法
2、测试索引(100万数据)
访问比较靠后的数据时,需要将全部数据遍历一遍,添加索引后,指定到你想要查询的数据,耗时比较少课
可以通过 explain来分析sql语句,来查看数据的的执行情况
*
3、索引的原则
八、数据库权限管理
1、用户管理
2、数据库备份
九、如何设计一个项目的数据库
1、设计数据库的步骤
2、数据库的三大范式