Mysql笔记

本文介绍MySQL的基本操作命令,包括数据库及表的管理、数据导入导出、字符串连接与比较、约束管理等。此外还介绍了如何使用information_schema数据库获取元数据信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

查看当前实例下包含多少个数据库:show databases;
删除指定数据库:drop database 数据库名;
创建新的数据库:create database [IF NOT EXISTS] 数据库名;
进入数据库:use 数据库名;
查询该数据库下包含的数据表:show tables;
查看指定数据表的表结构:desc 表名;
mysql -p 密码 -u 用户名 -h 主机名
导入.sql文件命令(例如D:/mysql.sql): source d:/mysql.sql;
用文本方式将数据装入数据库表中(例如D:/mysql.txt):LOAD DATA LOCAL INFILE "D:/mysql.txt" INTO TABLE MYTABLE;
MySQL中没有提供字符串连接运算符,即无法使用加号(+)将字符串常量,字符串变量或字符串列连接起来。MySQL使用concat函数来进行字符串连接运算。
SQL中判断两个值是否相等的比较运算符是单等号,判断不相等的运算符是<>;SQL中赋值运算符不是等号,而是冒号等号(:=).
在某些特殊的情况下,我们需要查询的条件里需要使用下划线或百分号,不希望SQL把下划线和百分号当成通配符使用,这需要使用转义字符,MySQL使用反斜线(\)的作为转义字符。在标准的SQL语句中并没有提供反斜线(\)的转义字符,而是使用escape关键字显式进行转义。

当数据表创建成功后,MySQL使用information_schema数据库里的TABLES表来保存该数据库实例中所有数据表,用户可通过查询TABLES表来获取该数据库的表信息。
MySQL使用information_schema数据库里的TABLE_CONSTRAINTS表来保存该数据库实例中所有约束信息。
对于大部分数据库而言,删除约束都是在alter table语句后使用drop constraint约束名的语法来删除约束,但MySQL并不使用这种方式,而是使用drop index约束名的方式来删除约束。
MySQL允许在建立主键约束时为该约束命名,但这个名字没有任何作用,这是为了保持与标准SQL的兼容性,大部分数据库都允许指定约束的名字,而且一旦指定了主键约束名,则该约束名就是用户指定的名字。
MySQL支持使用列级约束的语法来建立约束,但这种列级约束语法建立的外键约束不会生效,MySQL提供这种列级约束语法仅仅是和标准SQL保持良好的兼容性,因此如果需要MySQL中的外键约束生效,应使用表级约束语法。
MySQL使用information_schema数据库里的STATISTICS表来保存该数据库实例中所有索引信息。
当前版本的MySQL支持建表时指定CHECK约束,但这个CHECK约束不会有任何作用。
MySQL数据库里的blob类型最多只能储存64K内容,这可能不够满足实际用途,所以使用mediumblob类型,该类型的数据列可以储存16M内容。

MySQL的一个modify命令不支持一次修改多个列定义,但其他数据库如Oracle还是可以一个modify命令修改多个列定义。
外键约束保证被参照的记录必须存在,但并不保证必须有被参照记录,即外键列可以为null,如果想保证每条从表记录必须存在对应的主表记录,则应使用非空,外键两个约束。
一个MySQL命令行窗口代表一次连接Session,在该窗口里设置set autocommit = 0,相当于关闭了该连接Session的自动提交,对其他连接不会有任何影响,也就是说对其他MySQL命令行窗口不会有任何影响。

重命名数据表:alter table 表名 rename 新表名;
删除外键约束:alter table 表名 drop foreign key 约束名。
删除主键约束:alter table 表名 drop primary key;
on delete cascade或 on delete set null
当前版本的MySQL支持建表时指定CHECK约束,但这个CHECK约束不会有任何作用。
改变列名:alter table 表名 change old_column_name new_column_name type [default expr] [first|alter col_name]

MySQL使用auto_increment来设置自增长。
创建索引:
自动:当在表上定义主键约束,唯一约束和外键约束时,系统会为该数据自动创建对应的索引。
手动:用户可以手动创建索引来加速查询。
create index index_name on table_name (column[,column]...);
drop index index_name on table_name;
create or replace view 视图名 as subquery;

SET AUTOCOMMIT = (0|1); 0为关闭自动提交,即开启事务。

information_schema数据库系统表:
tables:存放数据库里所有数据表的信息。
schemata:存放数据库里所有数据库(与Mysql的Schema对应)的信息。
views:存放数据库里所有视图的信息。
triggers:存放数据库里所有触发器的信息。
routines:存放数据库里所有储存过程和函数的信息。
key_column_usage:存放数据库里所有具有约束的键信息。
table_constraints:存放数据库全部约束的表信息。
statistics:存放数据库里全部索引的信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值