//加单引号
select dname 'dept name' from dept;
//加双引号
select dname "dept name" from dept;
别名是中文,用单引号括起来
//别名是中文,用单引号括起来
select dname '部门名称' from dept;
【1】as关键字只是将显示的查询结果列名显示为alias_name,原表列名还是叫:column_name
(select语句是永远都不会进行修改操作,只负责查询)
【2】别名中间有空格,需要使用单引号' ' 或者 双引号 " "括起来;(在所有的数据库当中,字符串统一使用单引号括起来,单引号是标准,双引号在oracle数据库中用不了。但是在mysql中可以使用)
【3】别名是中文,用单引号括起来
8、SQL UNION
UNION 操作符用于合并两个或多个 SELECT 语句的结果集
UNION 内部的每个 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型
同时,每个 SELECT 语句中的列的顺序必须相同
SELECT column_name(s) FROM table1
UNION
SELECT column_name(s) FROM table2;
如下,都会报错
select empname,job from emp where job = 'salesman' union select empname from emp where job='manager';
ERROR 1222 (21000): The used SELECT statements have a different number of columns
字段类型不同;MYSQL中可以不会报错,但是Oracle语法严格 ,会报错
select
empname,job
where
job = 'salesman'
union
select
empname,sal
where
job='manager';
UNION 操作符默认选取不同的值。如果允许重复的值,使用 UNION ALL
SELECT column_name(s) FROM table1
UNION ALL
SELECT column_name(s) FROM table2;
UNION 结果集中的列名总是等于 UNION 中第一个 SELECT 语句中的列名
(2)union 和 join 选择
union的效率要高一些
join表连接,每连接一次新表,则匹配的次数满足笛卡尔积,是两张表行数的乘积
union可以减少匹配的次数;还可以完成两个结果集的拼接
如下:a 连接 b;连接 c
a表10条记录;b表 10条记录;c表 10条记录;join匹配次数:10*10*10 = 1000
a 连接 b一个结果:10 * 10 = 100; a 连接 c一个结果:10 * 10 = 100次;union匹配次数:100 + 100 = 200次
(union把乘法变成了加法运算)
9、SQL SELECT INTO
SELECT INTO 语句从一个表复制数据,然后把数据插入到另一个新表中
复制所有的列插入到新表
SELECT *
INTO newtable
FROM table1;
只复制某列插入到新表
SELECT column_name(s)
INTO newtable
FROM table1;
新表将会使用 SELECT 语句中定义的列名称和类型进行创建,可以使用 AS 子句来应用新名称
MySQL 数据库不支持 SELECT ... INTO 语句,但支持 INSERT INTO ... SELECT
可以使用以下语句来拷贝表结构及数据
create table user11 (select * from user);
CREATE TABLE user22
SELECT * FROM user ;
10、SQL INSERT INTO SELECT
INSERT INTO SELECT 语句从一个表复制数据,然后把数据插入到一个已存在的表中
我们可以从一个表中复制所有的列插入到另一个已存在的表中:
INSERT INTO table2
SELECT * FROM table1;
只复制某列插入到另一个已存在的表中:
INSERT INTO table2
(column_name(s))
SELECT column_name(s)
FROM table1;
select into from 和 insert into select 都是用来复制表
两者的主要区别为:
select into from 要求目标表不存在,因为在插入时会自动创建;
insert into select from 要求目标表存在
1、复制表结构及其数据:
create table table_name_new as select * from table_name_old
2、只复制表结构:
create table table_name_new as select * from table_name_old where 1=2;
create table table_name_new like table_name_old
3、只复制表数据:
如果两个表结构一样:
insert into table_name_new select * from table_name_old
如果两个表结构不一样:
insert into table_name_new(column1,column2...) select column1,column2... from table_name_old
1、SQLSELECT TOP, LIMIT, ROWNUM子句SELECT TOP 子句用于规定要返回的记录的数目。SELECT TOP 子句对于拥有数千条记录的大型表来说,是非常有用的。注:并非所有的数据库系统都支持 SELECT TOP 语句。 MySQL 支持 LIMIT 语句来选取指定的条数数据, Oracle 可以使用 ROWNUM 来选取。SQL Server / MS Access 语法SELECT TOP number|percent column_name(s)F..
SQL Server 直接从表中取直接量或者计算量没有列名:
SELECT 5, FirstName + ' ' + LastName FROM Students
结果是两列都没有列名
解决这个问题,使用别名。
列的别名
SELECT [原有列名 / 直接量(如5,‘David’等)/ 计算量(如Price * Quantity)] AS '列的别名' FROM Ta
今天在项目中有个新的需求:当我传参数的时候,传入的参数为空的时候,查询所有数据。当传入参数不为空的时候,按照输入的参数查询条件进行查询。
这个时候自己本来想着decode函数,后来经历教使用like用法,模糊查询
SELECT b.*, (SELECT COUNT (1) FROM options a WHERE a.pid = b.uuid) zs FROM options b WHERE...
例如下面这条语句就是选取数据表chengjibiao中的score是以9开头的所有数据结果
SELECT * FROM chengjibiao WHERE score LIKE '9%';
运行结果如下:
其中% 符号是用在模式的前后,是定义通配符。
2选取结尾包含某项
当需要选取数据表che...
SQL中可以使用like关键字结合通配符进行模糊查询。SQL支持的通配符有:%、[ ]、[ ^ ]、_,其中[ ]在微软的Access和SQL Sever支持集合。
1、百分号通配符(%)
create table Person(
ID Varchar(20),
name Varchar(20),
age Varchar(10),
sex Varchar(2)
insert into P...
最近做项目中,偶然发现在SQL语句中出现了as这个词,一直以来没怎么关注是什么意思,毕竟影响不大,今天有空,就在网上查了一些资料,大概有了一些的了解
我们的Sql语句在很多数据库中都是通用的,比如像Mysql数据库 Access数据库. Oracle数据库. Sqlite数据库 .甚至在我们的Excel中也可以使用Sql语句.
在我的数据库中有user这个表,正常来说,想查询该表,那么sql...
在mysql中,select查询可以使用AS关键字为查询的字段起一个别名,该别名用作表达式的列名,并且别名可以在
GROUP BY,ORDER BY或HAVING等语句中使用
查询平均成绩大于60分的同学的学号和平均成绩
select a.sid,round(avg(a.score),2) as course
from sc a #round函数是把avg()的数四舍五路保留2位小数
group ...
在sql结构化查询语言中,like语句有着至关重要的作用。
like语句的语法格式是:select * from 表名 where 字段名 like 对应值(子串),
它主要是针对字符型字段的,它的作用是在一个字符型字段列中检索包含对应子串的。
A:% 包含零个或多个字符的任意字符串:
1、like’Mc%’ 将搜索以字母 Mc 开头的所有字符串(如 McBadden)。
2、like’%inger’ 将搜索以字母 inger 结尾的所有字符串(如 Ringer、Stringer)。
3、like’%en%
我们都知道,在sql语句中,使用as可以对字段、表等取别名,像对一些英文的字段取中文名称,使可读性更高。
比如:现在我的表如下所示:
select * from goods;
使用as 将字段变为中文:
select id as 序号, name as 名称, cate_id as 分类序号, brand_id as 品牌序号, price as 价格, is_show as 是否上架, is...
like:
like一般用在 where 表达式中,已搜索匹配子弹中的指定内容
like 通常与通配符 % 一起使用,%表示通配pattern中出现的内容,而不加通配符%的LIKE语法,表示精确匹配,其实际效果等同于 = 等于运算符
举例:查询姓李的老师,这是使用了通配符
不使用通配符,表示精准查找:
通配符 % 放在前面的表示以 什么什么结尾 匹配,%小,...
一般商品名都可能存在空格,如 $keywords = '金士顿(Kingston)dtG3 U盘 8G',但是直接用sql模糊查询时是获取不到对应的数据的,要先做处理。1、先将输入查询的字符串数据中的所有空格去掉,如PHP用str_replace(' ','',$keywords);
2、使用sql的replace函数,这样sql语句就变成 WHERE REPLACE(goods_name,' ',
iOS开发Provisioning profile "iOS Team Provisioning Profile:xxx" doesn't include signing certificate
41910