SQL测试的
https://shimo.im/docs/xCJwTcPCjT3k8pjD/ 《VFP学习》
SELECT UUID() 生成全球唯一的UUID(32位string(字符串)值)【mysql验证】
select replace(uuid(),‘-‘, ‘‘) 生成32位无"-"UUID【MySQL验证】
一、 基础知识
MS SQL server基础知识
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
三、其他命令
方法一:命令
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格式
详情:
https://blog.csdn.net/a22698488/article/details/90373122
https://www.cnblogs.com/cuozhixu/archive/2018/11/05/9909310.html
第一个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 //查看表结构