mysql语言总结1

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: mysql语言总结1

MySQL基本语句

MySQL数据库的一个实例(Server Instance)可以同时句含多个数据库,MySQL使用如下命令查看当前实例下包含多少个数据库:

show databases;

如果用户需要创建新的数据库,则可以使用如下命令:

create database [IF NOT EXISTS]数据库名;

如果用户需要删除指定数据库,则可以使用如下命令:

drop database 数据库名;

建立了数据库之后,如果想操作该数据库(例如为该数据库建表,在该数据库中执行查询等操作) 则需要进入该数据库。进入指定数据库可以使用如下命令:

use 数据库名;

进入指定数据库后,如果需要查询该数据库下包含多少个数据表,则可以使用如下命令:

show tables;

如果想查看指定数据表的表结构(查看该表有多少列,每列的数据米刑等信息),则可以使用如下命令:

desc 表名;

MySQL 数据库安装成功后,在其安装目录下有一个bin路径,该路径下包含一个mysql命令,该命今用于启动MySQL命令行客户端。执行mysql命令的语法如下:

mysql -p密码 -u 用户名 h 主机名 --default-character-set=utf-8

例:

mysql -u root -proot

DDL 语句

1.创建表的语法

标准的建表语句的语法如下:

create table[模式名.]表名
#可以有多个列定义
-columnName1 datatype [default expr],
...

例如下面的建表语句:

 create table test(
     test_id int,
     test_price decimal,
     test_name varchar(255) default 'xxx',
     test_desc text,
     test_img blob,
     test_date datetime
 );

如果使用子查询建表语句,则可以在建表的同时插入数据。子查询建表语句的语法如下:

create table[模式名.]表名 [column[,column...]]
as subquery;

下面语句使用子查询来建表。

#创建hehe数据表,该数据表和user_inf完全相同,数据也完全相同
create table hehe
as
select * from user inf;

2.修改表结构的语法

①增加列定义的语法如下:

alter table 表名
add(
  #可以有多个列定义
  column_namel datatype [default expr],
  ...
);

为数据表增加字段的SQL语句如下:

# 为hehe数据表增加一个heheid字段,该字段的类型为int
alter table hehe
add hehe id int;
并为hehe数据表增加aaa、bbb字段,两个字段的类型都为varchar(255)
alter table hehe
add
aaa varchar{255) default 'xxx',
bbb varchar (255)
);

②修改列定义的语法如下:

alter table 表名
modify column_name datatype [default expr] [first|after col_name];

上面语法中first或者after col_name指定需要将目标修改到指定位置。

从上面修改语法中可以看出,该修改语句每次只能修改一个列完义,代码加下

# 将hehe表的hehe id列修改成varchar(255)出开
alter table hehe
modifty hehe id varchar (255);
将hehe表的bbb列修改成1nt类型
alter table hehe
modify bbb int;

③从数据表中删除列的语法比较简单:

alter table表名
drop column name

删除列只要在drop后紧跟需要删除的列名即可。例如:

# 删除hehe表中的aaa字段
alter table hehe
drop aaa;

④重命名数据表的语法格式如下:

alter table表名
rename to 新表名

如下SQL语句用于将hehe表命名为wawa:

# 将hehe数据表重命名为wawa
alter table hehe
rename to wawai

MySQL 为alter table提供了change选项,该选项可以改变列名。change选项的语法如下

alter table表名
chanae old column_name new_column name type [default expr] [firstiafter col name]

对比chane和modify两个选项,不难发现:change选项比modify选项书了一个列名,因为change选项可以改变列名,所以它需要两个列名。一般而言,如果不需要改变列名,使用alter table 的modify选项即可,只有当需要修改列名时才会使用change选项。语句如下:

# 将wawa数据表的bbb字段重命名为ddd
alter table wawa
change bbb ddd int;

3.删除表的语法

删除表的语法格式如下:

drop table表名;

如下SQL语句将会把数据库中已有的wawa数据表删除:

# 删除数据表
drop table wawa;

4. truncate表

对于大部分数据库而言,truncate都被当成DDL处理,truncate被称为“截断”某个表一一它的作用是删除该表里的全部数据,但保留表结构。相对于DML里的delete命令而言,truncate的速度要快得多,而且truncate不像delete 可以删除指定的记录,truncate只能一次性删除整个表的全部记录trucate 命令的语法如下:

