聊聊数据库~SQL基础篇 (7)

知识点:

select getdate() as datatime, newid() as uuid; -- 类似于concat的效果 select cast(id as varchar(20)) + ',' from file_records for xml path (''); -- 移除多余的字符 -- STUFF(<character_expression>,<开始>,<长度>,<character_expression>) -- 将字符串插入到另一个字符串中。它会删除开始位置第一个字符串中的指定长度的字符,然后将第二个字符串插入到开始位置的第一个字符串中 select stuff((select ',' + cast(id as varchar(20)) from file_records for xml path ('')), 1, 1, '');

数据构造:

--存在就删除表 if exists(select * from sysobjects where name = N'file_records') begin drop table file_records end -- 因为SQLServer的int没有unsigned,所以推荐使用bigint create table file_records ( id bigint identity (1,1) primary key, file_name varchar(100) not null, md5 char(32) not null, meta_type tinyint not null default 1, user_id int not null, ip bigint not null, -- 在程序中自行转换 url varchar(200) not null default 'http://www.likecs.com/', createtime datetime not null default getdate(), datastatus tinyint not null default 0 ); -- 可以插入3次(方便下面演示) insert into file_records(file_name, md5, meta_type, user_id, ip, url, createtime, datastatus) values ('2.zip', '3aa2db9c1c058f25ba577518b018ed5b', 2, 1, 736264195, 'http://baidu.com', getdate(), 1), ('3.rar', '6f401841afd127018dad402d17542b2c', 3, 3, 736103427, 'http://qq.com', getdate(), 1), ('7.jpg', 'fe5df232cafa4c4e0f1a0294418e5660', 4, 5, 978522371, 'http://360.cn', getdate(), 1), ('9.png', '7afbb1602613ec52b265d7a54ad27330', 5, 4, 1728288771, 'http://cnblogs.com', getdate(), 1), ('1.gif', 'b5e9b4f86ce43ca65bd79c894c4a924c', 6, 3, 1914437635, 'http://qq.com', getdate(), 1), ('大马.jsp', 'abbed9dcc76a02f08539b4d852bd26ba', 9, 4, 3702877362, 'http://baidu.com', getdate(), 99); 5.MySQL命令扩展:

命令帮助:MySQL> help 命令

查看字符集:show character set;

utf8:使用1~3bytes来表示一个Unicode字符(常用)

utf8mb4:使用1~4bytes来表示一个Unicode字符(Emoji表情 or 不常用汉字)

排序规则:show collation;

eg:show collation where Collation like "%utf8%";

查看引擎:show engines;

InnoDB是默认存储引擎

查看所有数据库:show databases;

切换数据库:use db_name;

查看所有表:show tables;

显示表状态:show table status;

eg:show table status like 'users';

显示表结构:desc tb_name;

查看创建表时的SQL:show create table tb_name;

显示表的索引:show indexes from tb_name

PS:\G可以竖排显示:show table status like 'users'\G

最后YY几句:

没使用Linux之前,我认为C#是最优美性价比最高的语言,之后发现Python才是最简单的语言,C#只能是最优美性价比最高的语言

现在准备接触Golang,最终评价先待定吧

刚接触MySQL发现SQLServer真的很方便,研究MySQL越深越发现==>平心而讲:

对应开发人员来说,MySQL真的比SQLServer方便

对于运维人员来说,SQLServer真的太方便了

PS:中小企业如果没有专门运维人员,还是推荐SQLServer,如果有运维人员或者团队有点Linux运维功底的还是选择MySQL吧

送大家一句话:思维局限在一个维度里,认知就会发生偏移,希望大家能够勇于尝试和突破~

因为时间问题之后的SQL案例就不对比演示了,直接全部MySQL走起(之后只能说尽量加上SQLServer版的演示)

下节预估:查询优化

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wspwyg.html