MySQL_学习笔记

1.启动

systemctl start mysql   #启动MySQL
systemctl status mysql  #查看MySQL的运行状态
sudo mysql  #进入MySQL命令行模式

# user_0 为用户名,PassWord 为密码
mysql -uuser_0 -pPassWord;
mysql -uuser_0 -p; # 回车之后,MySQL会要求键入密码
# 创建数据库、使用数据库、执行脚本文件
CREATE DATABASE TestDataBase;
USE TestDataBase;
source /home/ipanda/test.sql;   #可以直接将文件放到 MySQL 命令行界面上,这样会直接显示文件的路径

2.SELECT

SHOW DATABASES;  #显示所有的数据库
SHOW TABLES;   #显示当前选择的数据库的可用表的列表
SHOW COLUMNS FROM customers; #customers是可用表的其中一个

SELECT cust_id,cust_name FROM customers; #从表中检索某几列,最后一列之后不能加逗号
SELECT * FROM customers;  #检索表中的所有列
#若cust_id中存在多个重复的值,则对于重复的值,仅输出一个
SELECT DISTINCT cust_id FROM customers;  
#带一个值的LIMIT是从第一行(行号为0)开始,给出的数为返回的行数。
#带两个值的LIMIT指定从行号为第一个值的位置开始,返回的行数为第二个值。
SELECT cust_id FROM customers LIMIT 2;
SELECT cust_id FROM customers LIMIT 2,2;
SELECT customers.cust_id FROM TestDataBase.customers;
#升序排序 ASC,默认顺序即为升序排序
#按照字母顺序对 cust_address 进行排序,而后按照排序结果,再对cust_id进行排序
SELECT cust_id FROM customers ORDER BY cust_address;
#先按照cust_name的排序结果进行排序,若cust_name有相同的值,则对于相同的cust_name值所对应的cust_id、cust_city中的值,再按照cust_address的排序结果进行排序
SELECT cust_id,cust_city FROM customers ORDER BY cust_name,cust_address;

#降序排序 DESC,只应用到直接位于其前面的列名
#不同列名之间要以逗号分隔,DESC 要位于逗号之前
SELECT cust_id,cust_city FROM customers ORDER BY cust_address DESC,cust_name;

3.条件过滤 WHERE

若某一行的某一列没有相对应的值时,称其为具有NULL值。则对于 4), 该行不会被返回。
因为 NULL 代表未知,数据库不知道 NULL 是否与指定的搜索条件相匹配。

#条件过滤
SELECT cust_id,cust_name FROM customers 
1) WHERE cust_id=10001 AND cust_name="Coyote Inc."; #单引号、双引号都可以用于引用字符串
2) WHERE cust_id BETWEEN 10001 AND 10005;
3) WHERE cust_email IS NULL;
4) WHERE cust_email != 'email';
5) WHERE cust_id=10001 OR cust_id <> 100000;
6) WHERE cust_id IN (10001,10005); 
WHERE cust_id=10001 OR cust_id=10005; #两条语句功能相同,但是前者效率更高
7) WHERE cust_id NOT IN (10001,10005);

3.1 通配符

#通配符
# % 代表任意字符出现任意次数(包含0次),不能匹配 NULL 值
1) WHERE cust_id LIKE '1%1'; #可匹配以'1'开头、以'1'结尾的任意值,例如 ‘10001’
2) WHERE cust_id LIKE '1%';  #可匹配以'1'开头的任意值
3) WHERE cust_id LIKE '%1';  #可匹配以'1'结尾的任意值
4) WHERE cust_id LIKE '%';   #可匹配任意值,NULL 值除外
# _ 仅能匹配一个字符,即使对于重复字符,也仅能匹配其中一个
WHERE cust_id LIKE '1000_';

在这里插入图片描述

3.2 正则表达式

#正则表达式
SELECT cust_id FROM customers 
1)WHERE cust_id LIKE '000'; #列值必须与 '000' 完全匹配
2)WHERE cust_id REGEXP '000'; #列值只需含有 '000' 即可
# '01|02'与'01 | 02'不同
3)WHERE cust_id REGEXP '01|02'; #匹配任意一个条件即可
4)WHERE cust_id REGEXP '000[135]'; #'0001|0003|0005'
5)WHERE cust_id REGEXP '000[^135]'; #'0001|0003|0005'之外的值
6)WHERE cust_id REGEXP '000[2-4]'; #'0002|0003|0004',即'0002'至'0004'
#'\\'转义特殊字符,MySQL解释其中一个反斜杠,正则表达式库解释另一个反斜杠
7)WHERE cust_name REGEXP '\\.'; 
8)WHERE cust_name REGEXP 'lac[:alpha:]'; #匹配任意字母
9)WHERE cust_id REGEXP '[[:digit:]]{5,}'; #匹配五个及以上的连续的数字字符
10)WHERE cust_id REGEXP '^2|$5'; #以'2'开头或者以'5'结尾

预定义的字符集,称为字符类
在这里插入图片描述
重复元字符
在这里插入图片描述
定位元字符
在这里插入图片描述

4. 拼接字段、计算字段

# 拼接字段、别名
# RTrim 删除右侧多余空格
SELECT Concat(RTrim(vend_name),' (',RTrim(vend_country)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值