初步了解mysql

数据库操作

创建数据库:

create database [name];

例子:

CREATE DATABASE du;

删除数据库:

drop database [name];

例子:

drop DATABASE du;

选择数据库:

 use [name];

例子:

use du;

数据表

创建数据表:

CREATE TABLE  [name]();  

例子:

CREATE TABLE  pet(name VARCHAR(20), sex CHAR(1),brith date);  

删除数据表:

DROP TABLE[name];

例子:

DROP TABLE  pet;  

查看数据表信息:

show table [name];

例子:

show table pet;

仔细查看某一个数据表:

DESCRIBE [NAME];

数据

插入数据

以文件的形式:

LOAD DATA LOCAL INFILE '/path/pet.txt' INTO TABLE pet; 

如果是win 需要在; 前加上INES TERMINATED BY '\r\n'; 如果是macos 则是LINES TERMINATED BY '\r'.)

手动输入:

INSERT INTO [table_name]  VALUES (value...value);

查看数据

select * from [table name];//查看全部的数据

WHERE(条件)

SELECT * FROM [table name] WHERE key=value;

WHERE BINARY 可以区分大小写

条件可跟ANDOR搭配使用

LIKE(查找相似)

SELECT * FROM [table_name] WHERE key_value LIKE value; 	
  1. 查找开头为a的写法:
SELECT * FROM [table_name] WHERE [属性] LIKE 'a%';
  1. 查找中间有a的写法
SELECT * FROM [table_name] WHERE [属性] LIKE '%a%';
  1. 查找最后又a的写法
  SELECT * FROM [table_name] WHERE [属性] LIKE '%a';
  1. 查找固定字符个数_*number
  SELECT * FROM [table_name] WHERE [属性] LIKE '___';  // _*3 

查找刚好为3字符的数据

REGEXP_LIKE(); (模式匹配)

就是用正则表达式:

SELECT * FROM pet WHERE REGEXP_LIKE(name, 'w');
模式 描述
^ 匹配输入字符串的开始位置。如果设置了 RegExp 对象的 Multiline 属性,^ 也匹配 '\n' 或 '\r' 之后的位置。
$ 匹配输入字符串的结束位置。如果设置了RegExp 对象的 Multiline 属性,$ 也匹配 '\n' 或 '\r' 之前的位置。
. 匹配除 "\n" 之外的任何单个字符。要匹配包括 '\n' 在内的任何字符,请使用像 '[.\n]' 的模式。
[...] 字符集合。匹配所包含的任意一个字符。例如, '[abc]' 可以匹配 "plain" 中的 'a'。
[^...] 负值字符集合。匹配未包含的任意字符。例如, '[^abc]' 可以匹配 "plain" 中的'p'。
p1|p2|p3 匹配 p1 或 p2 或 p3。例如,'z|food' 能匹配 "z" 或 "food"。'(z|f)ood' 则匹配 "zood" 或 "food"。
* 匹配前面的子表达式零次或多次。例如,zo* 能匹配 "z" 以及 "zoo"。* 等价于{0,}。
+ 匹配前面的子表达式一次或多次。例如,'zo+' 能匹配 "zo" 以及 "zoo",但不能匹配 "z"。+ 等价于 {1,}。
n 是一个非负整数。匹配确定的 n 次。例如,'o{2}' 不能匹配 "Bob" 中的 'o',但是能匹配 "food" 中的两个 o。
m 和 n 均为非负整数,其中n <= m。最少匹配 n 次且最多匹配 m 次。

UNION(跟set()很像 )

SELECT [属性: name] FROM [table_name] UNION SELECT [属性: name] FROM [table_name2] 

emmm 就两个表相加 取不同的植

UNION ALL

两个表相加总和

数据排序

SELECT [属性] FROM [table_name] ORDER BY [属性];

如果要区分大小写的话, ORDER BY BINARY

如果使用的是字符串(汉字) 采用UTF-8, ORDER BY CONVERT(runoob_title using gbk); 需要进行转化

修改数据

UPDATE [table_name] SET KEY=VALUE;

删除数据

DELETE FROM [table_name] (WHERE VAlUE);

常用函数

CURDATE() 获取当前日期

TIMESTAMPDIFF([month,day,year...], 开始的时间, 结束的时间) as [参数: 名字];

