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 表名;

 

posted @ 2018-06-24 00:32  瘦子的伤悲  阅读(161)  评论(0编辑  收藏  举报