Mysql学习笔记二 数据表的基础操作

2019-08-06  本文已影响0人  flylic

数据表的操作

mysql> show tables; -- 显示指定数据库的所有表,使用该命令前需要使用 use 命令来选择要操作的数据库。
+------------------+
| Tables_in_demo   |
+------------------+
| bm_list          |
| rhs_users        |
+------------------+
2 rows in set (0.00 sec)
-- auto_increment表示自动增长
-- 创建一个学生的数据表(id、name、age、high、gender、cls_id)
-- create table 数据表名字 (字段 类型 约束[, 字段 类型 约束]);   -- [] 表示可有可无
-- 多个约束 不分先后顺序
-- enum 表示枚举
-- 最后一个字段不要添加逗号
-- unsigned: 无符号, 不能够存储负数

-- 创建students表
mysql> create table students(
    ->         id int unsigned primary key auto_increment not null,
    ->         name varchar(10) not null,
    ->         age tinyint unsigned default 0,
    ->         high decimal(5,2) default 0.0,   -- 180.88
    ->         gender enum("男", "女", "中性", "保密") default "保密",
    ->         cls_id int unsigned not null
    ->     );
Query OK, 0 rows affected (0.02 sec)
mysql> mysql> show create table students;
+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table    | Create Table                                                                                                                                                                                                                                                                                                                                              |
+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| students | CREATE TABLE `students` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `name` varchar(10) NOT NULL,
  `age` tinyint(3) unsigned DEFAULT '0',
  `high` decimal(5,2) DEFAULT '0.00',
  `gender` enum('男','女','中性','保密') DEFAULT '保密',
  `cls_id` int(10) unsigned NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8         |
+----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
mysql> desc students;  -- show columns form students;也可以 -- 使用频率非常高
+--------+-------------------------------------+------+-----+---------+----------------+
| Field  | Type                                | Null | Key | Default | Extra          |
+--------+-------------------------------------+------+-----+---------+----------------+
| id     | int(10) unsigned                    | NO   | PRI | NULL    | auto_increment |
| name   | varchar(10)                         | NO   |     | NULL    |                |
| age    | tinyint(3) unsigned                 | YES  |     | 0       |                |
| high   | decimal(5,2)                        | YES  |     | 0.00    |                |
| gender | enum('男','女','中性','保密')         | YES  |     | 保密     |                |
| cls_id | int(10) unsigned                    | NO   |     | NULL    |                |
+--------+-------------------------------------+------+-----+---------+----------------+
6 rows in set (0.00 sec)

显示数据表的属性,属性类型,主键信息 ,是否为 NULL,默认值等其他信息。

show index from students;
image
-- add  -添加字段
-- 用法: alter table 表名 add 列名 类型/约束;

-- 给students表添加‘birthday‘字段,默认值为"2011-11-11 11:11:11"

mysql> alter table students add birthday date default "2011-11-11";
Query OK, 0 rows affected (0.02 sec)
Records: 0  Duplicates: 0  Warnings: 0

-- 结果
mysql> desc students;
+----------+-----------------------------+------+-----+------------+----------------+
| Field    | Type                        | Null | Key | Default    | Extra          |
+----------+-----------------------------+------+-----+------------+----------------+
| id       | int(10) unsigned            | NO   | PRI | NULL       | auto_increment |
| name     | varchar(10)                 | NO   |     | NULL       |                |
| age      | tinyint(3) unsigned         | YES  |     | 0          |                |
| high     | decimal(5,2)                | YES  |     | 0.00       |                |
| gender   | enum('男','女','中性','保密') | YES  |     | 保密       |                |
| cls_id   | int(10) unsigned            | NO   |     | NULL       |                |
| birthday | date                        | YES  |     | 2011-11-11 |                |
+----------+-----------------------------+------+-----+------------+----------------+
7 rows in set (0.00 sec)
-- modify -修改表字段值  不重命名版
-- 用法: alter table 表名 modify 列名 类型及约束;

alter table students modify birthday date default "2011-11-11";
-- change -修改表字段 重命名版
-- 用法: alter table 表名 change 原列名 新列名 类型及约束;


mysql> alter table students change birthday birth date default "2011-11-11";
Query OK, 0 rows affected (0.01 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> desc students;
+--------+------------------------------+------+-----+------------+----------------+
| Field  | Type                         | Null | Key | Default    | Extra          |
+--------+------------------------------+------+-----+------------+----------------+
| id     | int(10) unsigned             | NO   | PRI | NULL       | auto_increment |
| name   | varchar(10)                  | NO   |     | NULL       |                |
| age    | tinyint(3) unsigned          | YES  |     | 0          |                |
| high   | decimal(5,2)                 | YES  |     | 0.00       |                |
| gender | enum('男','女','中性','保密')  | YES  |     | 保密       |                |
| cls_id | int(10) unsigned             | NO   |     | NULL       |                |
| birth  | date                         | YES  |     | 2011-11-11 |                |
+--------+------------------------------+------+-----+------------+----------------+
7 rows in set (0.00 sec)
-- 删除字段  
-- 用法: alter table 表名 drop 字段名

alter table students drop birth;

-- 删除表
-- 用法: alter table 表名

drop table students;

一、Mysql学习笔记目录

上一篇下一篇

猜你喜欢

热点阅读