ORDER BY 关键字用于对结果集按照一个列或者多个列进行排序。默认为升序,如果想要降序排列,需要DESC关键字
ORDER BY的语法
SELECT column_name,column_name
FROM table_name
ORDER BY column_name,column_name ASC|DESC;
注:ASC为升序,DESC为降序
例子依然是老师给的虚拟的“学生表”
SNO SNAME SEX DEPT AGE
-------- -------------------- ------ -------- ----------
801 金贤重 男 CS 23
802 李敏镐 男 MA 25
803 那英 女 CS 41
804 金秀贤 女 MA 24
805 刘德华 男 52
806 文章 男 CS 27
807 刘欢 男 MA 51
808 马伊琍 女 CS 36
809 姚笛 女 MA 23
810 周杰伦 男 39
及接下来演示按照年龄的升降序
//输入
SQL> SELECT * FROM s
2 ORDER BY age;
//得到
SNO SNAME SEX DEPT AGE
-------- -------------------- ------ -------- ----------
801 金贤重 男 CS 23
809 姚笛 女 MA 23
804 金秀贤 女 MA 24
802 李敏镐 男 MA 25
806 文章 男 CS 27
808 马伊琍 女 CS 36
810 周杰伦 男 39
803 那英 女 CS 41
807 刘欢 男 MA 51
805 刘德华 男 52
SQL>
//此为升序排列例子
//输入
SQL> SELECT * FROM s
2 ORDER BY age DESC;
//得到
SNO SNAME SEX DEPT AGE
-------- -------------------- ------ -------- ----------
805 刘德华 男 52
807 刘欢 男 MA 51
803 那英 女 CS 41
810 周杰伦 男 39
808 马伊琍 女 CS 36
806 文章 男 CS 27
802 李敏镐 男 MA 25
804 金秀贤 女 MA 24
809 姚笛 女 MA 23
801 金贤重 男 CS 23
SQL>
//此为降序例子
INSERT INTO 语句用于向表中插入新记录。
INSERT INTO 语法
INSERT INTO 语句可以有两种编写形式。
第一种形式无需指定要插入数据的列名,只需提供被插入的值即可:
INSERT INTO table_name
VALUES (value1,value2,value3,...);
第二种形式需要指定列名及被插入的值:
INSERT INTO table_name (column1,column2,column3,...)
VALUES (value1,value2,value3,...);
示例:
//插入的语句
SQL> INSERT INTO s
2 VALUES ('857','孟寻','男','CS','18');
//查询的语句
SQL> SELECT * FROM s;
SNO SNAME SEX DEPT AGE
-------- -------------------- ------ -------- ----------
801 金贤重 男 CS 23
802 李敏镐 男 MA 25
803 那英 女 CS 41
804 金秀贤 女 MA 24
805 刘德华 男 52
806 文章 男 CS 27
807 刘欢 男 MA 51
808 马伊琍 女 CS 36
809 姚笛 女 MA 23
810 周杰伦 男 39
857 孟寻 男 CS 18
SQL>
可以看到孟寻同学已经在表中了,上为没有指定列的例子,注意没有指定列的情况下需要列出插入每一行的数据
SQL> INSERT INTO s(sno,sname,sex,age)
2 VALUES ('1225','邜玥','女','19');
SQL> SELECT * FROM s;
SNO SNAME SEX DEPT AGE
-------- -------------------- ------ -------- ----------
801 金贤重 男 CS 23
802 李敏镐 男 MA 25
803 那英 女 CS 41
804 金秀贤 女 MA 24
805 刘德华 男 52
806 文章 男 CS 27
807 刘欢 男 MA 51
808 马伊琍 女 CS 36
809 姚笛 女 MA 23
810 周杰伦 男 39
857 孟寻 男 CS 18
SNO SNAME SEX DEPT AGE
-------- -------------------- ------ -------- ----------
1225 邜玥 女 19
SQL>
可以看出邜玥同学已经在内,同时语句指定只插入sno,sname,sex,age的信息,无dept的数据,所以邜玥同学的dept数据为空的。
UPDATE 语句用于更新表中已存在的记录。
UPDATE 语法
UPDATE table_name
SET column1=value1,column2=value2,...
WHERE some_column=some_value;
注意使用UPDATE语句中的WHERE语句
WHERE 子句规定哪条记录或者哪些记录需要更新。如果省略了 WHERE 子句,所有的记录都将被更新
假设把上表中孟寻的年龄改为25,性别改成女
SQL> UPDATE s
2 SET age = 25, sex = '女'
3 WHERE sname = '孟寻';
SQL>
SQL>
SQL> SELECT * FROM s;
SNO SNAME SEX DEPT AGE
-------- -------------------- ------ -------- ----------
801 金贤重 男 CS 23
802 李敏镐 男 MA 25
803 那英 女 CS 41
804 金秀贤 女 MA 24
805 刘德华 男 52
806 文章 男 CS 27
807 刘欢 男 MA 51
808 马伊琍 女 CS 36
809 姚笛 女 MA 23
810 周杰伦 男 39
857 孟寻 女 CS 25
SNO SNAME SEX DEPT AGE
-------- -------------------- ------ -------- ----------
1225 邜玥 女 19
SQL>
如果忽略了WHERE语句,那么表中的所有人的性别和年龄都将改变成,女,25;
(顾名思义,删除)
DELETE 语句用于删除表中的记录。
DELETE语法
DELETE FROM table_name
WHERE some_column=some_value;
同样
注意 DELETE 语句中的 WHERE 子句!
WHERE 子句规定哪条记录或者哪些记录需要删除。如果省略了 WHERE 子句,所有的记录都将被删除
例如要删除邜玥同学的信息
SQL> DELETE FROM s
2 WHERE sname = '邜玥';
SQL> SELECT * FROM s;
SNO SNAME SEX DEPT AGE
-------- -------------------- ------ -------- ----------
801 金贤重 男 CS 23
802 李敏镐 男 MA 25
803 那英 女 CS 41
804 金秀贤 女 MA 24
805 刘德华 男 52
806 文章 男 CS 27
807 刘欢 男 MA 51
808 马伊琍 女 CS 36
809 姚笛 女 MA 23
810 周杰伦 男 39
857 孟寻 女 CS 25
SQL>
再查询的时候已经没了邜玥同学的信息了,删除记录的时候要小心,因为不能重来。