SQL: 数据库三范式:第一范式1NF:属性不可分割 ,表中每一列不可再拆分 第二范式2NF表中非主键列依赖于主键(联合主键情况下(多个主键存在),非主键列不能只依赖于主键的一部分) 第三范式3NF不存在依赖传递 如何删除一个表:drop table [if exists判断该表是否存在]表名 数据库管理系统的英文缩写 DBMS sql查询语句中where子句,对空值的操作:1.Where 列名 is not null ? ? 2.where 列名!='null' ?3.where 列名<>'null' ? mysql shell命令使用账户号密码登录数据库的格式 mysql -uroot -p password CRUD操作:增加(Create)、检索(Retrieve)、更新(Update)和删除(Delete) 数据库的量级:bit、Byte、KB、MB、GB、TB、PB、EB、ZB、YB、BB、NB、DB sql查询命令不重复记录:SELECT DISTINCT 列名FROM table; ?选取表中所有不重复的值 E-R图是:实体联系图,描述现实时间的概念模型 SQL命令根据ID删除一条记录:DELETE FROM 表名称 WHERE 列名称 = 值 DML命令:数据操作语言,对数据表中数据进行操作,增删改 DDL是什么:数据定义语言:创建,删除数据库和表的操作 DQL:数据查询语言,从数据表中筛选数据 DCL数据控制语言,用于控制数据库权限,用户管理
查询所有列:不建议使用*的代码,开发效率太低,使用select 列名 from 表名 去重 select 列名 distinct from 表名 limit 起始,数量 ?使用limit限制返回的行数 as起别名的时候,as写不写都行,别名加不加都行,加引号别名是引号里面的内容,不加引号别名会解析位大写 between 下限 and 上限值 ?值在[下限,上限]都返回 is not null 不为空 <>不等于 != 不等于 not in 不等于 可以使用双查询的形式,先查询符合的id,再在表中查询该id lik'匹配内容' _表示一个字符,%表示0或者多个字符,[]代表匹配其中的任意一个字符,[^] 代表非,不匹配其中的任意一个字符 group by 分组 当聚合条件位筛选结果的时候,不能使用where函数,使用having函数。where对数据库中原始字段做限制,having对前面提到的字段限制 union all 不去重 ? union 联合查询 select device_id,gender,age,gpa from user_profile where university='山东大学' union all select device_id,gender,age,gpa from user_profile where gender='male'
case函数? 简单case函数 CASE 测试表达式 WHEN 简单表达式1 THEN 结果表达式1 WHEN 简单表达式2 THEN 结果表达式2 … WHEN 简单表达式n THEN 结果表达式n [ ELSE 结果表达式n+1 ] END 搜索case函数 CASE WHEN 布尔表达式1 THEN 结果表达式1 WHEN 布尔表达式2 THEN 结果表达式2 … WHEN 布尔表达式n THEN 结果表达式n [ ELSE 结果表达式n+1 ] END2
截取日期函数用extract(day from date)
substring_index(str,delim,count) ?字符串截取函数,str要处理的字符串,delim分隔符,count计数 select? -- 替换法 replace(string, '被替换部分','替换后的结果') -- device_id, replace(blog_url,'http:/url/','') as user_name
-- 截取法 substr(string, start_point, length*可选参数*) -- device_id, substr(blog_url,11,length(blog_url)-10) as user_nam
-- 删除法 trim('被删除字段' from 列名) -- device_id, trim('http:/url/' from blog_url) as user_name
-- 字段切割法 substring_index(string, '切割标志', 位置数(负号:从后面开始)) device_id, substring_index(blog_url,'/',-1) as user_name
from user_submit;
sql中的if(条件,1,0)函数成立就是1,不成立0 DATEDIFF() 函数返回两个日期之间的天数。 ?
|