select命令
SELECT [DISTINCT] [TOP n] select_list
[INTO new_table_name]
FROM table_list
[WHERE search_conditions]
[GROUP BY [ALL] group_by_list]
[HAVING search_conditions]
[ORDER BY order_list [ASC | DESC] ]
- 查询student表中全部数据
SELECT *FROM student;
- select_list
查询student表中确定列数据,id、name、numid列全部数据
SELECT id,NAME,numid FROM student;
- order by …[ASC/DESC]
查询student表中数据,并按某一列数据升降序列排序
SELECT id,NAME,numid FROM student ORDER BY numid; #按numid升序排列 ASC 默认升序
SELECT id,NAME,numid FROM student ORDER BY numid DESC; #按numid降序排列
- union
使用union时,只能对最后结果排序。UNION 运算符使您得以将两个或多个 SELECT 语句的结果组合成一个结果集
SELECT * FROM student WHERE numid LIKE '2019%' AND num like '44%' GROUP BY id UNION SELECT * FROM student WHERE money>40 ORDER BY money; #组合两个筛选结果,删除重复行
-
GROUP BY 子句和 ALL 关键字
只有在 SELECT 语句还包括 WHERE 子句时,ALL 关键字才有意义。 -
DISTINCT
DISTINCT 关键字可从结果集中除去重复的行
SELECT DISTINCT numid FROM student;
- INTO new_table_name
新旧表的创建、复制
SELECT * INTO new_student FROM student;
CREATE TABLE new1_student SELECT * FROM student; #新表不存在 既复制表结构,也复制表内容;new_table中没有了old_table中的primary key,Extra,auto_increment等属性
CREATE table new2_student LIKE student; #数据记录为空
insert into new2_student select * from student; #需新表存在 复制旧表数据到新表 不复制表结构,只复制表内容
create table new3_student as select * from student where 1=2; #数据记录为空 只复制表结构,不复制表内容
- WHERE 子句筛选
Between …and …
通配符:%、_、[]、[^]
SELECT * FROM student where numid BETWEEN '2019082408' and '2019082450';#
#字符串变量需要用单引号,数字和布尔型变量不需要单引号,日期需要用#。
#替换变量:要加双引号,双引号中间需要有连接符& & ,注意所有的连接符前后需要有空格。
SELECT * FROM student WHERE numid LIKE '20190824%';
SELECT * FROM student WHERE numid NOT LIKE '20190824__';
SELECT * FROM student WHERE num LIKE '44%';#
#SELECT * FROM PERSON WHERE Name LIKE '[TJL]%' #从 "Person" 表中找出名字首字母为“T,J,L”的人
#SELECT * FROM PERSON WHERE Address LIKE '[^H]%' #从 "Person" 表中找出住址开头字母不是“H”的人
- HAVING 子句选择行
SELECT * FROM student WHERE numid LIKE '2019%' OR num like '4%' GROUP BY id HAVING money>40;
delete命令
DELETE table_or_view
[FROM table_sources ]
[WHERE search_condition ]
- 删除全部行
删除new1_student所有数据,
DELETE FROM new1_student;
- 删除某一行
#删除num=447的那一行全部数据
DELETE FROM new1_student where num=447;
update命令
update table_name set 列=表达式
[FROM table_sources]
[WHERE search_condition]
#修改name=“丽丽”的那一行的num为440
UPDATE new1_student SET num=440 WHERE NAME='丽丽';
insert命令(表必须存在)
使用 INSERT…Values 增加一行或多行数据
#新增两行new1_student数据
INSERT INTO new1_student(id,name,numid,num,money,DATE) VALUES(0,'lili',2019082425,442,58,'2021-05-08'),(0,'linda',2019082457,448,58,'2021-07-08');