Mysql的基础使用之SQL原生语句的使用:表的 创建 删除 修改 (一)
上一篇主要讲的是关于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_name 的name字段名 为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
这次的就到这,如果还缺少什么,或写错什么欢迎指出!
Mysql的基础使用之SQL原生语句的使用:表的 创建 删除 修改 (一)的更多相关文章
- Mysql Navicate 基础操作与SQL语句 版本5.7.29
SQL数据的增删改查:此部分所有SQL语句在navicat中与mysql命令行执行效果一样,只是mysql服务端在命令行执行,而navicat只是在客户端的图形化打开操作. 一.进入数据库 .连接数据 ...
- MySQL笔记(6)-- SQL更新语句日志系统流程
一.背景 在上一篇[MySQL笔记(5)-- SQL执行流程,MySQL体系结构]中讲述了select查询语句在MySQL体系中的运行流程,从连接器开始,到分析器.优化器.执行器等,最后到达存储引擎. ...
- mysql 开发基础系列22 SQL Model
一.概述 与其它数据库不同,mysql 可以运行不同的sql model 下, sql model 定义了mysql应用支持的sql语法,数据校验等,这样更容易在不同的环境中使用mysql. sql ...
- MySQL学习(二)——SQL语句创建删除修改以及中文乱码问题
一.对数据库的操作 1.创建一个库 create database 库名; 创建带有编码的:create database 库名 character set 编码; 查看编码:show create ...
- SQL常用语句之数据库中表的创建、删除以及属性的修改-篇幅3
一.表的创建: CREATE TABLE [database_name.[schema_name].|schema_name.]table_name (column_name1 data_type ...
- SQL 查询表字段长度, 名称, 类型, 存储过程创建和修改时间
获取存储过程的修改时间和创建时间查询建立时间 --表 select * from sysobjects where id=object_id(N'表名') and xtype='U' --表的结构 s ...
- Mysql数据库基础增删改查常用语句命令
Mysql增删改查常用语句命令 一.增删改查语句总览 创建: create(创建数据库) 增:insert(插入表数据) 删:drop.delete(删除表.删除表数据) 改:update.alter ...
- sqlserver分页;mysql分页;orcale分页 的sql 查询语句
一,sqlserver分页: )) ID FROM 表名 AS 表名1_1 ORDER BY ID)) ORDER BY ID; 二:mysql分页 )*每页显示的数据条数,当前页码 * 每页显示的数 ...
- SQL语句(四)可视化创建和修改表
可视化创建修改表 数据库(teaching)->表->新建表 数据库(teaching)->表->(右键)设计->CHECK约束->添加---->标识(名称) ...
随机推荐
- wifi 破解
基础的知识: ESSID :无线网络的名字 BSSID :是AP的mac地址 CH: 工作信道 AP :无线访问接入点 WEP WPA/WPA2 STATION :客户机mac DHCP ...
- windows快捷键集锦
输入命令:netstat -ano,列出所有端口的情况.在列表中我们观察被占用的端口,比如是8090,首先找到它. 查看被占用端口对应的PID,输入命令:netstat -aon|findstr &q ...
- MySQL模糊查询
第一种最土的方法:使用like语句第二种用全文索引 有两种方法,第一种最土的方法:使用like语句第二种听涛哥说用全文索引,就在网上搜一下: 如何在MySQL中获得更好的全文搜索结果 mysql针对这 ...
- SSH整合(Struts2+hibernate+spring)
1.创建表 create table t_user( id int primary key auto_increment, username varchar(50), password varchar ...
- Tomcat常见问题汇总
1.在服务器上一定要开启-server参数 #直接在一堆注释下添加即可 #即是在 # OS specific support.注释之前 JAVA_OPTS= -server 2.tomcat启动很慢 ...
- [skill] C++ delete VS delete []
delete 用来删除 new 返回的对象. 先调用对象的析构,然后释放指针指向的内存. delete[] 用来删除 new [] 返回的对象. 先调用数组中每一个对象的析构,然后释放指针指向的内存.
- lnmp配置Yii2规则
nginx配置: 参考地址:http://www.cnblogs.com/grimm/p/5389970.html location / { try_files $uri $uri/ /index.p ...
- js 时间函数封装
html代码 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UT ...
- RunLoop相关知识的总结
RunLoop 即运行循环,也叫事件循环,本质为一个死循环.iOS一个程序运行起来之后,默认会开启一个运行循环,有需要处理的操作时,比如用户的输入事件时,RunLoop会自己跑起来运行,没有需要处理的 ...
- SqlServer触发器判断对表操作类型(增、删、改)并将修改后的数据映射到新表
该文章为原创,日后可能会根据实际开发经验和网友评论,进行相应地方修改,为获得最新博客动态,望在转发博客的时候注明出处. 触发器要实现的功能: (1)获取对表Table1数据操作操作类型(insert. ...