MySQL笔记

天大地大妈咪最大 提交于 2019-11-27 00:37:48

SQL分类:

DDL:数据定义语言,这些语句定义了不同的数据段、数据库、表、列、索引等数据库对象的定义,常用的语句关键字包括create、drop、alter、等

DML:数据操控语句,用于添加、删除、更新和查询数据库语句,并检查数据完整性,常用的语句关键字主要包括insert、delete、update和select。

DCL:数据控制语句,用于控制不同数据段直接的许可和访问级别的语句,这些语句定义了数据库、表、字段、用户的访问权限和安全级别。主要的语句关键字包括grant、revoke。

登录数据库:mysql -uroot -hlocalhost -p
创建数据库:create database test1
查看数据库:show databases
选择数据库:use dbname
查看数据库中的表:show tables
删除数据库:drop database dbname   
删除表,定义和数据:drop table tablename
删除表全部数据:Truncate table tablename
删除表部分数据,带where:Delete From tablename Where 列名称=值查看表的定义:show create table emp \G

修改表:先删除再创建

修改表类型:alter table tablename modify column 字段定义 [first | after 字段名]
增加表字段:alter table tablename add column 字段定义 [first | after 字段名]
删除表字段:alter table tablename drop column 字段名
字段改名:alter table tablename change column 旧字段名 字段定义 [first | after 字段名]
修改字段排列顺序:[first | after 字段名]这个选项可以用来修改字段在表中的位置,add增加的新字段是加在表的最后位置,而modify和change默认不改变位置。
表改名:alter table tablename rename 新表名

DML:having可以对聚合后的结果进行条件的过滤,可用聚合函数,而where是在聚合前就对记录进行过滤,如果逻辑允许,我们尽可能用where先过滤记录。

插入记录:insert into tablename (字段名1,字段名2,....) values (value1,value2,...),(value1,value2,...),(value1,value2,...)....;
更新记录:update tablename set field1 = value1,field2 = value2 ... [where ...]
删除记录:delete from tablename [where ...]


select [distinct]
from tablename 
[where ] 
[group by]
[having ]
[order by [ASC | DESC]]
[limit offset_start(记录的起始偏移量),row_count(表示的行数)]

DCL:

创建一个数据库用户z1,具有对sakila数据库中所有表的select、insert权限
grant select,insert on sakila.* to 'z1'@'localhost' identified by '123';
将z1的权限变更,收回insert,只能对数据进行insert操作
revoke insert on sakila.* from 'z1'@'localhost';

 

类型大小范围(有符号)范围(无符号)用途
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,223,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不能表示的值时使用"零"值。

TIMESTAMP类型有专有的自动更新特性,将在后面描述。

类型 大小
(字节)
范围 格式 用途
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、VARCHAR、BINARY、VARBINARY、BLOB、TEXT、ENUM和SET。该节描述了这些类型如何工作以及如何在查询中使用这些类型。

类型 大小 用途
CHAR 0-255字节 定长字符串
VARCHAR 0-65535 字节 变长字符串
TINYBLOB 0-255字节 不超过 255 个字符的二进制字符串
TINYTEXT 0-255字节 短文本字符串
BLOB 0-65 535字节 二进制形式的长文本数据
TEXT 0-65 535字节 长文本数据
MEDIUMBLOB 0-16 777 215字节 二进制形式的中等长度文本数据
MEDIUMTEXT 0-16 777 215字节 中等长度文本数据
LONGBLOB 0-4 294 967 295字节 二进制形式的极大文本数据
LONGTEXT 0-4 294 967 295字节 极大文本数据
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!