sql必知必会
文章平均质量分 54
汐勒个汐
运维工程师,民哲,博士预备役
展开
-
15.linux环境下 mysql安装、卸载、远程访问配置、相关文件路径(保姆级教学,亲自踩坑无数)
前言由于刚开始不懂,装过mysql,但是后来手贱,改过 mysql数据库实例中的 user表。这张表里记录了用户信息的各种权限(比如查看、更新、插入权限等)。后面想用下面这个命令改root密码,报错 mysql.user这张表已经损坏(因为自己啥都不懂,给这张表加了一个字段“password”,相当于破坏了原始表的结构)。捣鼓了半天很难受,一了百了就想重装了再说。mysqladmin -uroot -p '初始默认密码' password '欲设置的密码'一、卸载可能踩到的坑刚开始卸载觉得是原创 2021-08-21 16:29:50 · 169 阅读 · 0 评论 -
16.SQL必知必会第17课 表的创建与操作(create & alter & rename)
一、知识表的创建创建语法:create table 表名(列名1 数据格式(容量) 是否能置为null ,列名2 数据格式(容量) 是否能置为null ,列名3 数据格式(容量) 是否能置为null ,);实例:create table tyqsl2.Student (学号 char(10) not null ,班级 char(10) not null,性别 char(10) not null,成绩(百分制) char(4) null,家庭住址 char(100) n原创 2021-01-21 14:38:01 · 252 阅读 · 0 评论 -
15.SQL必知必会第16课 更新删除数据(update & delete & 更新删除权限)
一、知识update更新语法如下:update 表名 set 列名 = 欲更新的数据1, 列名 =欲更新的数据2, 列名=欲更新的数据3,where +限制条件举一例书上的例子update tyqsl2.customers set cust_email = '123456@qq.com', cust_contact= 'martin'where cust_id = 1000000005限制条件很重要,如果没加限制条件,该语句会修改对应列的所有行。mysq原创 2021-01-19 13:34:29 · 423 阅读 · 0 评论 -
14.SQL必知必会第15课 插入数据(数据库的备份&insert into ... values&表的复制操作)
一、数据库备份这里使用的是workbench数据库管理系统。由于这一讲需要插入数据,所以在操作前给数据库备份。如下图,连续点两下就完事了二、如何载入备份文件三、知识如何用sql语句把数据写入table。语法如下:insert into 表格名(列名1,列名2,列名3)vaules(数据,数据,数据)下举一具体例子用到的表格 customersinsert into tyqsl2.customers(cust_id, cust_name, cust_a原创 2021-01-18 22:28:55 · 733 阅读 · 0 评论 -
13.SQL必知必会第14课 组合查询(union & 用union做 full outer join)
二、课后习题select prod_id,quantity from tyqsl2.orderitemswhere quantity = 100unionselect prod_id,quantity from tyqsl2.orderitemswhere prod_id like 'BNBG%'2.select prod_id,quantity from tyqsl2.orderitemswhere quantity = 100or prod_id like 'BNBG%原创 2021-01-16 14:41:10 · 269 阅读 · 0 评论 -
12.SQL必知必会第13课 创建高级联结(inner join &left outer join )
一、知识使用表别名不仅可以用as给列取名,还可以用as给表命别名方便缩写,举例如下select cust_name,order_numfrom tyqsl2.customers as c,tyqsl2.orders as owhere c.cust_id=o.cust_idinner join举例其实内联结就是上一讲(链接: 地址)所讲的内容。我们在上一讲这么写select 成绩,姓名,地址 from 表一,表二where 表一.学号 = 表二.学号现在我们换一种标准的内联原创 2021-01-15 20:14:04 · 133 阅读 · 0 评论 -
11.SQL必知必会第12课 创建联结(笛卡尔乘积&联结)
一、知识这一讲设计SQL数据库的核心理念。如果将所有数据存放在一张table,那明显是低效的。所以关系型数据库就是要将信息分解成多个表,一类数据一个表。各个表通过某些共同的值互相关联。所以,当我们需要select多张表上的信息时,应该怎么办呢?这也正是这一课需要用到的知识——创建联结。先举一个用例笛卡尔乘积&联结执行过程用到的表有如此两张表,两张表的信息结合起来才是完整的数据信息。我们不加过滤直接抓信息select 姓名,成绩,地址 from 表一,表二输出结果如下:实际就是原创 2021-01-14 23:50:13 · 307 阅读 · 0 评论 -
10.SQL必知必会第11课 使用子查询(查询的嵌套)
一、知识之前我们学过的都是简单查询,所谓子查询指查询中嵌套查询,以下面两个表格和查询命令举例。Ordeitem表Orders表含有子查询的命令SELECT cust_idfrom tyqsl2.orderswhere order_num in (select order_num from tyqsl2.orderitems where prod_id = 'RGAN01')输出结果解释子查询如例子所写,在查询中嵌套了查询。这种命令都是由内向外解析,子查询得到结原创 2021-01-12 21:14:23 · 340 阅读 · 0 评论 -
9.SQL必知必会第十课 分组数据(GROUP by & HAVING )
一、知识之前的操作都是对某一列进行操作,使用”where“来过滤数据。上一课我们学过一个案例前例:SELECT count(vend_id) from tyqsl2.products我们虽然能统计这一列的计数,但是如果我们想根据某一行的类型来计量各类不同项的计数。比如以下这张表:想要根据不同的Vend_id来计算列的数目(用通俗的话就是说想知道BRS01、DLL01、FNG01分别有多少个)。需要用到如下语句:输出如下:SELECT vend_id ,count(vend_id原创 2021-01-08 21:58:38 · 228 阅读 · 0 评论 -
8.SQL必知必会第九课 使用聚集函数汇集数据
一、知识有时候,我们需要对某列数据做简单处理。(求和,求平均、取最大、取最小等)就需要用到聚集函数。聚集函数有如下5个。AVG()//取平均COUNT()//取这一列的行数MAX()//取这一列的最大值MIN()//取这一列的最小值SUM()//取这一列之和试举一例:select avg(prod_price)as avg_pricefrom tyqsl2.products再举一例:SELECT count(*) as numbers_of_items, avg(pro原创 2021-01-08 19:44:53 · 160 阅读 · 0 评论 -
7.SQL必知必会第八课使用函数处理数据
一、知识这里的函数和一般意义的函数基本是等价的,给出相应的参数,获得相应的输出。由于函数这个话题太大,笔者由于水平问题,仅仅罗列出常用函数。常用文本处理函数UPPER() //将字符串转换为大写LOWER()//转换为小写LEFT()//返回字符串左边的字符RIGHT()//返回字符串右边的字符LENGTH//返回字符串的长度LTRIM()//去掉字符串左边的空格这里举一个小例子。输出全大写形式的prod_nameeg:select upper(prod_name)from ty原创 2021-01-07 20:24:20 · 176 阅读 · 1 评论 -
6.SQL必知必会第七课 创建计算字段
一、知识我们在具体应用中,可能会遇到这种情况,比如某一个商品的表,有一行表征单价,有一行表征数量,我们想知道总价,但是原表没得,怎么办呢?(在后文第二个例子可以看到解决方法)在使用数据库的时候,有时候需要结合两列数据来看,所以我们需要按照我们需要的方式将其拼接起来。下面为例子:concat & asselect concat(vend_name,'(',vend_country,')') as NEW_Tablefrom tyqsl2.vendors输出:该句表达的意思就是,将原创 2021-01-06 22:30:27 · 106 阅读 · 0 评论 -
5.SQL必知必会第六课用通配符进行过滤
一、知识通配符所谓通配符,指用来匹配值的一部分的特殊字符。关键词 like用于连接通配符的关键词,语法如下:select *from tyqsl2.productswhere prod_name like 'F%'like用以连接通配符,第三行指搜索 prod_name以F开头的数据。输出如下:“%”的用法%作为通配符,指代任何数量任何字符,具体用法如上例。“_”的用法_作为通配符,指代一位任何字符,用法如下:select *from tyqsl2.productswher原创 2021-01-05 21:01:28 · 194 阅读 · 0 评论 -
4.SQL必知必会第五课 高级过滤数据
一、知识1.or & and简单的或与逻辑词,这里举一例分析之。我们想抓取供货商为DLL01或者BRS01且价格高于9的数据。SELECT * FROM tyqsl2.productswhere vend_id ='DLL01' or vend_id='BRS01' and prod_price > 9; 输出:为什么输出和我们直觉上发生了差错呢?因为or 和and逻辑词也存在优先级顺序,先运算 and 再运算 or,这和先乘除再加减具有异曲同工之妙。所以正确的写法应该是原创 2021-01-04 15:45:26 · 1415 阅读 · 5 评论 -
1.《SQL必知必会》第五版 附录A样例表的添加
mysql+workbench的初步使用一、安装mysql+workbench二、导入附录A的样例表最近工作需要学习SQL,查阅了相关知识购买了图书《SQL必知必会》第五版。这本书没有提供对应的软件,需要读者自行搭建环境。这里笔者选用mysql+workbench,这篇文章旨在搭建可以学习本书相关指令的环境并且导入附录A的样例表(Vendors、products、customers、orders、orderitems)。一、安装mysql+workbench按照 该文逐步操作安装mysql下载并安装原创 2020-12-30 21:38:13 · 3072 阅读 · 1 评论 -
2.《SQL必知必会》第二课(检索数据)+第三课(排序检索数据)
第二课 检索数据主要学到的关键字1.select语法如下,从对应的表中显示A,B,C列*表示所有select A,B,Cfrom TABLE;select * from TABLE;2.distinct表示不显示重复的结果。select distinct A from TABLE;3.top N只显示需要显示的前N行数据。语法如下:select TOP 5 Afrom TABLE;但是由于笔者是在mysql环境学习,是没有top这个用法的要想达到相同的效果,需要使用原创 2021-01-03 14:22:18 · 148 阅读 · 2 评论 -
3.《SQL必知必会》第四课过滤数据
一、知识WHERE用法如下:表面抓住价格在3-10之间的数据SELECT prod_name,prod_price from tyqsl2.products where prod_price BETWEEN 3 AND 10二、课后习题1.SELECT prod_name,prod_price from tyqsl2.products where prod_price = 9.49;2.SELECT prod_name,prod_price from tyqsl2原创 2021-01-04 14:53:40 · 92 阅读 · 0 评论