SQL复习
来源:互联网 发布:西安事变 知乎 编辑:程序博客网 时间:2024/06/06 02:58
TOP/LIMIT操作符
当数据过多的时候用于分页操作。
mysql: SELECT column_name(s) FROM table_name LIMIT number; Oracle: SELECT column_name(s) FROM table_name WHERE ROWNUM <=number; SQL Server SELECT TOP number|percent column_name(s) FROM table_name
LIKE操作符
用于where子句中模糊搜索
SELECT column_name(s) FROM table_name WHERE column_name LIKE pattern;
查找不包含的内容
SELECT column_name(s) FROM table_name WHERE column_name NOT LIKE pattern;
SQL中通配符/正则表达式
通配符用于sql语句中代替其他字符 在sql语句中常和sql 的LIKE操作符一起使用% 代替0个或者多个_代替一个任意字符正则表达式 用regexp 或 not regexp来表示 eg: select * from websites where name regexp ‘^[GFS]’; 表示查找 name开始的所有name
IN操作符
IN操作符允许将where的范围限定在几个特定的值中Select * from websites where name in (‘google’,’菜鸟教程’) 那么搜索的name就在这两个之中
BETWEEN操作符
BETWEEN操作符,选取在两个值中间的数据 这些值可以是数值 文本 或者日期Select * from websites where alexa between 1 and 20;Between和in操作符一起使用
select * from websites where alexa between 1 and 20 and country not in ('usa');
SQL别名
别名方便查找,更加直观。
常用的SQL:
SELECT name AS ‘姓名’ FROM websites;SELECT name ‘姓名’ from websites;SELECT name 姓名 from websites;
但是在定义别名没有单引号的时候别名不能有空格符号
SQL连接
SQL join用于把来自两个或者多个表的行结合起来,然后展示相关的信息。
INNER JOIN 内联当匹配条件成立时,将返回匹配后的行
LEFT JOIN 左联 左表中没有匹配的的行业会被全部显示出来
RIGHT JOIN 右联 右表中没有匹配的行也会被全部显示出来
MYSQL不支持 FULL JOIN 所以没有关于FULL JOIN 的相关测试记录 可以将FULL JOIN理解为左联加上右联
SQL UNION
UNION用于合并两个或多个select语句的结果集 两个select语句的列数必须相同
默认的union操作符不允许重复,希望重复的时候用 union all
App上面的结果是从websites中查询出来的,下面的app等 是从apps表中查询出来 这样就将两个结果集 结合到一起了
SQL SELECT INTO/SQL INSERT INTO SELECT语句
这两个语句都是将一个表的数据复制到另一个表中
MYSQL不支持SELECT * INTO newtable from table1;
只支持 INSERT into newtable select * from table1 其中newtable必须是创建好了。
SQL约束
创建某一个字段的时候给它添加约束 这样如果用户的行为不符合约束将不会操作成功
常用的约束如下
NOT NULL 指定某列的值不能为NULL
UNIQUE 保证某列的每行必须有唯一的值 不能够重复
PRIMARY KEY 主键 NOT NULL 和 UNIQUE 的结合。确保某列(或两个列多个列的结合)有唯一标识,有助于更容易更快速地找到表中的一个特定的记录。
FOREIGN KEY - 保证一个表中的数据匹配另一个表中的值的参照完整性。
CHECK - 保证列中的值符合指定的条件。
DEFAULT - 规定没有给列赋值时的默认值。
QL AUTO INCREMENT 字段
自增长 重1开始
Eg:ID INT NOT NULL AUTO_INCREMENT
SQL视图
在sql语句中,视图是基于SQL语句的结果集的可视化表,可以通过select * from viewname查找到视图的结果
通过create or replace view viewteset as select name from websites;来更新视图
撤销视图 DROP VIEW viewname;
SQL Date函数
NOW()函数 返回当前的日期和时间
CURDATE()返回当前日期
CURTIME()返回当前的时间
上面的函数可以通过select now()直接查询出来并显示出来
DATE() 函数提取日期或日期/时间表达式的日期部分。语法DATE(date)
EXTRACT() 函数用于返回日期/时间的单独部分,比如年、月、日、小时、分钟等等。语法:EXTRACT(unit FROM date) date是合法的日期表达式,unit参数可以是下列的值
显示效果如下:
DATE_ADD(date,INTERVAL exper type)想日期添加指定的时间间隔 day参数是合法的日期 exper是希望添加的时间间隔 type参数就是上面的值
DATE_SUB()用法和上面的DATE_ADD()是一样的。
DATEDIFF(date1,date2)返回两个日期之间的天数 天数是date1-date2
DATE_FORMAT(date,format)函数于不同格式显示日期/时间数据
就是按照下面的使用方式来但是有很多格式上的问题,就不写出来了
DATE_FORMAT(NOW(),'%b %d %Y %h:%i %p')DATE_FORMAT(NOW(),'%m-%d-%Y')DATE_FORMAT(NOW(),'%d %b %y')DATE_FORMAT(NOW(),'%d %b %Y %T:%f')
SQL函数
AVG()函数 计算数列的平均值 select AVG(column_name) from table_name;
COUNT()函数 计算列的条码总数select COUNT(column_name) from table_name;
Mysql获取列的第一值 SELECT name as fristSite from websites LIMIT 1;
获取列的最后一个值 select name as lastSite from websites ORDER BY id DESC LIMIT 1;
MAX()获取例的最大值 MIN()获取列的最小值
SUM()获取例的总值
UCASE()将小写转换成大学
LCASE()将大写转换成小写
LEN()返回文本字段的长度
ROUND()获取四舍五入的一个整数
MYSQL数据类型
M是精度,D是标度。精度表示数字的整体长度小数点不占位,标度表示小数点后几位数,浮点数(FLOAT,DOULT)一般不用MD来表示,只有DECIMAL才用这个标识。浮点数在插入的数据精度超过规定的数据精度的时候就会四舍五入丢失精度,所以在精度要求高的时候就用定点数
- SQL复习
- SQL复习
- sql复习
- SQL 复习
- sql复习
- SQL 复习
- SQL复习
- SQL复习
- SQL复习
- SQL复习
- SQL复习
- SQL复习
- SQL复习
- SQL复习
- 复习SQL
- 【SQL】SQL语法复习
- SQL语句复习
- SQL系统复习
- Android ListView 下拉刷新,上拉加载更多,带动画 自定义控件
- 李理:从Image Caption Generation理解深度学习(part I)
- Spring AOP详解 、 JDK动态代理、CGLib动态代理
- windows下的python+ opencv安装攻略
- httpclient的json传送数据调用
- SQL复习
- 一次完整的HTTP请求
- 计算机USB系统原理及其主从机设计.pdf
- Docker:删除images报错(Error response from daemon: conflict: unable to remove repository reference)
- 从稀疏表示到压缩感知(下)
- 远控开发记录04_显示手机位置
- ArcGIS Runtime SDK for WPF 10.2.5下载
- http请求过程分析
- 日历开发demo