select

sql笔记

安稳与你 提交于 2020-03-28 22:05:29
Sql学习笔记 http://www.runoob.com/sql/sql-syntax.html (1)、 使用单引号环绕文本值(大部分数据库也接受双引号) 若果是数值则不需要引号。 (2)、 数据库样表 +----+--------------+---------------------------+-------+---------+ | id | name | url | alexa | country | +----+--------------+---------------------------+-------+---------+ | 1 | Google | https://www.google.cm/ | 1 | USA | | 2 | 淘宝 | https://www.taobao.com/ | 13 | CN | | 3 | 菜鸟教程 | http://www.runoob.com/ | 4689 | CN | | 4 | 微博 | http://weibo.com/ | 20 | CN | | 5 | Facebook | https://www.facebook.com/ | 3 | USA | +----+--------------+---------------------------+-------+---------+ 1、 sql

MYSQL 练习

旧巷老猫 提交于 2020-03-28 21:14:41
导出现有数据库数据: mysqldump -u用户名 -p密码 数据库名称 >导出文件路径 # 结构+数据 mysqldump -u用户名 -p密码 -d 数据库名称 >导出文件路径 # 结构 导入现有数据库数据: mysqldump -uroot -p密码 数据库名称 < 文件路径 一、表关系 请创建如下表,并创建相关约束 二、操作表 1、自行创建测试数据 /* Navicat MySQL Data Transfer Source Server : abc Source Server Version : 50713 Source Host : localhost:3306 Source Database : lx Target Server Type : MYSQL Target Server Version : 50713 File Encoding : 65001 Date: 2016-10-24 18:07:25 */ SET FOREIGN_KEY_CHECKS=0; -- ---------------------------- -- Table structure for `class` -- ---------------------------- DROP TABLE IF EXISTS `class`; CREATE TABLE `class` ( `cid`

mysql入门(四)

左心房为你撑大大i 提交于 2020-03-28 18:15:22
数据库查询操作 关键字:select select 结果集 from 数据源 [where 条件] [group by(分组)] [having 条件] [order by(排序) asc|desc] [limit(限制) s,n] 结果集(字段,*代表所有字段);s start 从第几条开始,查询n条数据,s不写默认从第一条开始。 (1)字段表达式 select 除了可以做查询,还可以调用函数,也可以用来做计算。 select rand(); (2)from子句 from 子句后面跟的是数据源。 (3)dual表 dual不是一个真实的表,只是一个语法; ​ dual的主要作用是为了保证select语句的完整性而设计的。 (4)where子句 where子句的作用,筛选过滤数据; 一般跟在数据源的后面,位置不能乱放。 (5)is null | is not null 筛选数据是否为空或不为空; 放在where的后面,是where的判断条件之一。 (6)between | not between 筛选数据的范围,用在数字集上 select * from user where uid between 2 and 4; select * from user where uid>1 and uid<5; (7)MySQL中的运算符 a.算数运算符 + - * / % ++ -- b

Linq之查询表达式语法详解

核能气质少年 提交于 2020-03-28 16:11:14
1.闲言碎语 由于项目的需要接触到Linq,刚开始有些不适应,好多概念都很模糊。不过经过一段时间的摸索,慢慢地对Linq有了一个更加深入的了解。在此记录一下备忘。 2.查询表达式语法 执行Linq有两种方式,一种是方法形式 eg:names.Contains('K') ;,另一种就是查询表达式 eg:var query=from n in names select n; 下面用代码来详细解释。 string[] fruitName = { "Apple", "Pear", "Cherry", "Banana", "orange" }; IEnumerable<string> query = from f in fruitName where f.Contains("a") orderby f.Length select f.ToUpper(); foreach (var str in query) { Console.WriteLine(str); } 查询变量 :简单来说就是保存查询的变量但不是查询结果,它是一个可以枚举的类型,也就是说可以用 IEnumberable 或 var 类型保存查询结果。只有在foreach它的时候才返回查询结果。用上面的code来说query就是一个查询变量 查询表达式: 查询表达式由一组用类似于 SQL 或 XQuery 的声明性语法编写的子句组成

Mybatis 动态SQL

一个人想着一个人 提交于 2020-03-28 08:42:14
Mybatis 动态SQL,通过 if, choose, when, otherwise, trim, where, set, foreach等标签,可组合成非常灵活的SQL语句,从而在提高 SQL 语句的准确性的同时,也大大提高了开发人员的效率。 以 User 表为例来说明: 1、 if 语句 根据 username 和 sex 来查询数据。如果username为空,那么将只根据sex来查询;反之只根据username来查询 首先不使用 动态SQL 来书写 <select id="selectUserByUsernameAndSex" resultType="user" parameterType="com.ys.po.User"> <!-- 这里和普通的sql 查询语句差不多,对于只有一个参数,后面的 #{id}表示占位符,里面不一定要写id, 写啥都可以,但是不要空着,如果有多个参数则必须写pojo类里面的属性 --> select * from user where username=#{username} and sex=#{sex} </select> 上面的查询语句,我们可以发现,如果 #{username} 为空,那么查询结果也是空,如何解决这个问题呢?使用 if 来判断 <select id="selectUserByUsernameAndSex"

