欢迎投稿

今日深度:

MariaDB学习笔记,

MariaDB学习笔记,


数据类型: 数字,日期和时间以及字符串值。
数字数据类型
    TINYINT - 有符号-128到127,无符号0到255。
    BOOLEAN - 值0与“false”相关联,值1与“true”相关联。
    SMALLINT - 有符号-32768到32768,无符号0到65535。
    MEDIUMINT - 有符号-8388608到8388607,无符号0到16777215。
    INT/INTEGER - 无符号0~4294967295,有符号(默认设置)-2147483648~2147483647.当列设置为ZEROFILL(无符号状态)时,其所有值都由零添加INT值中的M个数字。
    BIGINT - 此数据类型表示有符号范围9223372036854775808到9223372036854775807内的整数,无符号范围0到18446744073709551615。
    DECIMAL(M,D) - 该数据类型表示精确的定点数,M指定其数字,D指定小数后的数字。 M值不添加“ - ”或小数点。如果D设置为0,则不会出现小数或小数部分,并且该值将舍入为最接近的DECIMAL INSERT。最大允许位数为65,小数位数的最大值为30.默认值M的默认值为10,省略时D为0。
    FLOAT - 从-3.402823466E + 38至-1.175494351E-38,或从1.175494351E-38至3.402823466E + 38
    DOUBLE(也是REAL和DOUBLE PRECISION) - 从-1.7976931348623157E + 308至-2.2250738585072014E-308,或从2.2250738585072014E-308至1.7976931348623157E + 308
    BIT - 此数据类型表示位字段,M指定每个值的位数,默认值为1。通过“b'[value]'”应用,其中value表示0和1中的位值。左侧自动补全0;例如,“10”变为“0010”。
日期和时间数据类型 
    DATE - “YYYY-MM-DD”
    TIME - 表示“-838:59:59.999999”到“838:59:59.999999”的时间范围。
    DATETIME - “YYYY-MM-DD HH:MM:SS”。
    TIMESTAMP - “YYYY-MM-DD HH:MM:SS”格式的时间戳,用于详细描述数据库修改的时间,例如插入或更新。
    YEAR - 4位数格式的年份
字符串类型值
    String literals - 用引号括起来的字符序列。
    CHAR - 包含指定长度的空格的右侧带有固定长度的字符串。M表示字符的列长度,取值范围为0〜255,缺省值为1。
    VARCHAR - 此数据类型表示一个可变长度字符串,M范围(最大列长度)为0到65535。
    BINARY - 此数据类型表示二进制字节字符串,M为列长度(以字节为单位)。
    VARBINARY - 此数据类型表示可变长度的二进制字节字符串,M为列长度。
    TINYBLOB - 此数据类型表示最大长度为255(28 - 1)个字节的blob列。在存储中,每个都使用一个字节长度的前缀,表示值中的字节数量。
    BLOB - 此数据类型表示最大长度为65,535(216 - 1)个字节的blob列。在存储中,每个都使用两字节长度的前缀,表示值中的字节数量。
    MEDIUMBLOB - 此数据类型表示最大长度为16,777,215(224 - 1)个字节的blob列。在存储中,每个都使用一个三字节长度前缀,表示值中的字节数量。
    LONGBLOB - 此数据类型表示最大长度为4,294,967,295(232 - 1)个字节的blob列。在存储中,每个使用四字节长度的前缀,表示值中的字节数量。
    TINYTEXT - 此数据类型表示最大长度为255(28 - 1)个字符的文本列。在存储中,每个都使用一个字节长度的前缀,表示值中的字节数量。
    TEXT - 此数据类型表示最大长度为65,535(216 - 1)个字符的文本列。在存储中,每个都使用两字节长度的前缀,表示值中的字节数量。
    MEDIUMTEXT - 此数据类型表示最大长度为16,777,215(224 - 1)个字符的文本列。在存储中,每个都使用三字节长度前缀,表示值中的字节数量。
    LONGTEXT - 此数据类型表示最大长度为4,294,967,295或4GB(232 - 1)个字符的文本列。在存储中,每个使用四字节长度的前缀,表示值中的字节数量。
    ENUM - 此数据类型表示一个列表中只有一个值的字符串对象。
    SET - 此数据类型表示一个列表中具有零个或多个值的字符串对象,最多包含64个成员。 SET值在内部作为整数值存在。


