mysql增删改查(二)

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介: mysql增删改查(二)

三、SQL语句


SQL语句用于维护管理数据库,包括数据查询、数据更新、访问控制、对象管理等功能。


SQL语句分类:


语句 代表的意思


DDL 数据定义语言,用于创建数据库对象,如库、表、索引等(create )


DML 数据操纵语言,用于对表中的数据进行管理(insert drop delete update )


DQL 数据查询语言,用于从数据表中查找符合条件的数据记录(select )使用最多


DCL 数据控制语言,用于设置或者更改数据库用户或角色权限(grant )


查询语句使用的熟练就是DBA(数据库管理员)


3.1创建及删除数据库和表

3.1.1 创建新的数据库

CREATE DATABASE 数据库名;  
#创建一个名为student的数据库 
mysql> create database student;


3.1.2 创建新的表

主键一般选择能代表唯一性的字段不允许取空值(NULL),一个表只能有一个主键。


CREATE TABLE 表名 (字段1 数据类型,字段2 数据类型[,...][,PRIMARY KEY (主键名)]);
use student; 
create table info(id int,name char(10) not null,age int,sex char(4),score decimal(5,2)); 
desc info;


3.1.3 删除指定的数据表

在数据库内删

mysql> create table info1(id int,name char(10) not null,age int,sex char(4),sccore decimal(5,2)); 
mysql> drop table info1;


在数据库外删


3.1.4删除指定的数据库

DROP DATABASE 数据库名; 
mysql> drop database student;


3.2 管理表中的数据记录

3.2.1向数据表中插入新的数据记录

#向数据表中插入新的数据记录
insert into 表名(字段1,字段2,字段3) values(字段1的值,字段2的值,字段3的值);
mysql> insert into info(id,name,age,sex,score) values(1,'小强',20,'男',95.5);
Query OK, 1 row affected (0.00 sec)
mysql> insert into info(id,name,age,sex,score) values(2,'小红',19,'女',90.9);
Query OK, 1 row affected (0.00 sec)
mysql> select * from info;
+------+--------+------+------+-------+
| id   | name   | age  | sex  | score |
+------+--------+------+------+-------+
|    1 | 小强   |   20 | 男   | 95.50 |
|    2 | 小红   |   19 | 女   | 90.90 |
+------+--------+------+------+-------+
2 rows in set (0.00 sec)

直接使用表明加入字段
mysql> insert into info values(3,'小明',25,'男',99.99);
Query OK, 1 row affected (0.00 sec)
mysql> select * from info;
+------+--------+------+------+-------+
| id   | name   | age  | sex  | score |
+------+--------+------+------+-------+
|    1 | 小强   |   20 | 男   | 95.50 |
|    2 | 小红   |   19 | 女   | 90.90 |
|    3 | 小明   |   25 | 男   | 99.99 |
+------+--------+------+------+-------+
3 rows in set (0.00 sec)


可以指定字段添加
mysql> insert into info(id,name,age)values(4,'小芳',18);
Query OK, 1 row affected (0.00 sec)
mysql> select * from info;
+------+--------+------+------+-------+
| id   | name   | age  | sex  | score |
+------+--------+------+------+-------+
|    1 | 小强   |   20 | 男   | 95.50 |
|    2 | 小红   |   19 | 女   | 90.90 |
|    3 | 小明   |   25 | 男   | 99.99 |
|    4 | 小芳   |   18 | NULL |  NULL |
+------+--------+------+------+-------+
4 rows in set (0.00 sec)


3.2.2 查询数据记录

#格式
SELECT 字段名1,字段名2[,...] FROM 表名 [WHERE 条件表达式];
#示例1:查看所有数据
mysql> select * from info;
+------+--------+------+------+-------+
| id   | name   | age  | sex  | score |
+------+--------+------+------+-------+
|    1 | 小强   |   20 | 男   | 95.50 |
|    2 | 小红   |   19 | 女   | 90.90 |
|    3 | 小明   |   25 | 男   | 99.99 |
|    4 | 小芳   |   18 | NULL |  NULL |
+------+--------+------+------+-------+
4 rows in set (0.00 sec)
#示例2:查询指定数据
 mysql> select name from info where id=1;
