sql知识点总结

1.MYSQL数据库由服务器端和客户端 (C/S)组成。服务器中主要存储数据文件和服务程序。
2.要访问数据库服务器,必须通过客户端

SQL:Structural Query Lanquage 结构化的查询语言,以mysql数据库作为载体
3.客户端可以分为两大类: 命令行 (cmd),可视化工具(workbench、navicat、SQLyog)。Mysql的核心是存储引擎,常用的有lnnoDB(事务性数据的首选引擎,支持事务安全表(ACID)),MyAM(数据仓库,检索速度快)
4.常用SQL语法
创建数报库: mysgl>create database+数报库名除指定的数据库: mysql>drop database+数据库名;
打开要操作的数据库: mysgl>use+数据库名;
查看有哪些数据表: mysql>show tables;
创建数据表(部门表: depid,dename): mysql>creat table department(depid int,depname varchar(100))
查看数据表的结构: mysgl>desc department;主键约束:行完整性一要求每行记录不能重复
主键能够唯一的标识表中的一条记录。
创建数据表,首先设计表的结构(有哪些字段/列) :
员工信息表
create table employee(empidint primary key auto increment.//auto increment只有在MYSQL中有,其他数据库中是没有的empname varchar(50) not null//空间长度可变,你需要多少就给你多少

一次性导入多条记录,只需要在values后面跟多个括号,括号之间用逗号连接,最后一个跟分号。括号内依次输入字段对应的值。insert into department(depid,depname,location) values (10,accounting'new york')(20,research','dallas');insert into department values (30,sales, chicago'),(40,operations'boston');

修改表结构: alter table
将数据表的名称department改为depart: alter table department rename depart;

为department增加一个新的字段location varchar(200): alter table department add location varchar(200):
修改已有字段的数据类型: alter table department modify location varchar(100);
修改已有字段的名称和数据类型: alter table department change location address varchar(100):
在数据库中已经存在的数据表的结构上增加表字段: alter table +表名 add +字段及字段的各种属性
在数据库中已经存在的数据表的结构上删除表字段: alter table +表名 drop +字段
删除表的外键约束: alter table+表名 drop foreign key +外键字段
别除/添加表的主键约束: alter table+表名 drop(add) primary key(字段名)
删除数据表就是将数据库中已经存在的表从数据中删除,在删除表的同时,表的定义和表中所有的数据均会被删除,删除被其他表关联的主表,分几种情况:
先删除与它关联的子表,再删除父表
如果要保留子表则只需将关联的表的外键约束条件取消,然后就可以删除父表

如果要保留子表,则只需将关联的表的外键约束条件取消,然后就可以删除父表
为id=2002的员工分配部门: update employee set deptid=103 where empid=2002

将员工2006调动到市场营销部,并且月薪上涨10%: update employee set deptid=103,salary=salary*11 where empid=2006:

将所有月薪低于10000的员工薪资上涨10%: update employee set salary=salary*1.1 where salary<10000;

删除记录: delete from department where deptid=101;看数据表中已有的数据: select  from+表的名称
查看基本表结构:desc+表名制  删除表内的所有的数据: delete/truncate table +表名
delete与truncate删除数据的区别:delete进行删除时是逐列进行检查,具有约束的列不能被直接删除,具有数据的安全性及引用的完整性;
truncate是直接删除整张表然后再进行表的重建;
单表询查看表内满足条件的信息:selectfom+表名 where+条件表示所有的字段),若只查询某些字的满足条件的信息,则用: select +字名 from + 表名 where+
带in关键字的查询:select*from +表名 where + 字段名 in(括号内为范围,若要查询不再范围内的信息,则用not in用于离散型数据或者字段)
带between 关键字的查询: select *from +表名 where + 字段名 between+最小值 and +最大值:(用于连续型数据,包含范用的边界值
带like的字符匹配查询(模糊查询) (%匹配任意长度的字符,表示精的单字): elet * from +表名 where + 字名lke%条件%:(%标识有字段)select*from +表名 where + 字段名like+’ 条件’ ;(一个 标识一个字符)
在排查过程中,任何值与null进行运算,运算结果都是null.要对其进行比较时,要用is null或者is not null

多条件查询and: select*from +表名 where +条件 and 条件(! =表示不等于,and表示和,必须满足所有条件);and的优先级要高于or.
or (表示或者,只要满足一个条件即可) : select * from +表名 where +条件 or条件
distinct 去重: select distinct+字段名 from + 表名 where +条件(挑出满足条件的值,无重复)
order by排序: select* from +表名 where +表名 order by+条件(默认是升序,要降序的话则在最后加上desc)分组查询
分组统计 (group by对数据进行分组,通常和集合函数一起使用)select count(*) from +表名 group by +字段名 (count()是对整行进行统计总数)elect+字段名,count(*) from +表名 group by +字段名(分组统计,前后两个字段名相同)
分组查询 (group countat0函数将每个分组中各个字段的值显示出来)select+字段名,count(*) as +种类 group countat(字段名)as+名称from +表名 group by +字段名分组查询、排序
select+字段名,count() as +种类 group countat(字段名) as+名称from +表名 group by +字段名+order by numbers筛选having与group by一起使用,分组查询以后对数据进行筛选,having后加条件。在查询最后添加一个统计栏: with rollup
限制查询: limit (只有MYSQL数据库支持limit关键字),显示前几条记录: limit+数字人第m条记录开始,显示n条记录: limit (m-1),n;
case when语句:用于计算条件列表并返回多个可能结果的表达式之一聚合函数avg0求平均,max0最大值,min0最小值,sum0求和count () 计数

#注意:
查询80%重要数分

sqlcodebook不错,电子书可以瞅瞅关系型数据库用多

非关系型nosql,mongodb

多表连接能实现子查询一定可以实
子查询可以实现的,多表连接不一定可以实现

你可能感兴趣的:(sql,sql,数据库)