truncate 表名

5 数据库约束

1.NOT NULL 约束

非空约束用于确保指定列不允许为空,非空约束是比较特殊的约束,它只能作为列级约束使用,只能使用列级约束语法定义。

这里介绍一下SQL中的null值,SQL中的null不区分大小写。



相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
2月前
|
SQL 关系型数据库 MySQL
在MySQL中,什么是结构化查询语言 (SQL)
【8月更文挑战第20天】在MySQL中,什么是结构化查询语言 (SQL)
42 1
|
3月前
|
SQL 关系型数据库 MySQL
MySQL DDL(数据定义语言)深度解析
MySQL DDL(数据定义语言)深度解析
|
5月前
|
SQL 关系型数据库 MySQL
【Go语言专栏】使用Go语言连接MySQL数据库
【4月更文挑战第30天】本文介绍了如何使用Go语言连接和操作MySQL数据库,包括选择`go-sql-driver/mysql`驱动、安装导入、建立连接、执行SQL查询、插入/更新/删除操作、事务处理以及性能优化和最佳实践。通过示例代码,展示了连接数据库、使用连接池、事务管理和性能调优的方法,帮助开发者构建高效、稳定的Web应用。
1026 0
|
2月前
|
SQL 关系型数据库 MySQL
Go语言中使用 sqlx 来操作 MySQL
Go语言因其高效的性能和简洁的语法而受到开发者们的欢迎。在开发过程中,数据库操作不可或缺。虽然Go的标准库提供了`database/sql`包支持数据库操作,但使用起来稍显复杂。为此,`sqlx`应运而生,作为`database/sql`的扩展库,它简化了许多常见的数据库任务。本文介绍如何使用`sqlx`包操作MySQL数据库,包括安装所需的包、连接数据库、创建表、插入/查询/更新/删除数据等操作,并展示了如何利用命名参数来进一步简化代码。通过`sqlx`,开发者可以更加高效且简洁地完成数据库交互任务。
27 1
|
2月前
|
SQL 关系型数据库 MySQL
Go语言中如何连接 MySQL,基础必备!
在现代应用中,数据库操作至关重要。本教程将指导你使用Go语言进行MySQL的CRUD操作。首先,确保已创建`test_db`数据库及`users`表。接着安装MySQL驱动:`go get -u github.com/go-sql-driver/mysql`。通过示例代码,你将学会连接数据库、创建、查询、更新及删除用户记录。尽管此方法直接,但在实际项目中可能略显繁琐,后续会介绍更高效的库如sqlx或gorm。现在,让我们从基础开始,掌握Go语言中的数据库交互技巧。
49 3
|
2月前
|
SQL 关系型数据库 MySQL
|
2月前
|
SQL 安全 关系型数据库
Go 语言中的 MySQL 事务操作
在现代应用中,确保数据完整与一致至关重要。MySQL的事务机制提供了可靠保障。本文首先解释了事务的概念及其ACID特性,随后介绍了如何在Go语言中使用`database/sql`包进行MySQL事务操作。通过一个银行转账的例子,演示了如何通过Go开启事务、执行操作并在必要时回滚或提交,确保数据一致性。最后,还讨论了不同事务隔离级别的含义及如何在Go中设置这些级别。通过本文的学习,开发者能更好地掌握MySQL事务的应用。
25 0
|
2月前
|
SQL 关系型数据库 MySQL
Go语言中进行MySQL预处理和SQL注入防护
在现代Web应用开发中,安全性至关重要。SQL注入是一种常见的攻击方式,攻击者可通过构造特殊SQL查询来非法访问或修改数据库数据。本文介绍如何利用Go语言中的预处理SQL语句来防范此类攻击。预处理不仅能提升安全性,还能提高性能并简化代码。通过使用`?`作为占位符,Go自动处理参数转义,有效避免SQL注入。此外,文章还提供了连接MySQL数据库、执行预处理查询以及最佳实践的示例代码。务必遵循这些指导原则,确保应用程序的安全性。
43 0
|
3月前
|
SQL 关系型数据库 MySQL
MySQL DCL(数据控制语言)详解与实践
MySQL DCL(数据控制语言)详解与实践
133 0
|
3月前
|
SQL 关系型数据库 MySQL
MySQL DQL(数据查询语言)深度解析与实践
MySQL DQL(数据查询语言)深度解析与实践