SQL_DML语句

DML语句:

DML操作是指对数据库中的表进行操作,主要包括记录的插入(insert),更新(update),删除(delete),查询(select)。

记录插入

创建表完成后就需要给器插入记录和数据了,插入记录基本语法如下:

INSERT tablename (fielde1,fielden2....)VALUES(value1,value2....);

下面我给我制作的表名为class_1填入以下下信息

name分别为liao,liaoxz,marry  age为18,18,28 sex 为man,man,woman

mysql> insert class_1 (name,age,sex)values(‘liao‘,‘18‘,‘man‘);
Query OK, 1 row affected, 1 warning (0.00 sec)
mysql> insert class_1 (name,age,sex)values(‘liaoxz‘,‘18‘,‘man‘);
Query OK, 1 row affected, 1 warning (0.00 sec)
mysql> insert class_1 (name,age,sex)values(‘marry‘,‘28‘,‘woman‘);
Query OK, 1 row affected, 1 warning (0.00 sec)
mysql> select name,age,sex from class_1 ;
+--------+------+------+
| name   | age  | sex  |
+--------+------+------+
| marry  |   28 | w    |
| liaoxz |   18 | m    |
| liao   |   18 | m    |
+--------+------+------+
3 rows in set (0.00 sec)

注:可以不用指定字段名但是values后面的顺序必须要和字段排序一样,加入新的数据记录时如果只指定其中几个字段,其他默认为null值

例如:

mysql> insert class_1 (name,age)values(‘tom‘,‘19‘);
Query OK, 1 row affected (0.00 sec)
mysql> select name,age,sex from class_1 ;
+--------+------+------+
| name   | age  | sex  |
+--------+------+------+
| marry  |   28 | w    |
| liaoxz |   18 | m    |
| liao   |   18 | m    |
| tom    |   19 | NULL |
+--------+------+------+
4 rows in set (0.00 sec)
mysql> insert class_1 values(‘jarry‘,‘18‘,‘woman‘);
Query OK, 1 row affected, 1 warning (0.00 sec)
mysql> select name,age,sex from class_1 ;
+--------+------+------+
| name   | age  | sex  |
+--------+------+------+
| marry  |   28 | w    |
| liaoxz |   18 | m    |
| liao   |   18 | m    |
| tom    |   19 | NULL |
| jarry  |   18 | w    |
+--------+------+------+
5 rows in set (0.00 sec)

同时加入多条记录

mysql> insert class_1 values(‘wang‘,‘19‘,‘man‘),(‘li‘,‘16‘,‘woman‘),(‘liu‘,‘17‘,‘woman‘);
Query OK, 3 rows affected, 3 warnings (0.00 sec)
Records: 3  Duplicates: 0  Warnings: 3
mysql> select name,age,sex from class_1 ;
+--------+------+------+
| name   | age  | sex  |
+--------+------+------+
| marry  |   28 | w    |
| liaoxz |   18 | m    |
| liao   |   18 | m    |
| tom    |   19 | NULL |
| jarry  |   18 | w    |
| wang   |   19 | m    |
| li     |   16 | w    |
| liu    |   17 | w    |
+--------+------+------+
8 rows in set (0.00 sec)

记录更新

表中的值可以通过update来更新语法如下:

UPDATE tablename SET filed1=value1,filed2=value2...[WHERE CONDITION];

例 如将表中的liao 的age更改为20:

mysql> update test.class_1 set age=20 where name="liao";Query OK, 0 rows affected (0.00 sec)
Rows matched: 1  Changed: 0  Warnings: 0
mysql> select name,age from class_1;
+--------+------+
| name   | age  |
+--------+------+
| marry  |   28 |
| liaoxz |   18 |
| liao   |   20 |
| tom    |   19 |
| jarry  |   18 |
| wang   |   19 |
| li     |   16 |
| liu    |   17 |
+--------+------+
8 rows in set (0.00 sec)

记录删除

当数据不再需要时,可以使用delete将其删除,例如将class_1中所有name为liao的所有数据删除;

语法如下:

DELETE FROM tablename [WHERE CONDITION];

mysql> delete from class_1 where name=‘liao‘;
Query OK, 1 row affected (0.00 sec)
mysql> select name,age,sex from class_1;
+--------+------+------+
| name   | age  | sex  |
+--------+------+------+
| marry  |   28 | w    |
| liaoxz |   18 | m    |
| tom    |   19 | NULL |
| jarry  |   18 | w    |
| wang   |   19 | m    |
| li     |   16 | w    |
| liu    |   17 | w    |
+--------+------+------+
7 rows in set (0.00 sec)

记录查询