命令行模式中的语句以分号结尾


修改密码

    mysqladmin -u root password
连接到服务器
    mysql -u root -p
创建数据库
    mysqladmin -u root -p create [DB name]
调用数据库(进入相关的命令行模式)
    use [DB name]
创建表格
    CREATE TABLE example_tb1(
        product_id INT NOT NULL AUTO_INCREMENT,
        product_name VARCHAR(100) NOT NULL,
        product_manufacturer VARCHAR(40) NOT NULL,
        subission_date DATE,
        PRIMARY KEY (product_id)
    );

列出该数据库的表格
    SHOW TABLES;
删除表格
    DROP TABLE [TB name];
插入单行数据
    INSERT INTO [TB name] (field1, filed2,...) VALUES (value1, value2, ...);
显示列信息
    SHOW COLUMNS FROM [TB name];
插入多行
    INSERT INTO [TB name] (field1, field2, ...) VALUES (value11, value12, ...), (value21, value22, ...);
使用set子句插入(例):
    INSERT INTO [TB name] SELECT * FROM [TB name2] WHERE status = "statusvalue";


MariaDB管理命令
    USE [DB name];        - 设置当前默认数据库。
    SHOW DATABASES; - 列出服务器上当前的数据库。
    SHOW TABLES;         - 列出所有非临时表。
    SHOW COLUMNS FROM [TB name];               - 提供与指定表有关的列信息。
    SHOW INDEX FROM TABLENAME [TB name]; - 提供与指定表相关的表索引信息。
    SHOW TABLE STATUS LIKE [TB name]\G;        -提供有关非临时表的信息的表,以及LIKE子句用于获取表名后显示的模式。


选择查询
    SELECT field1, field2, ... FROM [TB name1], [TB name2], ... WHERE...;
可使用如下方式指定数据来源
    [DB name].[TB name]
    [TB name].[COL name]
    [DB name].[TB name].[COL name]

选择表达式包含:
    列名;
    使用运算符和函数的表达式;
    规范"[DB name].*"以选择给定表中的所有列;
    字符"*"用于从FROM子句中指定的所有表中选择所有列。


WHERE语句:
    [command] field1, field2, ... FROM [TB name1], [TB name2], ... WHERE [CONDITION];
它是可选的, 可以指定任何条件;允许通过使用ANDOR运算符来指定多个条件;区分大小写仅适用于使用LIKE比较的语句。
WHERE的运算符: =、!=、>、<、>=、<=


更新查询
    UPDATE [TB name] SET field1=new_value1, field2=new_value2,... [WHERE ...];
删除行
    DELETE FROM [TB name] [WHERE ...];
删除数据库
    mysqladmin -u root -p drop [DB name]


LIKE子句:
    SELECT field1, field2, ... FROM [TB name1], [TB name2], ... WHERE field [NOT] LIKE condition;
LIKE子句的通配符
    "%",匹配字符数(0或更多); 
    "_",匹配单个字符。
"_"通配符只匹配其集合中的字符,这意味着当使用另一个集合时,它将忽略拉丁字符。匹配在默认情况下不区分大小写,需要对大小写敏感的附加设置


排序子句
    SELECT field1, field2, ...(or column) FROM [TB name1], [TB name2], ... ORDER BY field1, field2, ... ASC (or DESC);


数据关联语句
    SELECT [TB name1].fieldx, [TB name2].fieldy, [TB name2].fieldp, [TB name2].fieldq
    FROM [TB name1]
    INNER/LEFT/RIGHT/FULL JOIN [TB name2]
    ON [TB name1].fieldx=[TB name2].fieldp;

