细数MySQL中SQL语句的分类
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语句的分类全部内容了,希望大家多多支持~