1. 建表语法:

Create table IF NOT EXISTS  `<database>`.`<table_name>`(

`id` int unsigned zerofill AUTO_INCREMENT PRIMARY KEY

`firstname`     varchar (20),

`lastname` varchar (20),

`country`  varchar (20),

) ENGINE=InnoDB

句点符号: 表可以使用 database. tablename 引用。如果已经连接到数据库,则可以简单地使用customers 而不是company .customers

反引号:` `(英文输入状态下,~号的按键可以打出来反引号),当建表需要指定数据库时,需要用到database.tablename中的句点符号,这时句点符号前后的数据库对象:数据库名和表名,就需要用反引号包括起来。

unsigned: 代表此列为无符号类型, 会影响到列的存储范围(从0开始),如果不加unsinged, 则该列默认是有符号类型,范围从负数开始

zerofill: 代表0填充, 即: 如果该数字不足参数M位, 则自动补0, 补够M位。

     1: 如果没有zerofill属性, 单独的参数M,没有任何意义。

     2: 如果设置某列为zerofill,则该列已经默认为 unsigned,无符号类型(即如果有zerofill则不用再写unsigned).

IF NOT EXISTS 如果存在一个具有相同名字的表 ,并且你指定了这个子句,MySQL只会抛出一个警告,告知表已经存在。否则        MySQL 将抛出一个错误 。

AUTO_INCREMENT 自动生成线性递增序列,因此不必担心为每一行的id分配值,主键的标志 。

PRIMARY KEY(主键) : 每行都由一个非空的UNIQUE列标识 。只有一列应该在表 中定义。

Engine 在列定义后面,括号之外 ,用等号 ( = ) 指定存储引擎。存储引擎包括 InnoDB、MyISAM、FEDERATED、BLACKHOLE、csv 和MEMORY 。 在所有引擎中,InnoDB是唯一 的事务引擎,也是默认引擎 。(后面会详细讲)

获取所有引擎的详细信息:

mysql> show engines\G

 

2. 表的存储及查询:

建数据库后会在数据目录下生成一个文件夹,比如zcl。那么在zcl库里建表以后会在zcl里生成一个.ibd文件

核实步骤如下:

mysql> show variables like 'datadir%';               //找到目录/var/lib/mysql/

[root@MySQL ~]# cd /var/lib/mysql/

[root@MySQL ~]# cd zcl

[root@MySQL ~]# ls                                 //如果表创建成功,就会生成tablename.ibd文件

MySQL箭头变成引号怎么办 mysql 冒号_mysql

 

1). 查看某个库所包含的表:

mysql> use zcl

mysql> show tables;

MySQL箭头变成引号怎么办 mysql 冒号_mysql_02

2). 查询表结构:

建表语句:

mysql> show create table customers;

MySQL箭头变成引号怎么办 mysql 冒号_mysql_03

表格:

mysql> desc customers;

MySQL箭头变成引号怎么办 mysql 冒号_数据库_04

 

3).克隆表(3种写法):

· 只克隆表结构

方法1:

mysql> create table <tablename_new> like <tablename_old>;          

方法2:

mysql> create table <tablename_new> select * from <tablename_old> where 1=2;

类似于Oracle里的create table <tablename_new> as select * from <tablename> where 1=2;

· 克隆表结构和数据到新表:

mysql> create table <tablename_new> select * from <tablename_old>;

类似于Oracle里的create table <tablename_new> as select * from <tablename> where 1=2;