SQL常用语句
SQL常用语句
一、数据库:
show databases; #显示所有数据库
create databses mybase; #创建数据库
drop database mybase; #删除数据库
use mybase; #使用数据库
show tables; #显示此数据库中所有的表
二、表
create table mytable( #创建一个名为mytable的表
id int primary keyauto_increment, #id 整形 主键 自动增长
name varchar(10) unique notnull, #name 字符型[10] 唯一 不为空
age int #age 整形
);
drop table mytable; #删除整张表。数据和表都被删除
#插入数据,按照字段顺序进行插入数据
insert into mytable values(’张三’,18),(’李四’,19);
#插入数据,按照指定字段进行插入
insert into mytable(name,age) values (‘王五’,20),(‘赵六’,21);
#删除id为1的整行数据
delete from mytable whereid=1;
#删除表中的所有数据,表仍然存在
delete from mytable;
#修改id为2的name为’李四’ ,age为18
update mytable set name=’李四’ ,age=18 where id=2;
#查找mytable表中的所有数据
select * from mytable;
#查找mytable表中id为2的数据
select id,name from mytablewhere id=2;
#查找mytable表中id不等于2的数据
select * from mytable whereid!=2;
#查找mytable表中id大于2的数据
select * from mytable whereid>2;
#查找mytable表中id不等于2的数据
select * from mytable whereid<>2;
#查找mytable表中id求余为0的数据
select * from mytable whereid%2=0;
#查找mytable表中name 为’李’开头的数据
select * from mytable wherename like ‘李%’;
#查找mytable表中name为’王’开头且两个字的数据
select * from mytable wherename like ‘王_’;
#查找mytable表中name中含有’刘’的数据
select * from mytable wherename like ‘%刘%’;
#查找mytable表中id从2到4的数据
select * from mytable whereid between 2 and 4;
#查找mytable表中id为在(2,3,4,8)这个集合中的数据
select * from mytable whereid in (2,3,4,8);
#查找mytable表中所有的数据并按照学号进行排序
select * from mytable order byid;
#查找mytable表中所有的数据并按照年龄进行倒叙排序
select * from mytable orderby age desc;
#查找mytable表中所有的数据的条数
select count(*) frommytable;
#查找mytable表中所有的数据的条数
select count(1) frommytable;
#查找mytable表中所有的age的和
select sum(age) frommytable;
#查找mytable表中所有的age的平均数
select avg(age) frommytable;
#查找mytable表中所有的age的最大值
select max(age) frommytable;
#查找mytable表中所有的age的最小值,并把列名改为’最小值’
select min(age) as ‘最小值’ from mytable;
#查找mytable表中按照sno分组后每组的sno和score的和,并且每组的score的和大于200
select sno,sum(score) as '总成绩' from sc group by snohaving sum(score)> 200;
表属性
#修改表名为student
alter table mytable renamestudent;
#修改添加字段score 类型为int 且不能为空
alter table student addscore int not null;
#修改表字段score 为address 类型为varchar 长度为50
alter table student changescore address varchar(50);
#修改字段age在score字段后面
alter table student modifyage int after score;
#删除address字段
alter table student dropaddress;
表关系
#等值连接
select s.id,s.name,t.namefrom student s,teach t where s.tid=t.id;
#交叉连接
select t.name,s.username,s.age,s.sexfrom teacher t cross join stu s on s.id = t.id;
#交叉连接
selectt.name,s.username,s.age,s.sex from teacher t inner join stu s on s.id = t.id
#以上三种连接获取的都为表的交集
#左连接,将左边的数据与右边进行匹配
selectt.name,s.username,s.age,s.sex from teacher t left join stu s on s.id = t.id;
#右连接
select t.name,s.username,s.age,s.sexfrom stu s right join teacher t on s.id = t.id;
#设置外键,删除主键的数据时,若外键中存在相关的数据,则删除失败。只能当外键中相关的数据删除后,才能删除主键中的数据。
alter table student addconstraint foreign key(tid) references teacher(id);
#设置外键,并设置级联删除,当主键的数据删除时,外键相关的数据也被删除。
alter table student addconstraint foreign key(tid) references teacher(id) on delete cascade;
#获取系统年
select year(sysdate());
#年月日
select date(sysdate());
#年月日 时分秒
select timestamp(sysdate());
#创建视图
create view stu_view asselect id,name from student;