目录
一、创建&新增数据语句
1、创建数据库
2、创建表
3、表中新增数据
4、表中插入多条数据
二、删除语句
1、从数据库中删除整张表
2、删除表中所有数据
3、删除表中特定的行
三、修改语句
1、修改表名
2、修改表字段类型
3、修改列名
4、修改表中的数据
四、查询语句
1、查看有哪些数据库
2、查看数据库中有哪些表
3、查看表结构;
4、查询结果去重
5、指定查询显示行数
6、查询结果排序
7、where条件查询
8、分组查询以及过滤分组
9、多表查询
一、创建&新增数据语句
1、创建数据库
create database 数据库名;
例如:create database mydata; //创建了一个名叫mydata的数据库
2、创建表
create table 表名 (列名1 字段类型,列名2 字段类型,列名3 字段类型…..);
例如:create table student(st_id int(10),st_name varchar(20)); //创建了一张student表,里面包含s_id,st_name两个字段。
3、表中新增数据
(1)insert into 表名(列名1,列名2,列名3………) values(列名1的值,列名2的值,列名3的值……);
例如:insert into student(st_id,st_name) values(1001,’张三’);
(2)insert into 表名 values(数据1,数据2,数据3…..);
例如:insert into studentvalues(1002,’李四’);
4、表中插入多条数据
例如:insert into student values(1003,’李四’),(1004,’丽丽’),(1005,’芳芳’);
二、删除语句
1、从数据库中删除整张表
drop table 表名;
例如:drop table student; //整张表被删除,数据库中就没有了这张表
2、删除表中所有数据
(1)delete from 表名;
例如:delete from student;//删除表中所有数据,只保留表字段
可以看见只剩下表字段了,只删除了表中的数据:
(2)truncate table 表名;
例如:truncate table student;//删除整张表,然后重新创建一张空表(删除表中所有数据建议用truncate,删除速度比delete要快)
可以看到表中所有数据被删除,只剩表字段
3、删除表中特定的行
delete from 表名 where 条件;
例如:delete from student where st_id=1001;
可以看到st_id=1001的这一行被删除
三、修改语句
1、修改表名
rename table 旧表名 to 新表名;
例如:rename table student to stu2; //将student表名改为stu2
2、修改表字段类型
alter table 表名 modify 列名 要修改的字段类型;
例如:alter table student modify st_name varchar(20);
然后查看表结构,可以看到st_name类型为varchar
3、修改列名
alter table 表名 change 旧列名 新列名 字符类型;
例如:alter table student change st_name name varchar(20);
然后查看表,可以看到st_name被改为name
4、修改表中的数据
update 表名 set 列名=修改值 where 条件;//这里注意不跟条件则是修改一整列的数据
例如:update student set st_id=123456 where st_name=’丽丽’;
可以看到丽丽的st_id被改为123456
四、查询语句
1、查看有哪些数据库
如:show databases;
2、查看数据库中有哪些表
use 数据库名;//如果有多个数据库,需要先确定使用哪个数据库
use mydata;//使用mydata 这个数据库
如:show tables;//查看数据库中的表
3、查看表结构;
desc 表名;
4、查询结果去重
select distinct 列名 from 表名;
5、指定查询显示行数
select * from 表名 limit n,m;//n代表从第几行开始(默认0为第一行),m代表取多少行数据
例如:select * from studentlimit 1,4;//查询student表中从第2行开始,显示4行数据
6、查询结果排序
(1)查询结果降序排序:
select * from 表名 order by 字段名 desc;
(2)查询结果升序排序(默认升序):
select * from 表名 order by 字段名 asc;
7、where条件查询
(1)范围检查:
select * from 表名 where 字段名 between 2.5 and 10; //查询价格在2.5-10之间的信息
(2)空值检查:
select * from 表名 where 字段名 is null;//查询表中的空值
(3)满足多个条件查询:
select * from 表名 where 条件1 and 条件2;
(4)取反查询
select * from products where vend_id not in(1003,1002);
(5)like 加通配符查询
like 后面跟通配符%查询操作,%代表任意字符任意次数:
select * from products where prod_name like ‘s%’;
like 后面跟通配符_查询操作,_代表1个字符:
select * from products where prod_name like ‘_afe’;
8、分组查询以及过滤分组
(1)查询结果分组
格式:select 列名 from 表名 group by 列名;
(2)过滤分组
例如:select 列名 from 表名 group by 列名 having count(*)>=2;
9、多表查询
(1)笛卡尔积
select * from 表1,表2;//同时查询两个表的数据
(2)内连接
格式:select 列名 from 表1 inner join 表2 on 条件;
(3)外连接
①左连接
例如:select column_list from t1 left join t2 on join_condition;(等值连接)
使用左连接,t1和t2进行匹配,如果左表中的行与右表中的行不匹配,则左表会与右表进行假行组合,即使右表t2找不到匹配的行,也会用null显示出来,左表t1全部显示。
②右连接
例如:select column_list from t1 right join t2 on join_condition;(等值连接)
使用右连接,t1和t2进行匹配,如果右表中的行与左表中的行不匹配,则右表会与左表进行假行组合,即使左表t2找不到匹配的行,也会用null显示出来,右表t1全部显示。