Open qingely opened 5 years ago
cls清空 上下箭头进行命令历史命令切换
使用命令行启动MySQL服务
MySQL登陆: mysql -v;(版本信息); mysql -u[username] -p[password] -P[port][default:3306] -h[ip][default:127.0.0.1](默认端口和本机登录无须写-P和-h)
参数目录: -v ----- 版本 -u ----- 用户名 -p ----- 密码 -P ----- 端口号 -h ----- 服务器
修改MySQL提示符:
连接客户端时通过参数指定 shell>mysql -uroot -proot -prompt \h> 连接上客户端后,通过ormpt mysql>prompt \h>
回车后变成: localhost>
参数目录: \D----- 完整的日期 \d------ 当前数据库 \h------ 服务器名称 \u------ 当前用户
mysql 常用命令:
select version() 显示当前服务器版本 select now() 显示当前日期时间 select user() 显示当前用户
mysql语句的规范:
查看当前服务器下的数据库列表 show databases
数据类型是指列,存储过程参数,表达式和局部变量的数据特征,它决定了数据的存储格式,代表了不同的信息类型;
整形: TINYINT :有符号-128~127: 无符号0-255; 占1字节; SMALLINT :有符号-32768~32767: 无符号0~65535; 占2字节; MEDIUMINT:有符号-8388608~8388607: 无符号0~16777215; 占3字节; INT :有符号-2147483648~2147483647: 无符号0-4294967259; 占4字节; BIGINT :有符号-9223372036854775808~9223372036854775807:无符号0~18446744073709551615;占8字节。
浮点型 FLOAT[(M,D)] M是数字总位数,D是销售古典后面的位数。如果MD被省略 ,根据硬件允许的限制来保存值, 单精度数精确到大约7位小数位。
DOUBLE[(M,D)] 小数值范围大约是单精度的10倍,
日期时间型 所占字节大小
YEAR 1
TIME 3
DATA 3
DATATIME 8
TIMSTAMP(时间戳) 4
创建数据表 步骤1打开数据库:use t1;( 要打开的数据库)
查看当前数据库:SELECT DATABASE(); 查看当前库中的数据表:SHOW TABLES; 查看任意库中的数据表:SHOW TABLES FROM db_name; 查看数据表结构:SHOW COLUMNS FROM table_name; 查看系统支持的存储引擎:Show engines; 查看表使用的存储引擎:show table status from db_name where name='table_name'; 插入记录:INSERT [INTO] tbl_name [(col_name,...)] VALUES(val,...) 查看创建表语句:SHOW CREATE TABLE table_name; 记录查找:SELECT * FROM tbl_name; 查询索引: SHOW INDEXES FROM provinces\G;
null 允许为空值; not null 不允许未空值; AUTO_INCREMENT 自增属性,必须和主键组合使用
PRIMARY KEY 主键约束: 每张数据表只能存在一个主键 主键保证记录的唯一性 主键自动为not null; UNIOUE KEY 唯一约束: 可以保证记录唯一性 字段可以为空 每张表可以存在多个唯一约束 DEFAULT 默认值 在插入记录是如果没有明确为字段赋值,则自动赋予默认值; FOREIGN KEYp: 保持数据一致性,完整性。 实现一对一或一对多关系
外键约束的要求: 1,父表和子表必须使用相同的存储引擎,而且禁止使用临时表。(父表:子表所参照的表子表:具有外键列的表)
2,数据表的存储引擎只能为InnoDB。
3.外键列和参照列必须具有相似的数据类型。其中数字的长度或是否有符号位必须相同;而字符的长度则可以不同。( 外键列:曾经加过FOREIGN KEYp的列,参照列:外键列所参照的列称为参照列)
4,外键列和参展列必须创建索引。如果外键列不存在索引的话,mysql将自动创建索引 。( 如果参照列不存在索引的话,mysql不会自动创建索引。但如果参照列为主键的话,则会自动创建索引。主键在创建的同时会自动创建索引,所以参照列其实已经有了索引。而外键列上没有创建索引,mysql则会自动创建索引。)
编辑数据表的默认存储引擎 mysql配置文件 default-storage-engine=INNODB;
创建外键:FOREIGN KEY (pid) REFERENCES provinces (id); 参照操作 在创建表的时候; 在foreign key (pid) references provinces(id) on delete cascade,(这样书写)
1、添加单列:如果指定FIRST,则在整个表的最前方,默认不写为整个表的最后方;如果指定AFTER col_name,则在col_name的后面。 ALTER TABLE tbl_name ADD [COLUMN] col_name column_definition [FIRST AFTER col_name] 2、添加多列:无法指定FIRST/AFTER、只能默认为最后方。 ALTER TABLE tbl_name ADD [COLUMN] (col_name column_definition,...) 3、删除单列 ALTER TABLE tbl_name DROP [COLUMN] col_name 4、删除多列(Ps:删除一列的同时,新增一列。其间用逗号隔开) ALTER TABLE tbl_name DROP [COLUMN] col_name, DROP [COLUMN] col_name,DROP [COLUMN] col_name
1.添加主键约束 CONSTRAINT_PK主键名字为PK ALTER TABLE tbl_name ADD [CONSTRAINT [symbol]] PRIMARY KEY [index_type] (index_col_name,...) e.g:ALTER TABLE users ADD CONSTRAINT PK_users_id PRIMARY KEY (id); 2.添加唯一约束 ALTER TABLE tbl_name ADD [CONSTRAINT [symbol]] UNIQUE [INDEX|KEY] [index_name] [index_type] (index_col_name,...) e.g:ALTER TABLE users ADD UNIQUE (username); 3.添加外键约束 ALTER TABLE tbl_name ADD [CONSTRAINT [symbol]] FOREIGN KEY index_name reference_definition e.g:ALTER TABLE users ADD FOREIGN KEY (pid) REFERENCES provinces (id) 4.添加/删除默认约束 DEFAULT ALTER TABLE tbl_name ALTER [COLUMN] col_name {SET DEFAULT literal | DROP DEFAULT} e.g: ALTER TABLE users ADD age TINYINT UNSIGNED NULL; ALTER TABLE users ALTER age SET DEFAULT 15; ALTER TABLE users ALTER age DROP DEFAULT;
一约束的 index_name 可通过 SHOW INDEX FROM table_name\G; 查询 删除主键约束: ALTER TABLE table_name DROP PRIMARY KEY; 删除唯一约束: ALTER TABLE table_name DROP INDEX index_name; 删除外键约束: ALTER TABLE table_name DROP FOREIGN KEY (fk_symbol)通过查询系统默认给的名字; 外键约束的名字 fk_symbol 可通过 SHOW CREATE TABLE table_name; 查询 删除外键约束,查找CREATE TABLENAME 找到系统为外键约束添加的名字
1.修改列定义 ALTER TABLE tbl_name MODIFY [COLUMN] col_name column_definition [FIRST |AFTER col_name]; ALTER TABLE users2 MODIFY id SMALLINT UNSIGNED NOT NULL FIRST; //将id字段的位置提到第一列 SHOW COLUMNS FROM users2; ALTER TABLE users2 MODIFY id TINYINT UNSIGNED NOT NULL; //修改数据类型,需注意数据丢失的问题 2.修改列名称 ALTER TABLE tbl_name CHANGE [COLUMN] col_name new_col_name column_definition [FIRST|AFTER col_name]; ALTER TABLE users2 CHANGE pid p_id TINYINT UNSIGNED; //修改列名称 3.数据表更名 方法1 ALTER TABLE tbl_name RENAME [TO/AS] new_tbl_name ALTER TABLE users2 RENAME (to/as) users3; SHOW TABLES; 方法2 RENAME TABLE tbl_name TO new_tbl_name [, tbl_name2 TO new_tbl_name2] ... RENAME TABLE users5 TO users2; 尽量少使用数据表的列名及表名的更名。 2.约束 按功能划分:NOT NULL, PRIMARY KEY, UNIQUE KEY, DEFAULT, FOREIGN KEY 按数据列的数目划分:表级约束, 列级约束 3.修改数据表 针对字段的操作:添加/删除字段、修改列定义、修改列名称等。 针对约束的操作:添加/删除各种约束 针对数据表的操作:数据表更名(两种方式)
Fecshop 折腾笔记
遇到的问题 & 解决方案
serverSelectionTryOnce
set): [connection refused calling ismaster on '127.0.0.1:27017'] 可能原因:mongoDB 没启动。 解决方案:以管理员身份打开CMD,运行net start MongoDB
。参考windows 怎样关闭redis 参考
安装redis之后 在命令行窗口中输入 redis-server redis.windows.conf 启动redis 关闭命令行窗口就是关闭 redis。
redis作为windows服务启动方式 redis-server --service-install redis.windows.conf 启动服务:redis-server --service-start 停止服务:redis-server --service-stop
windows下redis作为系统服务如何重启
windows下使用redis,Redis入门使用,Redis基础命令
切换语言问题 解决方案