当想要查看数据库中其中一条数据信息时可以使用select命令查找;基本语法如下;

SELECT*FROM tablename [WHERE CONDITION];

常见用法

例1

查看表中class_1中所有数据;

mysql> select * from test.class_1;
+--------+------+------+
| name   | age  | sex  |
+--------+------+------+
| marry  |   28 | w    |
| liaoxz |   18 | m    |
| tom    |   19 | NULL |
| jarry  |   18 | w    |
| wang   |   19 | m    |
| li     |   16 | w    |
| liu    |   17 | w    |
+--------+------+------+
7 rows in set (0.00 sec)

例2

查看class_1中所有age为19的用户记录

mysql> select * from class_1 where age=19;
+------+------+------+
| name | age  | sex  |
+------+------+------+
| tom  |   19 | NULL |
| wang |   19 | m    |
+------+------+------+
2 rows in set (0.00 sec)

根据查询不同要求可以将查询分为以下几类:

1)去重查询

使用distinct关键字来实现

例如查看表class_2中age去重后显示出来

mysql> select distinct age from class_2; 
+------+
| age  |
+------+
|   18 |
|   19 |
|   16 |
+------+
3 rows in set (0.00 sec)

从上面可以看出class_2表中学生age都在16,18,19之间

2)条件查询

条件查询同where后的字段进行条件比较,比较符号包括 >,<,=,<=,>=,!= 还可以使用多个条件 使用or ,and等逻辑运算符进行多条件查询。

例子1 查看class_1表中age大于等于18的数据,

mysql> select name,age,sex from class_1 where age>=18;
+--------+------+------+
| name   | age  | sex  |
+--------+------+------+
| marry  |   28 | w    |
| liaoxz |   18 | m    |
| tom    |   19 | NULL |
| jarry  |   18 | w    |
| wang   |   19 | m    |
+--------+------+------+
5 rows in set (0.00 sec)

例子2 查看class_1表中sex为man,且年龄大于等于18的数据

mysql> select name,age,sex from class_1 where sex=‘m‘ and age>=18;
+--------+------+------+
| name   | age  | sex  |
+--------+------+------+
| liaoxz |   18 | m    |
| wang   |   19 | m    |
+--------+------+------+
2 rows in set (0.00 sec)

3)输出排序查询

在查询过程中常会将数据进行排序后进行查看,在这里排序查看使用关键字 ORDER BY 来实现,语法如下:

SELECT * FROM tablename [WHERE CONDITION] [ORDER BY filed1 [DESC|ASC]];

DESC是按照字段进行排序,如果第一个字段值一样赋值会按照第二个字段进行比较排序,ASC是按照升序排列,不加sac默认也是升序排列

例子 1 将表class_1按照age进行排序,

mysql> select name,age,sex from class_1 order  by age asc;
+--------+------+-------+
| name   | age  | sex   |
+--------+------+-------+
| li     |   16 | woman |
| liu    |   17 | woman |
| liaoxz |   18 | man   |
| jarry  |   18 | woman |
| tom    |   19 | NULL  |
| wang   |   19 | man   |
| marry  |   28 | woman |
+--------+------+-------+
7 rows in set (0.00 sec)

4)限定输出查询

当一张表中数据过多时,我们只想查看其中一部分可以使用LIMIT关键字实现,LIMIT 语法如下:

SELECT ... [LIMIT offset_start,row_count]

offset_start表示记录起始偏移量,row_count表示行数;

注意:默认其实偏移量为0,例;显示class_1表中按照age排序后的前三条记录

mysql> select * from class_1 order by age;
+--------+------+-------+
| name   | age  | sex   |
+--------+------+-------+
| li     |   16 | woman |
| liu    |   17 | woman |
| liaoxz |   18 | man   |
| jarry  |   18 | woman |
| tom    |   19 | NULL  |
| wang   |   19 | man   |
| marry  |   28 | woman |
+--------+------+-------+
7 rows in set (0.00 sec)
mysql> select * from class_1 order by age limit 3;
+--------+------+-------+
| name   | age  | sex   |
+--------+------+-------+
| li     |   16 | woman |
| liu    |   17 | woman |
| liaoxz |   18 | man   |
+--------+------+-------+
3 rows in set (0.00 sec)

例2 显示从第3条开始后的三条记录

mysql> select * from class_1 order by age limit 2,3;
+--------+------+-------+
| name   | age  | sex   |
+--------+------+-------+
| liaoxz |   18 | man   |
| jarry  |   18 | woman |
| tom    |   19 | NULL  |
+--------+------+-------+
3 rows in set (0.00 sec)