+--------+
| name   |
+--------+
| 小强   |
+--------+
1 row in set (0.00 sec)
#示例3:只显示头2行
mysql> select * from info limit 2;
+------+--------+------+------+-------+
| id   | name   | age  | sex  | score |
+------+--------+------+------+-------+
|    1 | 小强   |   20 | 男   | 95.50 |
|    2 | 小红   |   19 | 女   | 90.90 |
+------+--------+------+------+-------+
2 rows in set (0.00 sec)
mysql> select * from info where id<=2;
+------+--------+------+------+-------+
| id   | name   | age  | sex  | score |
+------+--------+------+------+-------+
|    1 | 小强   |   20 | 男   | 95.50 |
|    2 | 小红   |   19 | 女   | 90.90 |
+------+--------+------+------+-------+
2 rows in set (0.00 sec)
#示例4:显示2-4行
mysql> select * from info limit 2,2;
+------+--------+------+------+-------+
| id   | name   | age  | sex  | score |
+------+--------+------+------+-------+
|    3 | 小明   |   25 | 男   | 99.99 |
|    4 | 小芳   |   18 | NULL |  NULL |
+------+--------+------+------+-------+
2 rows in set (0.01 sec)
mysql> select * from info where id>2 and id<=4;
+------+--------+------+------+-------+
| id   | name   | age  | sex  | score |
+------+--------+------+------+-------+
|    3 | 小明   |   25 | 男   | 99.99 |
|    4 | 小芳   |   18 | NULL |  NULL |
+------+--------+------+------+-------+
2 rows in set (0.00 sec)


示例1:查看所有数据


示例2:查询指定数据



示例3:只显示头2行


示例4:显示2-4行


3.3修改、更新数据表中的数据记录

#格式
UPDATE 表名 SET 字段名1=字段值1[,字段名2=字段值2] [WHERE 条件表达式];
#修改分数
mysql> select * from info where id=4;
+------+--------+------+------+-------+
| id   | name   | age  | sex  | score |
+------+--------+------+------+-------+
|    4 | 小芳   |   18 | NULL | 85.00 |
+------+--------+------+------+-------+
1 row in set (0.00 sec)


3.4 在数据表中删除指定的数据记录

#格式:
DELETE FROM 表名 [WHERE 条件表达式];
删除表中id为4的记录
mysql> delete from info where id=4;
Query OK, 1 row affected (0.00 sec)
mysql> select * from info;
+------+--------+------+------+-------+
| id   | name   | age  | sex  | score |
+------+--------+------+------+-------+
|    1 | 小强   |   20 | 男   | 95.50 |
|    2 | 小红   |   19 | 女   | 90.90 |
|    3 | 小明   |   25 | 男   | 99.99 |
+------+--------+------+------+-------+
3 rows in set (0.00 sec)


3.5修改表名和表结构

3.5.1 修改表名

ALTER TABLE 旧表名 RENAME 新表名;
#将表名info修改成base
mysql> alter table info rename base;
Query OK, 0 rows affected (0.00 sec)
mysql> show tables;
+-------------------+
| Tables_in_student |
+-------------------+
| base              |
| test1             |
| test2             |
+-------------------+
3 rows in set (0.00 sec)


3.5.2 扩展表结构(增加字段)

#default 'default值':表示此字段设置默认值 地址未填写!;可与 NOT NULL 配合使用
ALTER TABLE 表名 ADD address varchar(50) default 'default值';
#alter table base add address char(100) default 'china';


3.5.3修改字段(列)名,添加唯一键

唯一键的作用,设置这个字段不能重复,比如说身份证、手机号,一般不作为主键,但也不能重复,就设置为唯一键

#格式
ALTER TABLE 表名 CHANGE 旧列名 新列名 数据类型 [unique key];
#示例:
mysql> alter table base change id snum char(4) unique key;
Query OK, 3 rows affected (0.02 sec)
Records: 3  Duplicates: 0  Warnings: 0
mysql> desc base;
+---------+--------------+------+-----+---------+-------+
| Field   | Type         | Null | Key | Default | Extra |
+---------+--------------+------+-----+---------+-------+
| snum    | char(4)      | YES  | UNI | NULL    |       |
| name    | char(10)     | NO   |     | NULL    |       |
| age     | int(11)      | YES  |     | NULL    |       |
| sex     | char(4)      | YES  |     | NULL    |       |
| score   | decimal(5,2) | YES  |     | NULL    |       |
| address | char(100)    | YES  |     | china   |       |
+---------+--------------+------+-----+---------+-------+
6 rows in set (0.00 sec)
#删除唯一约束
drop table info unique(key);