oracle中in 和exists的使用效率

。_饼干妹妹 提交于 2020-03-28 08:41:54
有两个简单例子,以说明 “exists”和“in”的效率问题 1) select * from T1 where exists(select 1 from T2 where T1.a=T2.a) ; T1数据量小而T2数据量非常大时,T1<<T2 时,1) 的查询效率高。 2) select * from T1 where T1.a in (select T2.a from T2) ; T1数据量非常大而T2数据量小时,T1>>T2 时,2) 的查询效率高。 exists 用法: 请注意 1)句中的有颜色字体的部分 ,理解其含义; 其中 “select 1 from T2 where T1.a=T2.a” 相当于一个关联表查询,相当于 “select 1 from T1,T2 where T1.a=T2.a” 但是,如果你当当执行 1) 句括号里的语句,是会报语法错误的,这也是使用exists需要注意的地方。 “exists(xxx)”就表示括号里的语句能不能查出记录,它要查的记录是否存在。 因此“select 1”这里的 “1”其实是无关紧要的,换成“*”也没问题,它只在乎括号里的数据能不能查找出来,是否存在这样的记录,如果存在,这 1) 句的where 条件成立。 in 的用法: 继续引用上面的例子 “2) select * from T1 where T1.a in

[Err] 1093 - You can't specify target table 'user' for update in FROM clause

跟風遠走 提交于 2020-03-28 08:16:48
例: UPDATE `X` SET A='' WHERE B IN ( SELECT B FROM X WHERE XXX ); 会出现查询错误,调整为如下即可:(红色为查询语句,黑色部分为新增) UPDATE `X` SET A='' WHERE B IN ( SELECT u.B FROM ( SELECT * FROM X WHERE XXX ) u ) ; 来源: https://www.cnblogs.com/fan-yuan/p/12585581.html

MySQL:MySQL日期数据类型、MySQL时间类型使用总结

梦想的初衷 提交于 2020-03-28 07:39:03
MySQL 日期类型:日期格式、所占存储空间、日期范围 比较。 日期类型 存储空间 日期格式 日期范围 ------------ --------- --------------------- ----------------------------------------- datetime 8 bytes YYYY-MM-DD HH:MM:SS 1000-01-01 00:00:00 ~ 9999-12-31 23:59:59 timestamp 4 bytes YYYY-MM-DD HH:MM:SS 1970-01-01 00:00:01 ~ 2038 date 3 bytes YYYY-MM-DD 1000-01-01 ~ 9999-12-31 year 1 bytes YYYY 1901 ~ 2155 在 MySQL 中创建表时,对照上面的表格,很容易就能选择到合适自己的数据类型。不过到底是选择 datetime 还是 timestamp,可能会有点犯难。这两个日期时间类型各有优点:datetime 的日期范围比较大;timestamp 所占存储空间比较小,只是 datetime 的一半。 另外,timestamp 类型的列还有个特性:默认情况下,在 insert, update 数据时,timestamp 列会自动以当前时间(CURRENT_TIMESTAMP)填充

SQL学习笔记

爷,独闯天下 提交于 2020-03-28 04:21:01
SQL Server管理 (1) SQL Server的两种验证方式:用户名验证和Windows验证,开发时用Windows验证就行了。 (2) 常用字段类型:bit(可选值0,1),datetime,int,varchar,nvarchar(可能含有中文用nvarchar)。 (3) varchar(),nvarchar().char(n)的区别: char(n)不足长度n的部分用空格填充 。Var: variable:可变的。 SQL语句入门 (1) SQL语句是和DBMS”交谈”专用的语句,不同DBMS都认SQL语法。 (2) SQL语句中字符串用 单引号 。 (3) SQL语句是 大小写不敏感的 ,不敏感指的是SQL关键字,字符串值还是大小写敏感。 (4) 创建表,删除表不仅可以手工完成,还可以执行SQL语句来完成,在自动化部署,数据导入中用的很多。 创建表: create table T_Person ( ID int not null, Name nvarchar(50), Age int null ) 删除表: drop table T_Person (5) 执行简单的Insert语句: insert into T_Person(ID,Name,Age) values (1,’Jim’,39) (6) *(熟悉):SQL主要分DDL(数据定义语言)和DML