不同的JOIN
    INNER JOIN:如果表中有至少一个匹配,则返回行
    LEFT JOIN:即使右表中没有匹配,也从左表返回所有的行
    RIGHT JOIN:即使左表中没有匹配,也从右表返回所有的行
    FULL JOIN:只要其中一个表中存在匹配,则返回行
说明:
    连接的结果可以在逻辑上看作是由SELECT语句指定的列组成的新表。
    左连接与右连接的左右指的是以两张表中的哪一张为基准,它们都是外连接。
    外连接就好像是为非基准表添加了一行全为空值的万能行,用来与基准表中找不到匹配的行进行匹配。假设两个没有空值的表进行左连接,左表是基准表,左表的所有行都出现在结果中,右表则可能因为无法与基准表匹配而出现是空值的字段。





NULL是有效值、未知值,两个别名:UNKNOWN、\N
检测一个数据是否NULL:IS NULLIS NOT NULL<=>,最后一个当两侧的值都是NULL时返回true。
排序中,NULL具有最低值
使排序中的NULL具有比默认更高的值
    方法一:SELECT column1 FROM [TB name1] ORDER BY ISNULL(column1), column1;
    方法二:SELECT column1 FROM [TB name1] ORDER BY IF(column1 IS NULL, 0, 1), column1 DESC;

NOT NULL将根据数据类型插入默认值
两个函数
    IFNULL(express1, express2),前者NULL时,返回后者,否则返回前者;
    NULLIF(express1, express2),两者相等返回NULL,否则返回前者。


备份
逻辑备份物理备份
mysqldump
将数据转储为sql、csv、xml等格式。
1、原始数据,通过-tab选项将表转储为原始数据文件,可指定文件目标,例:
    mysqldump -u root -p --no-create-info --tab=/tmp [DB name] [TB name]
2、数据/定义export,将n个表导出到文件,例:
    mysqldump -u root -p [DB name] [TB name] > [file name]
3、传输,向另一个主机发送数据库和表,例:
    mysqldump -u root -p [DB name] | mysql -h other-host.com [DB name]
SELECT ... INTO OUTFILE输出表到一个简单的格式化文本文件:
    SELECT [something] FROM [TB name] INTO OUTFILE [path];
在SELECT...INTO OUTFILE不支持某些文件格式的情况下使用CONNECT导出数据。


备份的加载
LOAD DATA
批量加载器,例:
    LOAD DATA LOCAL INFILE '[filename]' 
    INTO TABLE [tb NAME] 
    FIELDS TERMINATED BY '[tab_sym]' 
    LINES TEREMINATED BY '[如果是回车,这里直接按回车键即可]';

可以在命令语句最后添加类似(c, b, a)的指令改变顺序
mysqlimport是LOAD DATA的包装器,在命令行处使用:
    mysqlimport -u root -p --local [DB name] source_file;
指定格式:
  mysqlimport -u root -p --local --fields-terminated-by="[tab_sym]" --line-terminated-by="[回车键]" [DB name] source_file
使用-columns选项指定列顺序:
    mysqlimport -u root -p --local --columns=c,b,a [DB name] source_file
MYSQLDUMP将转储文件加载回主机:
    mysqldump [DB name] < source_file.sql


正则表达式REGEXP
    SELECT [something] FROM [TB name] WHERE some_options REGEXP '[PATTERN]';
REGEXP匹配成功返回1,否则返回0。可使用NOT REGEXP


去除重复字段,并显示:
    SELECT DISTINCT something FROM [TB name];

www.htsjk.Com true http://www.htsjk.com/mariadb/29141.html NewsArticle MariaDB学习笔记, 数据类型 : 数字,日期和时间以及字符串值。 数字数据类型     TINYINT - 有符号-128到127,无符号0到255。     BOOLEAN - 值0与“false”相关联,值1与“true”相关联。    ...
相关文章
    暂无相关文章
评论暂时关闭