mysql总结笔记(1-10)

一、安装方法https://blog.csdn.net/midi666/article/details/102599133

二、导入数据库样例
导入外部的.sql文件:这里指的是《MySQL必知必会》这本书中的样例,首先下载下来两个文件,放在E盘的根目录下,名字如下:

然后在mysql的命令行中,选择一个自己建的数据表或者选定已有的:
CREATE DATABASE midi;
USE midi;
然后:source F:/create.sql;
可以:SHOW tables;          来查看一下
再:source F:/populate.sql;         来填充这些表
想查看一下就用:select * from orders;   就行。

三、基本指令

1. 进入mysql:

mysql -u root -p        //然后输入密码即可

2. 创建数据库:

CREATE DATABASE midi;        //midi是数据库名

3. 显示数据库:

SHOW DATABASES;

4. 删除数据库:

DROP DATABASE midi;

5.选择数据库:

USE midi;

SHOW tables;        //或者  DESCRIBE tables;

四、检索数据

select prod_name
from products;        //单个列

select prod_name,prod_id,prod_price 
from products;        //多个列

select * 
from products;        //所有列,其中 * 叫通配符

select distanct vend_id
from products;        //只返回不同的值

select prod_name
from products
limit 5,5;            //限制检索的开始行和行数

五、排序检索数据

select prod_name 
from products
order by prod_name;                   //按字母升序

select prod_id,prod_price,prod_name
from products
order by prod_price,prod_name;        //按多个列排序

select prod_id,prod_price,prod_name
from products
order by prod_price desc;             //降序

select prod_id,prod_price,prod_name
from products
order by prod_price desc
limit 1;                              //返回一行

六、过滤数据

select prod_name,prod_price
from products
where prod_price = 2.50;        //order by 在 where 之后

select prod_name,prod_price
from products
where prod_name = 'fuses';      //字符串加引号

//同理,还有 <  <=  <>(也是不等与的意思)  !=  等符号

select prod_name,prod_price
from products
where prod_price between 5 and 10;         //在范围中间,且有and

七、数据过滤

select prod_id,prod_price,prod_name
from products
where vend_id = 1003 and prod_price <= 10;    //两个where语句用and

select prod_name ,prod_price
from products
where vend_id = 1002 or vend_id = 1003;        //这里用的是or

select prod_name ,prod_price
from products
where (vend_id = 1002 or vend_id = 1003) and prod_price >= 10;  //and的优先级高于or,用圆括号

select prod_name,prod_price
from products
where vend_id in (1002,1003)
order by prod_name;                            //IN用来指定条件范围,用圆括号和逗号

select prod_name,prod_price
from products
where vend_id not in (1002,1003)
order by prod_name;                            //NOT用来否定跟在它之后的条件

八、用通配符进行过滤

like操作符:表示后面的搜索模式利用通配符而不是直接相等匹配进行比较

通配符:用来匹配值的一部分的特殊字符

一、百分号通配符(%):最常用

select prod_id, prod_name
from products
where prod_name like 'jet%';        //%表示任何字符出现任意次数,检索任意以jet开头的词

select prod_id, prod_name
from products
where prod_name like '%anvil%';     //检索任何位置包含文本anvil的词

二、下划线通配符(——):匹配单个字符

select prod_id,prod_name
from products
where prod_name like '_ ton anvil';    //只能匹配一个字符



九、用正则表达式进行搜索

select prod_name
from products
where prod_name regexp '.000'
order by prod_name;            //  . 表示匹配任意一个字符

这里说一下like和REGEXP的区别:LIKE匹配整个列。如果被匹配的文本在列值中出现,LIKE将不会找到它,相应的行也不被返回(除非使用通配符)。而REGEXP在列值内进行匹配,如果被匹配的文本在列值中出现,REGEXP将会找到它,相应的行将被返回。这是一
个非常重要的差别。

select prod_name
from products
where prod_name regexp '1000|2000'
order by prod_name;                    //进行OR匹配,  |  表示匹配其中之一

select prod_name
from products
where prod_name regexp '[123] Ton'
order by prod_name;                    //[123]的意思是匹配1或2或3

select prod_name
from products
where prod_name regexp '[1-5] Ton'
order by prod_name;                    //[1-5]的意思是匹配1到5

select vend_name
from vendors
where vend_name regexp '\\.'
order by vend_name;                    //匹配特殊字符,需要用   \\  是转义的意思

匹配多个实例时,用:

select prod_name
from products
where prod_name regexp '\\([0-9] sticks?\\)'
order by prod_name;                           

//正则表达式\\([0-9] sticks?\\)需要解说一下。\\(匹配),[0-9]匹配任意数字(这个例子中为1和5),sticks?匹配stick和sticks(s后的?使s可选,因为?匹配它前面的任何字符的0次或1次出现),\\)匹配)。没有?,匹配stick和sticks会非常困难。


select prod_name
from products
where prod_name regexp '[[:digit:]]{4}'
order by prod_name;        //匹配连在一起的任意四位数

select prod_name
from products
where prod_name regexp '^[0-9\\.]'
order by prod_name;

//想找出以一个数(包括以小数点开始的数)开始的所有产品,^[0-9\\.]只在.或任意数字为串中第一个字符时才匹配它们

十、创建拼接字段

1.拼接字段:将值连接在一起构成单个值    Concat

select Concat(vend_name,'(',vend_country,')')
from vendors
order by vend_name;                    

Concat()拼接串,即把多个串连接起来形成一个较长的串。Concat()需要一个或多个指定的串,各个串之间用逗号分隔。上面的SELECT语句连接4个元素。

select concat (rtrim(vend_name),'(',rtrim(vend_country),')')
from vendors
order by vend_name;

//这里RTrim()函数去掉值右边的所有空格,还支持LTrim()(去掉串左边的空格)以及
Trim()(去掉串左右两边的空格)。

使用别名(alias):

select concat(rtrim(vend_name),'(',rtrim(vend_country),')') as
vend_title
from vendors
order by vend_name;

//这里的语句中计算字段之后跟了文本AS vend_title。它指示SQL创建一个包含指定计算的名为vend_title的
计算字段。从输出中可以看到,结果与以前的相同,但现在列名为vend_title

2.执行算术计算

select prod_id,quantity,item_price
from orderitems
where order_num = 20005;

select prod_id,quantity,item_price,quantity*item_price as expended_price
from orderitems
where order_num = 20005;

输出中显示的expanded_price列为一个计算字段,此计算为quantity*item_price。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值