MySQL中常用SQL语句的编写

之前一直使用的django的orm模型,最近想学习下原生sql语句的编写。以后工作中可能不使用django,为了更好的工作和提高自己的知识全面点,记录下常用的sql语句编写。

一、创建、删除、选择数据库

1. 如果数据库不存在就创建

CREATE DATABASE IF NOT EXISTS blog CHARACTER SET utf8 COLLATE utf8_general_ci;

2. 如果数据库存在就删除

DROP DATABASE IF EXISTS blog;

3. 切换到我们选择的数据库,并查看库中所有表

USE blog; SHOW TABLES;

4. 数据库授权用户创建

grant all on blog.* to blog@'%' identified by '123456';

5. 查看数据库结构

SHOW DATABASES LIKE 'blog%';

6. 查询授权用户

SELECT DISTINCT CONCAT('User: ''',user,'''@''',host,''';') AS query FROM MySQL.user;

7. 修改数据库用户密码

USE mysql; UPDATE USER SET PASSWORD = PASSWORD ("new-password") WHERE USER = "root"; FLUSH PRIVILEGES; 二、MySQL数据类型介绍

MySQL 数据类型

MySQL中定义数据字段的类型对你数据库的优化是非常重要的。
MySQL支持多种类型,大致可以分为三类:数值、日期/时间和字符串(字符)类型。

数值类型

MySQL支持所有标准SQL数值数据类型。
这些类型包括严格数值数据类型(INTEGER、SMALLINT、DECIMAL和NUMERIC),以及近似数值数据类型(FLOAT、REAL和DOUBLE PRECISION)。
关键字INT是INTEGER的同义词,关键字DEC是DECIMAL的同义词。
BIT数据类型保存位字段值,并且支持MyISAM、MEMORY、InnoDB和BDB表。
作为SQL标准的扩展,MySQL也支持整数类型TINYINT、MEDIUMINT和BIGINT。下面的表显示了需要的每个整数类型的存储和范围。

类型大小范围(有符号)范围(无符号)用途
TINYINT   1 字节   (-128,127)   (0,255)   小整数值  
SMALLINT   2 字节   (-32 768,32 767)   (0,65 535)   大整数值  
MEDIUMINT   3 字节   (-8 388 608,8 388 607)   (0,16 777 215)   大整数值  
INT或INTEGER   4 字节   (-2 147 483 648,2 147 483 647)   (0,4 294 967 295)   大整数值  
BIGINT   8 字节   (-9 233 372 036 854 775 808,9 223 372 036 854 775 807)   (0,18 446 744 073 709 551 615)   极大整数值  
FLOAT   4 字节   (-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 字节   (-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的值   小数值  

日期和时间类型

表示时间值的日期和时间类型为DATETIME、DATE、TIMESTAMP、TIME和YEAR。
每个时间类型有一个有效值范围和一个"零"值,当指定不合法的MySQL不能表示的值时使用"零"值。

类型大小(字节)范围格式用途
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/2037 年某时   YYYYMMDD HHMMSS   混合日期和时间值,时间戳  

字符串类型

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/ceab30ba7232b5b1286383285c58cd83.html