MySQL是一个关系型数据库管理系统,由瑞典MySQLAB公司开发,目前属于Oracle旗下产品。MySQL 最流行的关系型数据库管理系统,在 WEB 应用方面MySQL是最好的RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。
l InnoDB事务型数据库的首选引擎,支持ACID事务,支持行级锁定, MySQL 5.5 起成为默认数据库引擎.
l Cluster/NDB高冗余的存储引擎,用多台数据机器联合提供服务以提高整体性能和安全性。适合数据量大,安全和性能要求高的应用
l 启动MySQL服务:
cd user/bin
./saft_mysqld &
Windows的启动方式:net start mysql
l 关闭MySQL服务:
cd user/bin
./mysqladmin –u root –p shutdown
Windows的关闭方式:net stop mysqsl
l 用户登录到数据库:mysql–u 用户名 –p,回车之后输入密码
l 设置用户方式一:
INSERT INTO user (host, user, password, select_priv,insert_priv, update_priv) VALUES ('localhost', 'guest', PASSWORD('guest123'),'Y', 'Y', 'Y');
l 设置用户方式二:
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事务:
事务必须满足4个条件(ACID): Atomicity(原子性)、Consistency(稳定性)、Isolation(隔离性)、Durability(可靠性)
MySQL索引:
单列索引,即一个索引只包含单个列,一个表可以有多个单列索引,但这不是组合索引。
组合索引,即一个索包含多个列。
索引的建立对于MySQL的高效运行是很重要的,索引可以大大提高MySQL的检索速度。
虽然索引大大提高了查询速度,同时却会降低更新表的速度,如对表进行INSERT、UPDATE和DELETE。因为更新表时,MySQL不仅要保存数据,还要保存一下索引文件。建立索引会占用磁盘空间的索引文件
创建索引的方式:
l 创建表的同时创建索引:
CREATE TABLE mytable(
ID INT NOT NULL,
username VARCHAR(16) NOT NULL,
INDEX [indexName] (username(length))
);
l 直接创建索引:
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
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)等
https://www.w3cschool.cn/redis/