MySQL常用语句
MySQL常用语句
心专才能绣得花,心静才能织得麻。书山有路勤为径,学海无涯苦作舟。
库的相关操作:
create database (数据库名); #创建数据库
show databases; #查看已拥有的数据库
use (数据库名) #使用该数据库
show tables; #查看该数据库下已拥有的表
drop database (数据库名); #删除该数据库
表的相关操作:
创建表:
create table (表名)(列名称1 数据类型 约束,列名称2 数据类型 约束,列名称3 数据类型 约束,....); #创建表
查看表的基本信息:
show create table (表名) #查看表的基本信息
desc (表名) #查看表的基本结构
删除表
drop table (表名); #删除该表(可通过日志恢复)
truncate table(表名); #删除该表(不可通过日志恢复)
修改表(用Student表演示)
alter table Student modify Sname varchar(25); #这里修改了Student表Sname的数据类型
alter table Student add Sclass varchar(20); #这里添加了一个Scalss字段
alter table Student drop column(可加可不加) Sclass; #这里把新加的字段进行删除
alter table Student change Sclass Stel varchar(20); #这里把Sclass改名为Stel
alter table Student rename SC; #这里把表名Student改为Sc
插入的顺序问题用
alter table user add age varchar(20) first; #插在第一行
alter table user add sex varchar(20) after (你要插在谁后面);
记录的相关操作:
插入记录(用Student表演示)
insert into Student(Sno,Sname,Sage,Ssex) values("10001","张三",19,"男"); #方法一
insert into Student values("10002","李四",22,"男"); #方法二
insert into Student(Sno,Sname,Sage,Ssex) values("10003","王五",20,"男"),("10004","赵六",21,"男"); #方法三(多条一起添加)
更新(修改)记录
update Student set Sage = 21 where Sno="10001" #把学号为10001的学生年龄改为21
删除记录
delete from Student where Sno = '10001' #把学号为10001的学生的记录删除
delete from Student #删除表中的所有记录
查询记录(这是重点)
普通查询:select (字段名) from (表面);
select name from user;#在user表里面查询name
select name,age from user;#在user表里面查询name,age
select * from user;#查询user表里面的所有信息
去重
select distinct age from user;#去除重复值
条件查询
select * from user where id=2;#查询id为2的信息
select * from user where age between 30 and 40;#查询年龄在30到40岁人的所有信息
select *from user where age =30 or age =40;#查询年龄为30或者40岁的人的所有信息
select *from user where age !=30 ;#查询年龄不等于30岁的人的所有信息 '<>'也为不等于
select *from user where age in(30,40) ;#查询年龄为30或者40岁的人的所有信息
select * from uesr where age is null; #查询user表年龄为null的所有数据
select * from uesr where age is not null; #查询user表年龄不为为null的所有数据
模糊查询
select *from user where name like '刘%';#查询名字姓氏为刘的所有人的信息
select *from user where name like '%伟%';#查询所有名字带伟的人的信息
升降序查询
select * from user order by age;#按年龄排序(升序)或者在后面加asc
select * from user order by age desc;#按年龄排序(降序)
分页
下标从0开始
select * from user limit 5,3;#取从下标为5的记录开始往后面的3条记录的信息
select * from user limit 5;#取前5条记录的信息
分组
select * from user group by age;#查询去除重复的年龄的所有信息(分组)
统计
select count<*> from user; #查询一共有几条数据
取别名
select name as na from user;#给name取别名na并查询他的所有信息
多表查询
select sname ,cname from student inner join cs on student.id = cs.id;#在两张表之间查询(内联)
select student.sname from student left join cs on student.id = cs.id;#左链接 以左边为基准
select student.sname from student right join cs on student.id = cs.id; #右连接 以右边为基准
select *from student where id in (select id from cs);#嵌套查询
select *from student where id in (1,2,3);#和上面结果一样