当前位置:   article > 正文

【MySQL篇】第三篇——表的操作_mysql创建用户表

mysql创建用户表

创建表

创建表案例

查看表结构

修改表

删除表


创建表

在创建数据库之后,接下来就要在数据库中创建数据表了。所谓创建数据表,指的是在已经创建数据库中建立新表。

创建数据表的过程是规定数据列的属性的过程,同时也是实施数据完整性(包括实体完整性、引用完整性和域完整性)约束的过程。

基本语法

可以使用 CREATE TABLE 语句创建表。其语法格式为:

  1. CREATE TABLE table_name(
  2. field1 datatype,
  3. field2 datatype,
  4. field3 datatype
  5. )character set 字符集 collate 校验规则 engine 存储引擎;

 说明:

  • field 表示列名
  • datatype 表示列的类型
  • character set 字符集,如果没有指定字符集,则以所在数据库的字符集为准
  • collate校验规则,如果没有指定校验规则,则以所在数据库

创建表案例

数据表属于数据库,在创建数据表之前,应使用语句“USE<数据库>”指定操作在哪个数据库中进行,如果没有选择数据库,就会抛出 No database selected 的错误。

输入:创建表的数据库为test1;创建users数据表,输入的SQL语句和运行结果如下所示:

  1. user test1;
  2. create  table users (
  3.  id int,
  4.  name varchar(20) comment '用户名',
  5.  password char(32) comment '密码是32位的md5值',
  6.  birthday date comment '生日'
  7. ) character set utf8 engine MyISAM;

输出:

执行完之后,便创建一个名称为users的数据表,使用SHOW TABLES;便可以查看数据表是否创建成功:

 说明:

  • 不同的存储引擎,创建表的文件不一样。
  • users 表存储引擎是 MyISAM ,在数据目中有三个不同的文件,分别是:

1.users.frm:表结构

2.users.MYD:表数据

3.users.MYI:表索引

查看表结构

创建完数据表之后,经常需要查看表结构(表信息)。可以使用 DESCRIBE 和 SHOW CREATE TABLE 命令来查看数据表的结构。

DESCRIBE/DESC 语句会以表格的形式来展示表的字段信息,包括字段名、字段数据类型、是否为主键、是否有默认值等,语法格式如下:

DESCRIBE <表名>;

或:

DESC <表名>;

 DESC 查看表 users 的表结构,SQL 语句和运行结果如下:

  •  Field:表示字段名字
  • Type:表示字段类型
  • Null:表示该列是否可以存储 NULL 值。
  • Key:表示该列是否已编制索引。PRI 表示该列是表主键的一部分,UNI 表示该列是 UNIQUE 索引的一部分,MUL 表示在列中某个给定值允许出现多次。
  • Default:表示该列是否有默认值,如果有,值是多少。
  • Extra:表示可以获取的与给定列有关的附加信息,如 AUTO_INCREMENT 等。

修改表

修改数据表的前提是数据库中已经存在该表。修改表指的是修改数据库中已经存在的数据表的结构。修改数据表的操作也是数据库管理中必不可少的,就像画素描一样,画多了可以用橡皮擦掉,画少了可以用笔加上。
不了解如何修改数据表,就相当于是我们只要画错了就要扔掉重画,这样就增加了不必要的成本。

在 MySQL 中可以使用 ALTER TABLE 语句来改变原有表的结构,例如增加或删减列、更改原有列类型、重新命名列或表等。

其语法格式如下:

  1. ALTER TABLE tablename ADD (column datatype [DEFAULT expr][,column datatype]...);
  2. ALTER TABLE tablename MODIfy (column datatype [DEFAULT expr][,column datatype]...);
  3. ALTER TABLE tablename DROP (column);
  • 修改表名

语法规则如下:

ALTER TABLE <旧表名> RENAME [TO] <新表名>

 其中,TO 为可选参数,使用与否均不影响结果。

将数据表users改名为students_users,语句和运行结果如下所示:

  • 修改表字符集

将字符集修改为gb2312,校对规则修改为gb2312_chinese_ci.语句和运行结果如下:

  •  在users表添加二条记录

语法格式如下:

mysql> insert into users values(1,'a','b','1982-01-04'),(2,'b','c','1984-01-04');

 

  • 在users表添加一个字段,用于保存图片路径
mysql> alter table users add assets varchar(100) comment '图片路径' after birthday;

  • 修改name,将其长度改为60
mysql> alter table users modify name varchar(60);

  •  删除password列
  1. mysql> alter table users drop password;
  2. mysql> desc users;
  3. +----------+--------------+------+-----+---------+-------+
  4. | Field | Type | Null | Key | Default | Extra |
  5. +----------+--------------+------+-----+---------+-------+
  6. | id | int(11) | YES | | NULL | |
  7. | name | varchar(60) | YES | | NULL | |
  8. | birthday | date | YES | | NULL | |
  9. | assets | varchar(100) | YES | | NULL | |
  10. +----------+--------------+------+-----+---------+-------+

删除表

对于不再需要的数据表,我们可以将其从数据库中删除。在删除表的同时,表的结构和表中所有的数据都会被删除,因此在删除数据表之前最好先备份,以免造成无法挽回的损失。

使用 DROP TABLE 语句可以删除一个或多个数据表,语法格式如下:

DROP TABLE [IF EXISTS] 表名1 [ ,表名2, 表名3 ...]

对语法格式的说明如下:

  • 表名1, 表名2, 表名3 ...表示要被删除的数据表的名称。DROP TABLE 可以同时删除多个表,只要将表名依次写在后面,相互之间用逗号隔开即可。
  • IF EXISTS 用于在删除数据表之前判断该表是否存在。如果不加 IF EXISTS,当数据表不存在时 MySQL 将提示错误,中断 SQL 语句的执行;加上 IF EXISTS 后,当数据表不存在时 SQL 语句可以顺利执行,但是会发出警告(warning)。

 从上面的创建可知,数据库test1中,创建的数据表有:

 下面来删除数据表person,输入SQL语句和运行结果如下:

 删除成功。

两点注意:

  • 用户必须拥有执行 DROP TABLE 命令的权限,否则数据表不会被删除。
  • 表被删除时,用户在该表上的权限不会自动删除。
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/611271
推荐阅读
相关标签
  

闽ICP备14008679号