欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

细数MySQL中SQL语句的分类

程序员文章站 2023-12-16 10:55:04
1:数据定义语言(ddl)   用于创建、修改、和删除数据库内的数据结构,如:1:创建和删除数据库(create database || drop ...

1:数据定义语言(ddl)
 
用于创建、修改、和删除数据库内的数据结构,如:1:创建和删除数据库(create database || drop  database);2:创建、修改、重命名、删除表(create  table || alter table|| rename table||drop  table);3:创建和删除索引(createindex  || drop index)
 
2:数据查询语言(dql)
 
从数据库中的一个或多个表中查询数据(select)
 
3:数据操作语言(dml)
 
修改数据库中的数据,包括插入(insert)、更新(update)和删除(delete)
 
4:数据控制语言(dcl)
 
用于对数据库的访问,如:1:给用户授予访问权限(grant);2:取消用户访问权限(remoke)
 
问:什么时候使用drop?什么时候使用delete?
 
答:由上可看出,对于结构删除,如数据库删除、表删除、索引删除等当使用drop;而对于数据的删除则是delete.
 
管理数据库和表
 
1:创建数据库-----create  database  数据库名
 
例如:createdatabase instant
 
创建表-----create table 表名(列名  列数据类型  <列约束条件>);
 
例如:create table student(
 
id  int  primart key;
 
name varchar(50));
 
注意:如创建本地临时表(仅仅在创建临时表的连接中可见),在表名前加#;如创建全局临时表(对所有连接可见),在表名前加##;
 
创建索引-----create index 索引名 on 表名 (列名。。。);
 
例如:(非唯一索引)create index nameindex on friend (nmae);
 
(唯一索引)create  unique index nameindex on friend (name );
 
2:连接数据库---use 数据库名
 
例如:useinstant;
 
3:删除数据库-----drop database 数据库名
 
例如:dropdatabase instant;
 
删除表-----drop table 表名
 
例如:drop table student;
 
删除索引---drop indexfriend.phonenoindex;(需指定表名和索引名)
 
4:复制表-----select * from my_friends from friends;(此复制并不能复制表的约定)
 
复制表结构不复制数据:select * from my_friendsfrom friends where 1=0;
 
5:修改表-----

1:添加新列。。altertable friends add address varchar(50);
 
2:更改定义...altertable friends modify phone default('笔者就哦');
 
3:删除列。。altertable friends drop cloumn phoneno;
 
保证数据完整性
 
一:分类:
 
1:实体完整性;
 
2:域完整性;
 
3:应用完整性;
 
4:用户自定义完整性;
 
二:实现:
 
1:创建非空约束------not null
 
2:设置主键约束------primary key
 
3:设置唯一约束-------unique
 
4:指定默认约束-------default
 
5:设置检查约束-------check
 
6:自动编号列----------identity
 
7:外键约束----------foreign key
 
使用dml语句更改数据
 
1:插入数据:(单行)insert into 表名  列名 values  列值;
 
例如:insert intostudent (id,name) values  (1,'张三');
 
(多行)insert into 表名 列名 select (语句)
 
例如:insert intostudent(id,name ) select id+2,name from students;
 
2:表复制:select 列名 into 新表名  from 表名;
 
例如:select  *  intostudent2  from  student;
 
3:更新数据:update 表名 set 列n = 新值。。 where (过滤条件);
 
例如:update student set id = 2,age =20 where name = '张三'

更新来删除数据:update student age= nullwhere name = '张三'

4:删除数据:delete from 表名 where (过滤条

例如:delete fromstudent where name = '张三

注:删除全表数据除去过滤条件即可,也可使用truncate table 表名

简单数据查询
 
1:查询:select 列名 from 表名;
 
例如:select id from student;

查询全表数据:select * from student;
 
2: 表名前缀:select student.id from student;
 
3:列表别名:select t.列 a  as  a,t.列b as b,t.列 c as c from 表 as t;
 
4:计算列:select  id , mark*2 as marksfrom student;
 
select firstname +  '  ' +lastname as fullname from student;
 
5:排除重复数据:select distinct 列a from 表名;\
 
例如:select  distinct name from student;
 
6:限定行数查询:select  top  rowcount columa,columb from table;
 
例如: select top5 id , name from student;
 
7:条件查询 where
 
8:范围查询 between
 
9:定义集合关系 in
 
10:模糊查询 like(单个字符_  多个字符%)
 
11:空值数据控制:select 列a ,列b from  表名 where 列c is not null;
 
select 列a,列b from 表名 where 列c is null;
 
12:排序:升序。。asc
 
降序。。。desc
 
聚合函数与分组
 
1:select count(规范) from 表名;
 
  a:数目 count
 
  b:总和 sum
 
  c:平均值avg
 
  d:最大值max
 
  f:最小值 min
 
2:分组 group by..
 
3:结果集处理:select studentid,avg(mark) as averagemark from studentexam group bystudentid having avg(mark) <50 or avg(mark)>70;
 
4:exists;
 
5:all;
 
6:any;
 
7:union;
 
8:保留重复行:union all;
 
9:交集和差分:intersect except
 
联接
 
1:内联接:join
 
2:外连接:1:左外联:left join或 left  outer join
 
2:右外联:rightjoin 或 right outerjoin
 
3:全外联:full join 或 full outer join

以上就是小编为大家带来的细数mysql中sql语句的分类全部内容了,希望大家多多支持~

上一篇:

下一篇: