数据库学习笔记

MySQL

MySQL是一个关系型数据库管理系统,由瑞典MySQLAB公司开发,目前属于Oracle旗下产品。MySQL 最流行的关系型数据库管理系统,在 WEB 应用方面MySQL是最好的RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。

 

MySQL存储引擎:

l  InnoDB事务型数据库的首选引擎,支持ACID事务,支持行级锁定, MySQL 5.5 起成为默认数据库引擎.

l  Cluster/NDB高冗余的存储引擎,用多台数据机器联合提供服务以提高整体性能和安全性。适合数据量大,安全和性能要求高的应用

 

MySQL管理:

启动MySQL服务

cd user/bin

./saft_mysqld &

Windows的启动方式:net start mysql

关闭MySQL服务

cd user/bin

./mysqladmin –u root –p shutdown

Windows的关闭方式:net stop mysqsl

l  用户登录到数据库:mysql–u 用户名 –p,回车之后输入密码

设置用户方式一:

INSERT INTO user (host, user, password, select_priv,insert_priv, update_priv) VALUES ('localhost', 'guest', PASSWORD('guest123'),'Y', 'Y', 'Y');

设置用户方式二:

GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP ONTUTORIALS.* TO 'zara'@'localhost' IDENTIFIED BY 'zara123';

l  SHOW DATABASES:列出 MySQL 数据库管理系统的数据库列表。

l  USE 数据库名:选择要操作的MySQL数据库,使用该命令后所有MySQL命令都只针对该数据库

l  SHOW TABLES:显示指定数据库的所有表,使用该命令前需要使用 use 命令来选择要操作的数据库

l  SHOW COLUMNS FROM 数据表:显示数据表的属性,属性类型,主键信息,是否为 NULL,默认值等其他信息

l  SHOW INDEX FROM 数据表:显示数据表的详细索引信息,包括PRIMARY KEY(主键)

l  SHOW TABLE STATUS FROM 数据库名 LIKE 表名:输出MySQL数据库管理系统的性能及统计信息

 

创建数据库:Createdatabase 数据库名

 

删除数据库:dropdatabase 数据库名

 

创建数据库表:

CREATE TABLE TEST(

ID INT NOT NULL AUTO_INCREMENT,

NAME VARCHAR(32) NOT NULL,

ADDRESS VARCHAR(128) NOT NULL,

BIRTHDAY DATE,

PRIMARY KEY(ID)

);

 

删除数据库表:

DROP TABLE 数据表;

 

插入数据:

INSERT INTO TABLE_NAME ( field1, field2,...fieldN )

                       VALUES

                       ( value1, value2,...valueN);

 

删除数据:

DELETE FROM TABLE_NAME [WHERE XX]

 

MySQL事务:

  • 在MySQL中只有使用了Innodb数据库引擎的数据库或表才支持事务
  • 事务处理可以用来维护数据库的完整性,保证成批的SQL语句要么全部执行,要么全部不执行
  • 事务用来管理insert,update,delete语句

 

事务必须满足4个条件(ACID): Atomicity(原子性)、Consistency(稳定性)、Isolation(隔离性)、Durability(可靠性)

 

MySQL索引:

单列索引,即一个索引只包含单个列,一个表可以有多个单列索引,但这不是组合索引。

组合索引,即一个索包含多个列。

 

索引的建立对于MySQL的高效运行是很重要的,索引可以大大提高MySQL的检索速度。

 

虽然索引大大提高了查询速度,同时却会降低更新表的速度,如对表进行INSERT、UPDATE和DELETE。因为更新表时,MySQL不仅要保存数据,还要保存一下索引文件。建立索引会占用磁盘空间的索引文件

 

创建索引的方式:

创建表的同时创建索引:

CREATE TABLE mytable( 

ID INT NOT NULL,  

username VARCHAR(16) NOT NULL, 

INDEX [indexName] (username(length)) 

); 

直接创建索引:

CREATE INDEX indexName ON mytable(username(length));

l  修改表接口创建索引:

ALTER mytable ADD INDEX [indexName] ON (username(length))

 

删除索引:DROP INDEX[indexName] ON mytable;

 

唯一索引:

与普通索引类似,不同的就是:索引列的值必须唯一,但允许有空值。如果是组合索引,则列值的组合必须唯一

 

主键:

主键只能作用于一个列上,添加主键索引时,你需要确保该主键默认不为空(NOT NULL

 

MySQL临时表:

MySQL临时表在我们需要保存一些临时数据时是非常有用的。临时表只在当前连接可见,当关闭连接时,MySQL会自动删除表并释放所有空间

 

临时表的创建方法:

l  可以用创建数据表的方式创建临时表(在TABLE前面加关键字TEMPORARY):

CREATE TEMPORARY TABLE TEMP_TABLE_NAME(……)

l  可以在查询已存在表数据的同时创建临时表:

CREATE TEMPORARY TABLE TEMP_TABLE_NAME(SELECT ID,NAME FROM TABLE_NAME)

 

SHOWCREATE TABLE TABLE_NAME可以查看创建表的完整语句

 

MySQL序列:

创建表时,如果使用序列,可以指定序列初始值:AUTO_INCREMENT = 100

也可以修改表来指定序列初始值:ALTER TABLE TABLE_NAMEAUTO_INCREMENT = 100

 

MySQL函数

l  CONCAT(str1,str2,…):字符串连接函数

l  CONCAT_WS(separator,str1,str2,...):CONCAT_WS() 代表 CONCATWith Separator ,是CONCAT()的特殊形式。第一个参数是其它参数的分隔符。分隔符的位置放在要连接的两个字符串之间。分隔符可以是一个字符串,也可以是其它参数。

l  group_concat:group_concat([DISTINCT] 要连接的字段 [Order BYASC/DESC 排序字段] [Separator '分隔符'])

l  repeat()函数:用来复制字符串,如:select repeat('ab',2);

l  left(str, length):从左开始截取字符串

l  right(str, length):从右开始截取字符串

l  substring(str, pos),substring(str, pos, length):substring(被截取字段,从第几位开始截取), substring(被截取字段,从第几位开始截取,截取长度)

l  数学函数:ABS(X),MOD(N,M),FLOOR(X),ROUND(X),POW(X,Y)等

 

 

Redis

https://www.w3cschool.cn/redis/

 

 

 


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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值