MySQL
- 连接服务器
- 库的操作
- 创建数据库
- 数据库删除
- 查看数据库
- 进入数据库
- 查看所在的数据库
- 修改数据库
- 显示创建语句
- 查看连接情况
- 表的操作
- 创建表
- 查看数据库所有的表
- 查看表的详细信息
- 查看创建表时的详细信息
- 删除表
- 修改表名
- 向表中插入数据
- 在表结构中新增一列
- 对表结构数据的修改
- 删除表结构的一列
- 表结构列名称的修改
连接服务器
输入:
mysql -h 127.0.0.1 -P 3306 -u root -p
输出:
注意:
mysql -u root -p
如果没有写 -h 127.0.0.1 默认是连接本地
如果没有写 -P 3306 默认是连接3306端口号
库的操作
创建数据库
- 创建名为 database1 的数据库目录
create database database1;
当我们创建数据库没有指定字符集和校验规则时,系统使用默认字符集:utf8
,校验规则是:utf8_ general_ ci
🔍创建数据库的时候,有两个编码集:
- 数据库编码集
数据库未来存储数据
- 数据库校验集
支持数据库,进行字段比较使用的编码,本质也是一种读取数据库中数据的采用的编码格式
数据库无论对数据做任何操作,都必须保证操作和编码必须是编码一致的!
- 创建一个使用utf8字符集的 d1 数据库
create database d1 charset=utf8;
- 创建一个使用utf8字符集的 d2 数据库
create database d2 character set utf8;
- 创建一个使用utf字符集,并带校对规则的 d3 数据库
create database d3 charset=utf8 collate utf8_general_ci;
🔍查看系统默认字符集以及校验规则
show variables like 'character_set_database';
show variables like 'collation_database';
如果编码和校验与上面一样,我们在创建数据库时按照系统默认编码创建就行了。
数据库删除
- 删除名为 database1 的数据库
drop database database1;
🔍执行删除之后的结果:
- 数据库内部看不到对应的数据库
- 对应的数据库文件夹被删除,级联删除,里面的数据表全部被删
注意:不要随意删除数据库
查看数据库
- 查看数据库
show databases;
进入数据库
- 进入名为 database1 数据库
use database1;
查看所在的数据库
- 查看自己当前所在的数据库
select database();
修改数据库
- 修改database1数据库的字符集;
gbk
,校验规则:gbk_chinese_ci
alter database database1 charset=gbk collate gbk_chinese_ci;
说明:
- 对数据库的修改主要指的是修改数据库的字符集,校验规则
显示创建语句
- 查看database1数据库创建时的命令
show create database database1;
🔍说明:
- MySQL 建议我们关键字使用大写,但是不是必须的。
- 数据库名字的反引号``,是为了防止使用的数据库名刚好是关键字
- /*!40100 default… */ 这个不是注释,表示当前mysql版本大于4.01版本,就执行这句话
查看连接情况
show processlist;
可以告诉我们当前有哪些用户连接到我们的MySQL,如果查出某个用户不是你正常登陆的,很有可能你的数据库被人入侵了。以后大家发现自己数据库比较慢时,可以用这个指令来查看数据库连接情况。
注意:不要随意删除数据库,和更改数据库名称。
表的操作
创建表
CREATE TABLE table_name (
field1 datatype,
field2 datatype,
field3 datatype
) character set 字符集 collate 校验规则 engine 存储引擎;
说明:
- field 表示列名
- datatype 表示列的类型
- character set 字符集,如果没有指定字符集,则以所在数据库的字符集为准
- collate 校验规则,如果没有指定校验规则,则以所在数据库的校验规则为准
- comment 对结构类型的描述用
''
包裹
说明:
不同的存储引擎,创建表的文件不一样
查看数据库所有的表
- 查看当前数据库所有的表结构
show tables;
查看表的详细信息
- 查看表名为user1的详细信息
desc user1;
查看创建表时的详细信息
- 查看创建user1bi表时的详细信息
show create table user1;
- 过滤调不重要的信息
show create table user1 \G
注意这里不需要加;
号
数据库会对你做的任何操作做优化并记录下来。
删除表
- 删除user2表
drop table user2;
修改表名
- 将user1改为user
alter table user1 rename to user;
alter table user1 rename user;
两个功能一样,可以将to省略
向表中插入数据
- 向user数据表中插入 (1, ‘张三’, ‘1234’, ‘2001-1-1’);如数据
insert into user values (1, '张三', '1234', '2001-1-1');
在表结构中新增一列
- 在user表结构的birthday的后面添加一列
alter table user add image_path varchar(100) comment '用户头像路径' after birthday;
对表结构数据的修改
- 将user表结构中的name的大小改为 varchar(60)
alter table user modify name varchar(60);
注意这里的改是一种覆盖式的改
删除表结构的一列
- 将user表结构中的password着一列删除
alter table user drop password;
表结构列名称的修改
- 将user表结构中的name的列名称改为 xingming
alter table user change name xingming varchar(60) DEFAULT NULL;