写在后面:多表操作将在后续文章中陆续贴出

时间: 2024-10-08 10:19:45

SQL_DML语句的相关文章

python基础之条件循环语句

前两篇说的是数据类型和数据运算,本篇来讲讲条件语句和循环语句. 0x00. 条件语句 条件语句是通过一条或多条语句的执行结果(True或者False)来决定执行的代码块. 可以通过下图来简单了解条件语句的执行过程: Python interprets non-zero values as True. None and 0 are interpreted as False. Python 判断非0的值为 True, 而None和0被认为是 False.注意这里的True和False首字母大写,Py

js中哪些语句在if语句中默认为真

结论:js中有一个函数是:Boolean(value)这个函数把一个value值转换成相应的boolean值. 当value为以下值是为true:1.任意的非空字符串 .2.任意的非0数字 而当value为以下值为false:1.空的字符串即("").2.0和NaN(Not a Number) .3.undefined 在if语句中写入上面的value,浏览器会自动调用Boolean(value)这个函数. 例如:if ("hello world"){ alert(

python学习笔记二:if语句及循环语句,断点,模块,pyc

if语句 注意:语句块中的内容要强制缩进,否则出错.IndentationError,缩进错误 所有代码,如果是顶级的,必须顶格写,前面不能有空格 if - : - elif - : - else: - while语句 while -: - else: - for语句 for i in range(10)--i默认0,步长默认1,最大为9 for i in range (0,2,10)--从0开始,步长为2,最大为8 for  i   in range(-): - else: - break--

17-4 delete-truncate语句-练习

--删除数据语句: --delete from 表名 where ... --delete语句如果不加where条件,表示将表中所有的数据都删除,加where条件后,会按照where条件进行删除. --删除TblStudent表中的所有数据, --自动编号并没有恢复到默认,仍然继续编号 delete from TblStudent --删除所有性别为'女',同时年龄小于20岁的 delete from TblStudent where tSGender='女' and tSAge<20 --删除

选择结构if语句和switch语句的区别

1.选择结构if语句格式及其使用 A:if语句的格式: if(比较表达式1) { 语句体1; }else if(比较表达式2) { 语句体2; }else if(比较表达式3) { 语句体3; } ... else { 语句体n+1; } B:执行流程: 首先计算比较表达式1看其返回值是true还是false, 如果是true,就执行语句体1,if语句结束. 如果是false,接着计算比较表达式2看其返回值是true还是false, 如果是true,就执行语句体2,if语句结束. 如果是fals

java语言基础与go语言基础,if语句的区别

1.java if 语句 1,if语句 if (条件){ 语句: } if(条件){ 语句1: }else{ 语句2: } 2,多重if-else语句 if(条件1){ 语句1: }else if(条件2){ 语句2: }else{ 语句: } 2.go if语句 关于条件语句,需要注意以下几点: ? 条件语句不需要使用括号将条件包含起来(): ? 无论语句体内有几条语句,花括号{}都是必须存在的: ? 左花括号{必须与if或者else处于同一行: ? 在if之后,条件语句之前,可以添加变量初始

sqlserver数据库的sql语句使用

             T-SQL查询语句 1. tansact-SQL编程语言 美国国家标准协会(ANSI)和国际标准组织(ISO)为 SQL定义了标准,微软通过用Transact-SQL和ANSI-SQL兼容,Transact-SQL还包含了几种能够增强性能的扩展. T-SQL的组成:   数据定义语言(Date Definition Language)语句简称DDL语句 DDL语句用来建立数据库,数据库对象(create,alter,drop) create object_name al

SQL 数据库T-SQL语句查询

         SQL 数据库T-SQL语句查询 附加数据库的数据文件 查询表中种类是水果的出厂日期在201-04-01之后的 查询所有种类的总成本 以倒序的方式查询表中水果的成本 查询种类是蔬菜的并且价格在1-5之间 将product表中的名称,种类,出厂日期的数据保存在另一个名为product_new的表中,并查看 在products表和sales表中查询产品的名称.种类.成本.销售地点和销售价格. 在products表和sales表中查询销往海南的产品名称.种类.成本和销售价格. 查询年

学习mysql的笔记:mysql十大基本入门语句

学习mysql数据库,从最简单的十条入门语句开始.刚开始学习mysql,老师让我们用cmd控制台输入语句,而不是选择用工具输入,这是为了我们能够先熟悉mysql语句. 首先要先进入mysql,语句为:mysql -hlocalhost -uroot -p  然后回车,输入密码. C:\Users\Administrator>mysql -hlocalhost -uroot -p Enter password: ****** 成功进入的话会出现 Welcome to the MySQL monit