3.5.4删除字段

#格式
ALTER TABLE 表名 drop 字段名;
#示例
mysql> alter table base drop age;
Query OK, 0 rows affected (0.04 sec)
Records: 0  Duplicates: 0  Warnings: 0
mysql> select * from base;
+------+--------+------+-------+---------+
| snum | name   | sex  | score | address |
+------+--------+------+-------+---------+
| 1    | 小强   | 男   | 95.50 | china   |
| 2    | 小红   | 女   | 90.90 | china   |
| 3    | 小明   | 男   | 99.99 | china   |
+------+--------+------+-------+---------+
3 rows in set (0.00 sec)



3.6 使用 if 判断 创建表并测试自增和填充

create table if not exists stevelu (
id int(4) zerofill primary key auto_increment,
name char(20) not null,
sid int(18) not null unique key,
ge int(3) not null,
address char(10insert0));
解析:
if not exists:表示检测要创建的表是否已存在,如果不存在就继续创建
int(4) zerofill:表示若数值不满4位数,则前面用“0”填充,例0001
auto_increment:表示此字段为自增长字段,即每条记录自动递增1,默认从1开始递增;自增长字段数据不可以重复;
自增长字段必须是主键;
如添加的记录数据没有指定此字段的值且添加失败也会自动递增一次;
如果插入记录时给定id,下一次自增长根据最大的id开始自增长
unique key:表示此字段唯一键约束,此字段数据不可以重复;一张表中只能有一个主键, 但是一张表中可以有多个唯一键
not null:表示此字段不允许为NULL




相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
2月前
|
SQL 关系型数据库 MySQL
mysql 简单的sql语句,入门级增删改查
介绍MySQL中的基本SQL语句,包括数据的增删改查操作,使用示例和简单的数据表进行演示。
mysql 简单的sql语句,入门级增删改查
|
6月前
|
SQL 关系型数据库 MySQL
【MySQL】基本查询(表的增删改查)-- 详解(上)
【MySQL】基本查询(表的增删改查)-- 详解(上)
|
4月前
|
JavaScript 关系型数据库 MySQL
创建nodejs项目并接入mysql,完成用户相关的增删改查的详细操作
创建nodejs项目并接入mysql,完成用户相关的增删改查的详细操作
67 0
|
1月前
|
关系型数据库 MySQL 数据库
Mysql学习笔记(四):Python与Mysql交互--实现增删改查
如何使用Python与MySQL数据库进行交互,实现增删改查等基本操作的教程。
67 1
|
1月前
|
关系型数据库 MySQL
MySQL表的增删改查(基础篇详细详解)
MySQL表的增删改查(基础篇详细详解)
36 5
|
1月前
|
关系型数据库 MySQL 数据库
mysql的增删改查
本文介绍了MySQL数据库中进行增删改查操作的基本语法和注意事项,包括如何添加、修改和删除数据。
45 2
|
3月前
|
JavaScript 关系型数据库 MySQL
node连接mysql,并实现增删改查功能
【8月更文挑战第26天】node连接mysql,并实现增删改查功能
65 3
|
3月前
|
关系型数据库 MySQL 大数据
C#使用SqlSugar操作MySQL数据库实现简单的增删改查
C#使用SqlSugar操作MySQL数据库实现简单的增删改查
262 2
|
3月前
|
关系型数据库 MySQL 数据库
MySQL数据库的增删改查
MySQL数据库的增删改查
21 0
|
3月前
|
SQL 关系型数据库 MySQL
"Python与MySQL的浪漫邂逅:一键掌握增删改查,开启你的数据库编程之旅!"
【8月更文挑战第21天】Python因其简洁的语法和强大的库支持,成为连接数据库的首选工具。本文介绍如何使用Python连接MySQL数据库并执行基本操作。首先需安装`mysql-connector-python`库。通过配置连接信息建立数据库连接后,可利用`cursor.execute()`执行SQL语句进行数据的增删改查,并通过`commit()`提交更改。查询时使用`fetchall()`或`fetchone()`获取结果。记得处理异常及关闭连接以释放资源。掌握这些基础,有助于高效进行数据库编程。
66 0
下一篇
无影云桌面