MONTH(), YEAR(), DAY(), 分别获取月份,年份, 第几天

MOD() 取模;

count(*); 计算总数

问题

使用文件导入到的问题

LOAD DATA LOCAL INFILE 'C:\\Users\\dyhcu\\Desktop\\event.txt' INTO TABLE pet
       LINES TERMINATED BY '\r\n';

** Loading local data is disabled; this must be enabled on both the client and server sides**

1 登录mysql时: mysql --local-infile=1 -uroot -p

2 设置客户端加载功能: set global local_infile = 1;

类型

MySQL 数据类型 引用与Runnoob.com

数字

类型 字节 范围 无符号范围 用途
TINYINT 1 Bytes (-128,127) (0,255) 小整数值
SMALLINT 2 Bytes (-32 768,32 767) (0,65 535) 大整数值
MEDIUMINT 3 Bytes (-8 388 608,8 388 607) (0,16 777 215) 大整数值
INT或INTEGER 4 Bytes (-2 147 483 648,2 147 483 647) (0,4 294 967 295) 大整数值
BIGINT 8 Bytes (-9,223,372,036,854,775,808,9 223 372 036 854 775 807) (0,18 446 744 073 709 551 615) 极大整数值
FLOAT 4 Bytes (-3.402 823 466 E+38,-1.175 494 351 E-38),0,(1.175 494 351 E-38,3.402 823 466 351 E+38) 0,(1.175 494 351 E-38,3.402 823 466 E+38) 单精度 浮点数值
DOUBLE 8 Bytes (-1.797 693 134 862 315 7 E+308,-2.225 073 858 507 201 4 E-308),0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308) 0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308) 双精度 浮点数值
DECIMAL 对DECIMAL(M,D) ,如果M>D,为M+2否则为D+2 依赖于M和D的值 依赖于M和D的值 小数值

日期类型

类型 大小 ( bytes) 范围 格式 用途
DATE 3 1000-01-01/9999-12-31 YYYY-MM-DD 日期值
TIME 3 '-838:59:59'/'838:59:59' HH:MM:SS 时间值或持续时间
YEAR 1 1901/2155 YYYY 年份值
DATETIME 8 1000-01-01 00:00:00/9999-12-31 23:59:59 YYYY-MM-DD HH:MM:SS 混合日期和时间值
TIMESTAMP 4 1970-01-01 00:00:00/2038结束时间是第 2147483647 秒,北京时间 2038-1-19 11:14:07,格林尼治时间 2038年1月19日 凌晨 03:14:07 YYYYMMDD HHMMSS 混合日期和时间值,时间戳

字符串类型

类型 大小 用途
CHAR 0-255 bytes 定长字符串
VARCHAR 0-65535 bytes 变长字符串
TINYBLOB 0-255 bytes 不超过 255 个字符的二进制字符串
TINYTEXT 0-255 bytes 短文本字符串
BLOB 0-65 535 bytes 二进制形式的长文本数据
TEXT 0-65 535 bytes 长文本数据
MEDIUMBLOB 0-16 777 215 bytes 二进制形式的中等长度文本数据
MEDIUMTEXT 0-16 777 215 bytes 中等长度文本数据
LONGBLOB 0-4 294 967 295 bytes 二进制形式的极大文本数据
LONGTEXT 0-4 294 967 295 bytes 极大文本数据

操作符

操作符 描述 实例
= 等号,检测两个值是否相等,如果相等返回true (A = B) 返回false。
<>, != 不等于,检测两个值是否相等,如果不相等返回true (A != B) 返回 true。
> 大于号,检测左边的值是否大于右边的值, 如果左边的值大于右边的值返回true (A > B) 返回false。
< 小于号,检测左边的值是否小于右边的值, 如果左边的值小于右边的值返回true (A < B) 返回 true。
>= 大于等于号,检测左边的值是否大于或等于右边的值, 如果左边的值大于或等于右边的值返回true (A >= B) 返回false。
<= 小于等于号,检测左边的值是否小于或等于右边的值, 如果左边的值小于或等于右边的值返回true (A <= B) 返回 true。
posted @ 2022-01-14 19:53    阅读(57)  评论(0)    收藏  举报