Mysql的库与表

查看现有数据库:SHOW DATABASES;

创建数据库:CREATE DATEBASE  '表名'

查看数据库创建语句:SHOW CREATE DATABASE '表名'

看数据库创建语句

SHOW CREATE DATABASE `test_python`;

注意我们的默认显示格式,通常是表格格式,这就使得,特别长的表,显示出来不好看。想要获取另一种显示格式,需要使用\G

SHOW CREATE DATABASE `test_python`\G

建议在mysql里面,所有的名字,最好带上反引号(和~在同一个键)。理由是,为了强调这个是一个名字,而不会和我们mysql的关键字冲突

注意在sql语句里,任何的语句,都要用;或者\G结尾,否则,MySQL认为这个语句没有结尾,只是换一行继续写。以为两件事:1.我们的SQL可以跨越多行,其次,如果出现了->,那么通常需要补齐接下来的内容,再;。

如果你失误,传入了一些输入错误的行,那么,为了避免报错,可以选择使用\c来结尾,取消条命令。

我们由于更改了配置文件,可以发现,我们的数据库默认使用了utf8编码。

提示其实,我们可以不修改配置文件,但是的话,那样,你每次创建数据库,都需要手动指定编码。

所以,建数据库的好规范是带上我们的编码

在建库的设置数据库编码

CREATE DATABASE `db_2` CHARACTER SET utf8;

或者使用简写的方法

CREATE DATABASE `db_2` CHARSET utf8;

删除数据库

DROP DATABASE `db2`;

修改数据库设置

ALTER DATABASE `db_3` CHARSET utf8;

说明

能否修改数据库的名字?: 通常在mysql不去修改修改数据库的名字。如果非要改,你就先创建一个新的数据库,然后把这个数据库里的表全部都移动过去。

有些东西是不是一定要大写呢?: 在SQL数据库(不只是MySQL)同意有一个规范,通常关键字或保留字都大写,自定义名字通常小写,且带上反引号。但是,只是规范,你愿意遵守,就遵守。

数据库的设置部分,只有字符集可以设置嘛?: 不是的,还可以设置排序规则collation,但是默认情况下,都会有一个默认的collation所以,通常不需要我们去关心。

二、建表

首先,有两件事,我们必须要要讲清楚:

我们在直接制定一个数据库中表的时候,必须要带上它的数据库名。例如:mysql数据库中user表,应该写成mysql.user。

其次,如果你希望省略掉数据库名那么请使用一个优先数据库:mysql USE mysql;

查看一个现有表的创建语句

SHOW CREATE TABLE `mysql`.`user`\G

我们可以从自带表,学习到,如何去创建一个基本用户表。

CREATE TABLE `test_python`.`user` (

`email` char(100) CHARSET latin1 NOT NULL DEFAULT '',

`name` varchar(20) COLLATE utf8_bin NOT NULL DEFAULT '',

`gender` boolean,

PRIMARY KEY(`email`)

);

要点

在指定表名的时候,要指定是哪个数据库的,并且用.这个符号来分割数据库名和表名。但是,不能把.包含在反引号里面。

用一个大括号包含了每一列,通常把,每一列写在一行里,并用,分割。

表和列都和数据库一样,可以单独设置编码字符集和排序规则。

注意如果没有指定,那么就有一套继承规则: 行->表->数据库->配置。

列类型

在MySQL,每一列必须有指定的类型,不可变。

通常常用的:

char(n): 固定长度字符串

varchar(n): 限定了最大长度的可变长字符串

int:整数

decimal: 定点数

float: 浮点数

text: 长文本

blob: 大块二进制

datatime: 日期时间

boolean: 布尔值

查看制定数据库所有表

USE `mysql`;

SHOW TABLES;

删除一张表

DROP TABLE `teacher`;

重命名和移动

RENAME TABLE `user` TO `students`;

RENAME TABLE `test_python`.`students` TO `db_3`.`users`;

你可能感兴趣的:(Mysql的库与表)