CREATE TABLE `TEST_TB_GRADE2` ( `ID` int(10) NOT NULL AUTO_INCREMENT, `USER_NAME` varchar(20) DEFAULT NULL, `CN_SCORE` float DEFAULT NULL, `MATH_SCORE` float DEFAULT NULL, `EN_SCORE` float DEFAULT ‘0‘, PRIMARY KEY (`ID`) ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;insert into TEST_TB_GRADE2(USER_NAME, CN_SCORE, MATH_SCORE, EN_SCORE) values ("张三", 34, 58, 58), ("李四", 45, 87, 45), ("...
t.Request_at Day,(round(count(if(status!="completed",status,null))/count(status),2) ) `Cancellation Rate` from Users u inner join Trips t on u.Users_id = t.Client_Id and u.banned != ‘Yes‘ where t.Request_at >= ‘2013-10-01‘ and t.Request_at <= ‘2013-10-03‘ group by t.Request_at说明:IF(expr1,expr2,expr3)如果 expr1 是TRUE (expr1 <> 0 and expr1 <> NULL),则 IF()的返回值为expr2; 否则返回...
* from 表名 where 条件;二、比较运算符 等于 = 大于 > 大于等于 >= 小于 < 小于等于 <= 不等于 != 或 <> 查询编号大于3的学生select * from students where id>3;查询编号不大于4的科目select * from subjects where id<=4;查询姓名不是“黄蓉”的学生select * from students where sname!=‘黄蓉‘;查询没被删除的学生select * from students where isdelete=0;三、逻辑运算符 and or not 查询编号大于3的女同学select * from st...
count(*) from students;2. max(列)表示求此列的最大值 查询女生的编号最大值select max(id) from students where gender=0;3. min(列)表示求此列的最小值 查询未删除的学生最小编号select min(id) from students where isdelete=0;4. sum(列)表示求此列的和 查询男生的编号之后select sum(id) from students where gender=1;5. avg(列)表示求此列的平均值 查询未删除女生的编号平均值select avg(id) from students where isdelete...
列1,列2,聚合... from 表名 group by 列1,列2,列3...查询男女生总数select gender as 性别,count(*) from students group by gender;查询各城市人数select hometown as 家乡,count(*) from students group by hometown;二、分组后的数据筛选 语法如下:select 列1,列2,聚合... from 表名 group by 列1,列2,列3... having 列1,...聚合...having后面的条件运算符与where的相同 查询男生总人数方案一 select count(*) from students w...
* from 表名;from关键字后面写表名,表示数据来源于是这张表 select后面写表中的列名,如果是*表示在结果中显示表中所有列 在select后面的列名部分,可以使用as为列起别名,这个别名出现在结果集中 如果要查询多个列,之间使用逗号分隔 二、消除重复行 在select后面列前使用distinct可以消除重复的行select distinct gender from students; MySQL查询之基本查询标签:mysql mys 关键字 基本 rom 现在 sql distinct ...
* from A where 1=1 AND A.ID not in (select ID from B )这种情况最常见也是最容易理解的逻辑SQL代码,但是会有很多问题出现。 首先,这种情况是针对数据量比较小的情况使用的,原因在于IN 和 NOT IN并不是针对索引进行查询的,操作效率相对较慢。可以通过使用NOT EXISTS 关键字进行优化,相对IN来说EXISTS的效率要高一些,应该在开发过程中尽量少使用in,并改为left join左连接进行查询过滤。 其次,使用not in 会出现查询结果...
-- 查询全部内容 SELECT * FROM sc; -- 查询部分列 SELECT zno,sno,sname FROM student; -- 限制条件查询部分列 SELECT zno,sno,sname,ssex FROM student WHERE ssex = 女; -- 限制查询条数 SELECT zno,sno,sname,ssex FROM student WHERE ssex = 女 LIMIT 6; -- 列别名和表别名:可读性增加,简洁性 as可以省略 SELECT zno as 专业代号,sno as 学号,sname 姓名,ssex 性别 FROM student WHERE ssex = 女 LIMIT 6; -- DISTINCT避免重...
SET FOREIGN_KEY_CHECKS=0;-- Table structure for t_user -- ---------------------------- DROP TABLE IF EXISTS t_user; CREATE TABLE t_user ( userId bigint(20) NOT NULL, fullName varchar(64) NOT NULL, userType varchar(16) NOT NULL, addedTime datetime NOT NULL, PRIMARY KEY (userId) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;-- Records of t_user -- ---------------------------- INSERT INTO t_user VALUES (‘1‘...
select table_schema,concat(‘alter table ‘,table_name, ‘ engine=Innodb ;‘),(data_length+index_length)/1024/1024 length,engine,data_free,table_rows from information_schema.tables where table_schema not in (‘information_schema‘,‘mysql‘,‘performance_schema‘) and data_free !=0 group by table_name order by table_rows asc; +---------------------+-------------------------------------------...
1.一般数据表的id都是设置成auto_increment的,所以当插入一条记录后,可以使用下面的命令来获取最新插入记录的id值select last_insert_id(); 注意:1. 必须是在使用Insert语句后,紧接着使用select last_insert_id()才有效,在没有使用过Insert语句的情况下,查询返回的结果为0; 2.如果在同一条Insert语句插入多条记录,返回的结果是第一条记录对于的id,如insert into school.student (name, age) values (‘s1‘...
ORDINAL_POSITION AS Colorder,Column_Name AS ColumnName,data_type AS TypeName,COLUMN_COMMENT AS DeText,(CASEWHEN data_type = ‘float‘OR data_type = ‘double‘OR data_type = ‘decimal‘ THENNUMERIC_PRECISIONELSECHARACTER_MAXIMUM_LENGTHEND) AS length,NUMERIC_SCALE AS Scale,(CASEWHEN EXTRA = ‘auto_increment‘ THEN1ELSE0END) AS IsIdentity,(CASEWHEN COLUMN_KEY = ‘PRI‘ THEN1ELSE0END) AS IsPK,(CASEWHE...
location字段为point类型的空间坐标 SELECT id, name, address, x(location) as 经度, Y(location) as 纬度, ROUND( 6378.138 * 2 * ASIN( SQRT( POW( SIN( ( 40.0497810000 * PI() / 180 - lat * PI() / 180 ) / 2 ), 2 ) + COS(40.0...
原有表结构 CREATE TABLE `t_card_user` ( `id` varchar(32) NOT NULL, `card_user_id` bigint(20) DEFAULT NULL COMMENT ‘UserID受设备最大用户数影响,范围为1--最大用户数。‘, `card_no` bigint(20) DEFAULT NULL COMMENT ‘CardNo最大为4294967295(2^32次方)‘, `start_time` datetime DEFAULT NULL COMMENT ‘StartTime格式填写规范:YYYY-MM-DD空格 hh:mm:ss,例如:2015-01-23 14:42:40‘, `end_time` datetime DEFAUL...
2.查询性能优化 使用Explain进行分析 Explain用来分析select查询语句,开发人员可以通过分析Explain结果来优化查询结果。 比较重要的字段有:select_type:查询类型,有简单查询,联合查询,子查询等。 key:使用的索引。 rows:扫描的行数优化数据访问量 1.减少请求的数据量只返回必要的列:最好不要使用select* 只返回必要的行:使用limit语句来限制返回的数据 缓存重复查询的数据:使用缓存可以避免在数据库中进行查询,特别在要...