Mysql的基础使用之SQL原生语句的使用:表的 创建…

2018-06-17 22:59:01来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折

上一篇主要讲的是关于Mysql的分支MariaDB在Linux下的安装 顺利安装完成的小伙伴,就可以接着来试试SQL的魅力了

 红色为命令 蓝色为自定义名

查看数据库

 

MariaDB [(none)]> show databases; #查看数据库列表 
+--------------------+
| Database           |
+--------------------+
| information_schema | #数据库名称 例:本地有四个数据库 (数据库里保存的是table 数据表)
| human              |
| mysql              |
| performance_schema |
+--------------------+
4 rows in set (0.00 sec)

 

首先我们先创建一个数据库

 

创建数据库 

  

MariaDB [(none)]> create database data_name; #创建数据库   data_name为创建的自定义数据库名字 
                                 (注:创建的database不加s后缀,新手可别把查看数据库命令的databases搞混了)
Query OK,
1 row affected (0.00 sec) #表示SQL语句执行成功

 

 然后我们进入刚才创建的数据库

  

MariaDB [(none)]> use data_name; #进入数据库库 data_name表示进入的数据库名
Database changed #当前进入的数据库已经更改

 

这里首先要讲的是简单的创建

在数据库中创建一个数据表

  

MariaDB [data_name]> create table table_name (id int not null ,name varchar(20)); #创建简单数据表
        table_name 表示创建的数据表名字  id表示这个数据表第一列的列名 int表示这列的可插入数据为整型 not null 设置约束为不可为空5种约束 
  name表示第二列的列名  varchar(20)为字符类型 20是这列数据字符长度只能最多是20     
Query OK, 0 rows affected (0.06 sec)

 

查看一下我们数据库里新建的table表

 

MariaDB [data_name]> show tables; #查看当前数据库的所有数据表(包括视图表)
+---------------------+
| Tables_in_data_name |
+---------------------+
| table_name          | # table数据表的名字
+---------------------+
1 row in set (0.00 sec)

 

 

 查看数据表的结构的两种方式

方法一(适合查看此table数据表有什么列名和约束)

describe 可以用desc缩写来代替

 

MariaDB [data_name]> describe table_name; #查看table数据表结构的方法一 (直观可以看清楚数据表的列与绑定的约束)
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra | #field :列名   type:插入数据类型  null:是否为非空约束 NO说明不能为空(插入数据如果为空,插入SQL会失败)
+-------+-------------+------+-----+---------+-------+ #KEY: 主键约束或外键约束 (空表示没有约束)     default:表示当插入数据为空时默认插入  (空代表w为null)
| id    | int(11)     | NO   |     | NULL    |       | #Extra: 中出现的信息一般不是太重要  对Extra等列意义深究的请查看别人的博客点击此处 
| name  | varchar(20) | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+
2 rows in set (0.00 sec)

 

 

 方法二(适合查看细节 查询约束名的好办法)

 

MariaDB [data_name]> show create table table_name; #查看table数据表的创建的SQL语句 (可以看出当时这个数据表创建而使用的SQL语句方便查阅约束名和设置的约束其他的细节)
+------------+-------------------------------------------------------------------------------------------------------------------------------+
| Table      | Create Table                                                                                                                  |
+------------+-------------------------------------------------------------------------------------------------------------------------------+
| table_name | CREATE TABLE `table_name` (      # ENGINE: 表示这个表类型,目前Mysql最常用的是MyISAM、InnoDB两种表类型 各有各优势 两表的区别点击这里
         |   `id` int(11) NOT NULL,        # CHARSET: 表示这个表的字符编码为Latin1(不支持中文)可以设置主流的gb2312 或utf8修改编码的具体方式点击这里
        |   `name` varchar(20) DEFAULT NULL  # 有关中文字符编码的一劳永逸具体的设定解决办法在这
        |    ) ENGINE=InnoDB DEFAULT CHARSET=latin1 |
+------------+-------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

 

是不是感觉上面的表好难受,怎么看都不爽,治疗强迫症的患者们,myslq 提供了强迫症的治疗方法 ↓

  

MariaDB [data_name]> show create table table_name\G # 这里吧;改成了\G 发现显示的样式又不同了,更加养眼了(强迫症的福音) \G不光是这里,
                                所有显示的的SQL语句都可以用\G来代替;
*************************** 1. row *************************** Table: table_name Create Table: CREATE TABLE `table_name` ( `id` int(11) NOT NULL, `name` varchar(20) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 1 row in set (0.00 sec)

 

************************************** 我是动感光波****************************************

 

数据表的字段修改 

喝杯茶,休息一下

 

有一天项目经理说忘了告诉你这个表缺少重要的一个字段,友谊的小船说翻就翻,但是别担心重做,SQL提供了反悔的机会可以任意添加或删除列

 

数据表字段的添加

  

MariaDB [data_name]> alter table table_name add phone varchar(11); # 往数据表table_name添加一列 phone的 数据类型为字符串 最大长度为11
Query OK, 0 rows affected (0.06 sec)               
Records: 0  Duplicates: 0  Warnings: 0

 

 数据表字段的删除

 

MariaDB [data_name]> alter table table_name drop phone; # 删除数据表table_name中的phone列
                                 (这比添加简单多了,果然毁灭比创造要简单多了 但是一切的创造不都是建立在毁灭之后吗?)
Query OK, 0 rows affected (0.06 sec) Records: 0 Duplicates: 0 Warnings: 0

 

如果是一个列的设置出错删除再修改一遍不会是很麻烦吗?这里有懒人办法 , 删除添加二合一 小霸王修改机  

 数据表字段的修改

MariaDB [data_name]> alter table table_name change name username varchar(20);  # 更改数据表table_namename字段名 为username 更改数据类型varchar 最大长度为20
Query OK, 0 rows affected (0.05 sec)                                 后面可以修改添加约束
Records: 0  Duplicates: 0  Warnings: 0

 

 

  这里还有其他方法,可以改变类型却不能改变字段名的SQL语句方法

  alter table table_name modify name char(20);  

这种方法可以用change的新旧名字相同的方法来实现相同的效果,即change为小万能

 

最后一个 懒人神器  ——模板建表

 

一  拓展表的好助手

 

MariaDB [data_name]> create table copy1_table_name like table_name;  # 复制表结构table_name创建copy1_table_name 表(这种方法不复制此表的内部数据)
Query OK, 0 rows affected (0.06 sec)

 

二 备份表的好助手

  

MariaDB [data_name]> create table copy2_table_name as select * from table_name;   #复制表结构table_name创建copy1_table_name 表(这种方法复制此表的内部数据)
 Query OK, 0 rows affected (0.01 sec) Records: 0 Duplicates: 0 Warnings: 0

 

这次的就到这,如果还缺少什么,或写错什么欢迎指出!

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:什么是存储引擎以及不同存储引擎特点

下一篇:CentOS 7.0下使用yum安装mysql