Mysql 学习笔记
— 双中划线+空格: 注释(单行注释), 也可以使用#号
— 创建数据库
create database mydatabase charset utf8;
# 其中数据库名字不能用关键字(已经被使用的字符)或者保留字(将可能会用到的)
— 创建关键字数据库
create database database charset utf8;
# SQL语句报错:只会告诉用户报错的大概位置,不会说明报错原因(静默模式)
— 使用反引号
# 如果非要使用关键字或者保留字,那么必须使用反引号(esc键下面的键在英文状态下的输出:`
— 创建中文数据库
create database 中国 charset utf8;
# 中文数据库是可以的,但是前提条件:保证服务器能识别(建议不用)
# 解决方案:告诉服务器当前中文的字符是什么?
set names gbk;
— 当创建数据库的SQL语句执行之后,发生了什么?
# 1. 在数据库系统中,增加了对应的数据库信息
# 2. 会在保存数据的文件夹下:Data目录,创建一个对应数据库名字的文件夹
# 3. 每个数据库下都有一个opt文件:保存了库选项
— 查看数据库:
# 1. 查看所有数据库:
show databases;
# 2. 查看指定部分的数据库:模糊查询
show databases like \'pattern\'; -- patterm 是匹配模式
# %: 表示匹配多个字符
# _: 表示匹配单个字符
create database informationtest charset utf8; -- 查看以information_开始的数据库:_需要被转义 show databases like \'information\_%\'; show databases like \'information_%\'; -- 相当于information%
# 3. 查看数据库创建语句:show create database 数据库名字;
show create database mydatabase;
# 数据库在执行SQL语句之前会优化SQL; 系统保存的结果是优化的结果
— 更新数据库
# 数据库名字不可以修改.
# 数据库的修改仅限库选项:字符集和校对集(校对集依赖字符集)
alter database 数据库名 [库选项]; charset/ character set [=] 字符集; collate 校对集
— 修改数据库informationtest的字符集
alter database informationtest charset GBK;
— 删除数据库
所有的操作中:删除是最简单
drop database informationtest;
当删除数据库语句执行之后,发生了什么?
1. 在数据库内部看不到对应的数据库
2. 在对应的数据库存储的文件夹内:数据库名对应的文件夹也被删除(级联删除:里面的数据库表全部删除)
注意:数据库的删除,不要随意删除,应该先进行备份后操作,(删除不可逆)
— 新增数据表
create table [if not exists] 表明(
字段名字 数据类型,
字段名字 数据类型 — 最后一行不需要逗号
)[表选项];
if not exists: # 如果表名不存在,那么就创建,否则就不执行创建代码: 检查功能
表选项: 控制表的表现
字符集:charset/character set 具体字符集; — 保证表中数据存储的字符集
校对集: collate 具体校对集
存储引擎: engine 具体的存储引擎(innodb和myisam)
-- 创建表 create table if not exists mydatabase.student( -- 显示的将student放到mydatabase 数据库下 name varchar(10), gender varchar(10), number varchar(10), age int )charset utf8;
# 任何一个表的设计都必须指定数据库
方案1:显示的指定表所属的数据库
create table 数据库名.表名(); — 将当前数据库表创建到指定的数据库下
方案2: 隐式的指定表所属数据库:
先进入到某个数据库环境,然后这样创建的表自动到某个指定的数据库
进入数据库环境: use 数据库名字;
-- 创建表 use mydatabase; create table class( name varchar(10), room varchar(10) )charset utf8;
当创建数据表的SQL指令执行之后,到底发生了什么?
1. 指定数据库下已经存在对应的表
2. 在数据库对应的文件夹下,会发生对应表的结构文件(跟存储引擎有关系)
— 查看数据库表
# 1. 查看所有表:
show tables;
# 2. 查看部分表:模式匹配:
# 查看以s结尾的表
show tables like \'%s\'; --不建议用前模糊查询
# 3. 查看表创建语句
show create table student\g -- \g =====; show create table student\G -- 将查到的结构旋转90度变成纵向
# 4. 查看表结构: 查看表中的字段信息
desc/describe/show columns from 表名;