前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >入门MySQL——基础语句篇

入门MySQL——基础语句篇

作者头像
MySQL技术
发布2019-09-08 09:34:32
4220
发布2019-09-08 09:34:32
举报
文章被收录于专栏:MySQL技术

前言:

前面几篇文章,我们介绍了MySQL的基础概念及逻辑架构。相信你现在应该有了自己的一套MySQL环境,接下来我们就可以开始练习MySQL了。本文将从MySQL最基础的语句出发,为你展示出创建及修改不同对象应该使用的标准语句。

1.创建数据库

创建数据库的官方标准语法为:

代码语言:javascript
复制
CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name    [create_specification] ...
create_specification:    [DEFAULT] CHARACTER SET [=] charset_name  | [DEFAULT] COLLATE [=] collation_name

其中{}中的内容为多选一,[]中的内容可带可不带,后续若有此类符号也是同等意思。

一般工作中常常这样创建数据库:

代码语言:javascript
复制
CREATE DATABASE IF NOT EXISTS `test_db` DEFAULT CHARACTER SET utf8;

想要查看数据库的创建语句,可以这样查看:

代码语言:javascript
复制
mysql> show create database test_db;+----------+------------------------------------------------------------------+| Database | Create Database                                                  |+----------+------------------------------------------------------------------+| test_db  | CREATE DATABASE `test_db` /*!40100 DEFAULT CHARACTER SET utf8 */ |+----------+------------------------------------------------------------------+
2.修改数据库

一般情况下很少去修改数据库,官方给出的标准语法为:

代码语言:javascript
复制
ALTER {DATABASE | SCHEMA} [db_name]    alter_specification ...
alter_specification:    [DEFAULT] CHARACTER SET [=] charset_name  | [DEFAULT] COLLATE [=] collation_name

特殊情况下我们可能会修改数据库的字符集,这时候我们可以这样书写:

代码语言:javascript
复制
ALTER DATABASE `test_db` DEFAULT CHARACTER SET utf8mb4;
3.删除数据库

删除数据库可要小心啊!千万不要删库跑路哦。此类需求一般极少,不过我们也要会呀,连库都不会删岂不是很没面子~~ 还是看下官方文档语法:

代码语言:javascript
复制
DROP {DATABASE | SCHEMA} [IF EXISTS] db_name

相比创建和更改来讲,删除就显得简单粗暴很多。所有我们操作的时候要格外小心,删除前建议做下备份。

比如我们要删除test_db库,我们可以这样写:

代码语言:javascript
复制
DROP DATABASE IF EXISTS `test_db`;

删除之后我们再执行show database就看不到test_db库了。

4.创建表

创建数据表是我们经常遇到的语句了,官方给出的参考语法比较长,这里先列出下,为了不占用太多空间,这里用代码图片代替。

对于我们学习及工作常用的选项归纳如下:

代码语言:javascript
复制
CREATE TABLE <表名> ([表定义选项])[表选项][分区选项];
[表定义选项]的格式为:<列名1> <类型1> [,…] <列名n> <类型n>

对于临时表的创建及分区表的创建选项,日常学习及工作中用的不多,这里就不多介绍,下面列举出一个基础的创建表的语句:

代码语言:javascript
复制
CREATE TABLE `user_info` (  `id` int unsigned NOT NULL AUTO_INCREMENT COMMENT '自增主键',  `user_id` bigint(11) NOT NULL COMMENT '用户id',  `username` varchar(45) NOT NULL COMMENT '真实姓名',  `email` varchar(30) NOT NULL COMMENT '用户邮箱',  `nickname` varchar(45) NOT NULL COMMENT '昵称',  `birthday` date NOT NULL COMMENT '生日',  `sex` tinyint(4) DEFAULT '0' COMMENT '性别',  `short_introduce` varchar(150) DEFAULT NULL COMMENT '一句话介绍自己,最多50个汉字',  `create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',  `update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',  PRIMARY KEY (`id`),  UNIQUE KEY `uniq_user_id` (`user_id`),  KEY `idx_username`(`username`)) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='用户信息表'
5.修改表

修改表可选选项同样是很多的,参考上面创建表的选项,这里就不一一列出了。

alter table用于更改表的结构,例如,可以添加或删除列,创建或删除索引,更改现有列的类型,或重命名列或表本身。还可以更改表的存储引擎或表注释。下面介绍下几个常用的修改表的示例:

修改表选项

代码语言:javascript
复制
# 修改表的存储引擎ALTER TABLE t1 ENGINE = InnoDB;
# 修改表的自增值ALTER TABLE t1 AUTO_INCREMENT = 13;
# 修改表的字符集ALTER TABLE t1 CHARACTER SET = utf8;
# 添加(或更改)表注释:ALTER TABLE t1 COMMENT = 'New table comment';
# 修改表名称ALTER TABLE t1 RENAME t2;

字段(列)操作

代码语言:javascript
复制
# 增加字段# ALTER TABLE <表名> ADD COLUMN <新字段名> <数据类型> [约束条件] [FIRST|AFTER 已存在的字段名]ALTER TABLE t1 ADD COLUMN col1 INT FIRST;
# 删除字段ALTER TABLE t1 DROP COLUMN col1;
# 修改字段类型ALTER TABLE t1 MODIFY col1 VARCHAR(30);
# 更改字段名称ALTER TABLE t1 CHANGE col1 col2 VARCHAR(30);

索引操作

代码语言:javascript
复制
# 添加索引alter table t1 add index index_name (column_list) ;alter table t1 add unique (column_list) ;alter table t1 add primary key (column_list) ;
# 删除索引alter table t1 drop index index_name ;alter table t1 drop primary key ;
6.截断表

截断表即truncate table,也可理解为清空表,从逻辑上讲,TRUNCATE TABLE类似于DELETE一个表的所有行,但它绕过了删除数据的DML方法,因此它不能回滚。

truncate语法很简单,官方文档示例:

代码语言:javascript
复制
TRUNCATE [TABLE] tbl_name
7.删除表

删除表官方给出的参考语法为:

代码语言:javascript
复制
DROP [TEMPORARY] TABLE [IF EXISTS]    tbl_name [, tbl_name] ...    [RESTRICT | CASCADE]

如果我们不需要这个表,可以考虑使用该语法,但是它将删除表定义和所有表数据,是不可回滚的操作,一定要小心执行哦。

总结:

本文记录一些常用的基础语句,虽然看起来很简单,但回顾一下还是有收获的,特别是翻阅官方文档后,发现这些基础的语句也是有很多选项的,可能我们只是经常用到其中一种。自己也很少写这种系列的文章,打算多写几篇入门MySQL的基础文章,可能这几篇先后顺序也不太严谨,其他同学有什么好的想法,欢迎与我沟通哦!

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-08-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 MySQL技术 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.创建数据库
  • 2.修改数据库
  • 3.删除数据库
  • 4.创建表
  • 5.修改表
  • 6.截断表
  • 7.删除表
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档