prompt命令修改mysql提示符,默认是mysql>
例如:
prompt abc
prompt \u@\h \d 当前用户名@当前主机名 当前数据库名
SELECT VERSION(); 数据库版本
SELECT NOW(); 当前时间
SELECT USER(); 显示当前用户
SHOW WARNINGS; 查看警告信息
创建数据库t1
CREATE DATABASE IF NOT EXISTS t1 或 CREATE SCHEMA IF NOT EXISTS t1
CREATE DATABASE t1 DEFAULT CHARACTER SET gbk 或 CREATE DATABASE t1 CHARACTER SET gbk
SHOW CREATE DATABASE t1 查看创建数据库信息
修改数据库编码
ALTER DATABASE t1 DEFAULT CHARACTER SET=utf8 或 ALTER SCHEMA t1 CHARACTER SET=utf8
删除数据库
DROP DATABSE IF EXISTS t1 或 DROP SCHEMA t1
数据类型
整形类型(字节) TINYINT(1) SMALLINT(2) MEDIUMINT(3) INT(4) BIGINT(8)
浮点类型 float(M,D) DOUBLE(M,D) M总位数,D小数点后的位数
时间日期类型 YEAR TIME DATE DATETIME TIMESTAMP
字符类型 CHAR(0-255) VARCHAR(0-65535)
TINYTEXT(2^8) TEXT MEDIUMTEXT LONGTEXT(2^32)
ENUM('val1','val2') 枚举类型 多种选一 比如男女
SET('val1','val2') 集合 多个值中可以有多种组合 比如爱好可以多选组成不同的选项
USE test //打开数据库
SELECT DATABASE(); 查看当前开大的数据库
创建数据库:CREATE DATABASE mytest DEFAULT CHARACTER SET utf8mb4;
创建表:CREATE TABLE t1( username VARCHAR(20), age TINYINT UNSIGNED, salary FLOAT(8,2) UNSIGNED );
SHOW TABLES //查看当前数据库中的表
SHOW TABLES FORM XXXDATABASE //查看某个数据库中的所有表
SHOW COLUMNS FROM t1 //查看某表的数据结构
插入数据
1. INSERT INTO t1 (username,age,salary) VALUES ('sdf',18,888.88)
2. INSERT t1 (username,age,salary) VALUES ('sdf',18,888.88)
3.INSERT t1 VALUES ('sdf',18,888.88)
4.INSERT t1 (username,age) VALUES ('wer',20)
NOT NULL
CREATE TABLE t2(username VARCHAR(20) NOT NULL,age TINYINT UNSIGNED NULL);
主键与自增
CREATE TABLE t3(id SMALLINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,username VARCHAR(20) NOT NULL);
UNIQUE KEY
CREATE TABLE t4(id SMALLINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,username VARCHAR(20) UNIQUE KEY,age TINYINT NOT NULL);
默认值
CREATE TABLE t5(id SMALLINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,username VARCHAR(20) NOT NULL UNIQUE KEY,sex ENUM('1','2','3') DEFAULT '3');
约束
约束的字段是一个字段叫做列级约束,两个或两个以上的约束叫做表级约束
五种约束:NOT NULL, PRIMARY KEY, UNIQUE KEY, DEFAULT, FOREIGN KEY
FOREIGN KEY
父表和子表必须使用相同的存储引擎,而且禁止使用临时表。存储引擎必须是InnoDB
SHOW INDEXES FROM 表明 //查看某表的所有所有
FOREIGN KEY (要创建外键的外键列名) REFERENCES 父表名 (参照列字段名)
外键约束有4个参照操作:目的是操作主表时候如果处理子表的数据,以CASCADE举例
FOREIGN KEY (要创建外键的外键列名) REFERENCES 父表名 (参照列字段名) ON DELETE CASCAD
主键约束,唯一约束,外键约束才有表级约束。
列级约束既可以在定义的时候声明,也可以在列定义后声明。表级约束只能在列定义后声明。
mysql的锁:共享锁(读锁),排它锁(写锁)
共享锁(读锁):在同一时间段内,多用户可以读取同一个资源
排它锁(写锁):在任何时间只能有一个用户写入资源,当进行写锁时会阻塞其他的读锁或者写锁的操作
锁颗粒:表锁,行锁
表锁:是一种开销最小的锁策略
行锁:是一种开销最大的锁策略
事务的特性:原子性,一致性,隔离性,持久性
mysql支持的存储引擎:MyISAM,InnoDB,Memory,CSV,Archive
MyISAM引擎:适用于事务的处理不多的情况;存储限制256T,支持索引,不支持事务,锁颗粒为表级锁定,支持数据压缩,不支持外键
InnoDB引擎:适用于多事务,支持外键的情况;存储限制64T,支持索引,支持事务,锁颗粒为行锁,不支持数据压缩,支持外键
Memory引擎:存储限制根据主机内存有所不同;不支持事务,支持索引,锁颗粒为表锁,不支持数据压缩,不支持外键
Archive引擎:存储无限制,不支持事务,不支持索引,锁颗粒为行锁,支持数据压缩。不支持外键
设置修改mysql存储引擎:
方法1:修改mysql配置文件,修改默认存储引擎
方法2:创建表的时候指定存储引擎create table xxx(...) ENGINE=InnoDB
方法3:alter table tp1 ENGINE=InnoDB;