SQL测试的

https://shimo.im/docs/xCJwTcPCjT3k8pjD/ 《VFP学习》

SELECT UUID() 生成全球唯一的UUID(32位string(字符串)值)【mysql验证】

select replace(uuid(),‘-‘, ‘‘) 生成32位无"-"UUID【MySQL验证】

一、 基础知识

MS SQL server基础知识

(一)什么是 dbo,表前为什么加这个?

dbo是每个数据库的默认用户,具有所有者权限,全称:datebaseOwner ,即DbOwner 。

在数据库中,新建对象时,默认对象的所有者为当前登录的账号。

如果通过用dbo作为所有者来定义对象,能够使数据库中的任何用户引用而不必提供所有者名称。

比如:你以User1登录进去并建表Table,而未指定dbo, 当用户User2登进去想访问Table时就得知道这个Table是你User1建立的,要写上User1.Table,如果他不知道是你建的,则访问会有问题。 如果你建表时把所有者指给了dbo,则别的用户进来时写上Dbo.Table就行了,不必知道User1。 不光表是如此,视图等数据库对象建立时也要如此才算是好。 所以在创建对象时,指定所有者为dbo,任何一个用户都可以引用。建表、存储过程、视图等数据库对象时,其对应的所有者是创建它的用户。则除了该用户其他登录用户要引用这些东东时,都要加上前缀,很是麻烦。而且,程序因此易出错,你查来查去问题确出在这,浪费你时间。

————————————————

版权声明:本文为CSDN博主「蓝星部队」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/lanxingbudui/article/details/81631020

查询语句select

(一)常用查询

1命令1:--以下命令含义:查询从数据库l_jyzx_2019到l_jyzx_2017年中l_sy表的记录总数。union all =union, union all会列出所有字段内容(即使两个表字多内容相同)【双横杠是注释】

select sum(表记录数) as "11111" --数字别名用双引号表示,英文、汉字可以不用引号
from(
SELECT COUNT(*) as 表记录数  FROM
[l_jyzx_sj2019].dbo.l_sy  --数据库、dbo、表,三个当中必须有一个要加中括号,否则会报错,下面语法一样。
union all
select COUNT(*)
  FROM
[l_jyzx_sj2018].[dbo].[l_sy]  --这个是完整版。
union all
select COUNT(*)
  FROM
[l_jyzx_sj2017].dbo.l_sy 
) as 聚合表别名 --聚合出来的表要起个别名,否则会报语法错误。

2.命令2: --说明:从数据库bdz的表bdz中查询nd字段,字段用别名为“年度”,nd字段的数量别名为“人数”,并显示“人数”大于38000的查询结果--

SELECT nd AS ‘年度‘, COUNT(nd) AS ‘人数‘
  FROM [bdz].[dbo].[bdz] 
  GROUP BY nd
    HAVING COUNT(nd) > 380000

 

3.命令3:

SELECT  COLLATIONPROPERTY(‘Chinese_PRC_Stroke_CI_AI_KS_WS‘, ‘CodePage‘)
--数据库编码查询

4.命令4:

select * FROM [l_jyzx_sj2018].[dbo].[l_sy]   
/*查询数据库[l_jyzx_sj2018]中表[dbo].[l_sy] 的所有字段。*/

concat ()方法用于连接两个或多个数组例如:

查询时要在一个字段中 stu_id、stu_name,中间用 ‘# ‘ 连接

mysql 语句:   SELECT CONCAT(stu_id, ‘#‘, stu_name) FROM student

https://www.cnblogs.com/mayytest1202/p/10330208.html

https://baike.baidu.com/item/concat%28%29/13473511?fr=aladdin

(二)复制表

select into from 和 insert into select 都是用来复制表。两者的主要区别为: select into from 要求目标表不存在,因为在插入时会自动创建;insert into select from 要求目标表存在。

补充:https://www.w3school.com.cn/sql/sql_select_into.asp SQL SELECT INTO 语句

select into from :将查询出来的数据整理到一张新表中保存,表结构与查询结构一致。

select *(查询出来的结果) into newtable(新的表名)from where (后续条件)

即,查询出来结果--->复制一张同结构的空表--->将数据拷贝进去。

insert into select :为已经存在的表批量添加新数据。

insert into  (准备好的表) select *(或者取用自己想要的结构)from  表名 where 各种条件

实例:

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

三、其他命令

)SQL server 将数据导出到文件方法

方法一:命令

1、首先启动该命令,方法如下: 

SP_CONFIGURE‘show advanced options‘,1 RECONFIGURE 

SP_CONFIGURE ‘xp_cmdshell‘,1 RECONFIGURE

2、将整个表数据导出到文件,方法如下:

EXEC master..xp_cmdshell ‘bcp "select * from [l_jyzx_sj2001].[dbo].new" queryout "D:\bak\data.xls" -c -t -T‘

方法二:菜单

1.用select 查询出结果;

2.在查询结果中点右键,导出为csv格式

SQL测试的

详情:

https://blog.csdn.net/a22698488/article/details/90373122

https://www.cnblogs.com/cuozhixu/archive/2018/11/05/9909310.html

(二)其他数据库命令
1.MySQL

第一个desc(describe,描述)是mysql的命令

desc stu1  //查看表stu的表表结构

第二个desc(descend,下降)对应降序排序值,是用在sql语句中的

【MySQL】stu表按降序排列(默认升序),并插入限定范围记录到stu1

insert into `stu1` select * FROM `stu`  ORDER BY `id` DESC LIMIT 100 (或者0,100) 
//前100条记录复制到表stu(表面和字段用单引号或无引号均可)
insert into `6`(sid,xm)  select  sf,cs from `stu5` ORDER BY `id` DESC limit 2,3 
//表stu5(注意是从第二条记录开始索引,不包括第二条)第3~5三条记录的字段sf,cs值插入(追加)到表stu的sid,xm字段列(不一定要是同名字段)

【MySQL】创建一个新表stu4,复制表stu的结构和内容,但不包括索引

CREATE TABLE stu4 SELECT * FROM stu2
CREATE TABLE stu6 AS (SELECT * FROM stu3) //同上一句作用一样
CREATE TABLE stu8 AS (SELECT id, xm FROM stu3)  //只复制id,xm两个字段
CREATE TABLE stu7 AS (SELECT ID AS SID,xm AS xm1,bh AS bh1 FROM `stu1`)
//复制ID,xm,bh 三个字段,并对这些字段进行了重命名
CREATE TABLE stu9 SELECT ID AS SID,xm AS xm1,bh AS bh1 FROM `stu1`
//作用同上,不用as也可以

【MySQL】完全复制表结构(包括了索引和主键),但不复制内容

CREATE TABLE stu3 LIKE stu

【MySQL】完全复制表结构和内容。注意这是两个语句,必须用;连接,否则报错

create table stu6 like stu;
instert into stu6 SELECT * FROM stu2

SQL显示查询结果的前100条

MYSQL:

select * from tbl limit 100;

ORACLE:

select * from tbl where rownum<=100;

SQL SERVER:

select top 100 * from tbl

SYBASE:

SET ROWCOUNT N GOSELECT * FROM TABLE1

mysql 查外键关联关系 (指定被引用表,查哪些表对其有外键引用):

select * from INFORMATION_SCHEMA.KEY_COLUMN_USAGE  where REFERENCED_TABLE_NAME=‘stu2‘  
alter table 表名 drop foreign key 外键约束名称 //删除外键
alter table stu2 drop foreign key 编号

mysql查看表结构

show create table   stu5  //查看表结构

相关推荐