1、Mysql 的基础命令(不区分大小写)
1) 显示当前存在的数据库
show databases;
2) 选择你所需要操作的数据库
use beegodb;
3) 查看当前数据库有哪些表
show tables;
4) 查看一张表的所有内容
select * from user;
5) 数据库设置中文编码
set names utf8;
6) 创建一个数据库
create database book;
7) 在数据库里创建一张表
create table users( username varchar(20), sex int(1), status int(1) );
8) 显示表的结构
describe users;
9) 给表插入一条数据
insert into users(username,sex,status) values ("itying",1,1);
10) 根据条件筛选指定的数据
SELECT * FROM users WHERE username = 'itying';
11) 修改指定的数据
UPDATE users SET status = 10 WHERE username='itying';
12) 删除指定的数据
DELETE FROM users WHERE username='php';
13) 按指定的数据排序
SELECT * FROM users ORDER BY status DESC; //按照 status 倒叙排序
14) 统计数量
select count(1) from nav
15) Limit
select id,name from nav limit 2; // 只要2条
select id,name from nav limit 2,2; // 跳过2条,查两条
16) 删除指定的表
DROP TABLE test;
15) 删除指定的数据库
DROP DATABASE book;
2、MySQL 字段的常用数据类型
整数型:TINYINT,SMALLINT,INT,BIGINT
浮点型:FLOAT,DOUBLE,DECIMAL(M,D)
字符型:CHAR,VARCHAR
备注型:TINYTEXT,TEXT,LONGTEXT
日期型:DATETIME,DATE,TIMESTAMP(了解)
1. 整数型
TINYINT 最大长度 4
SMALLINT 最大长度 6
MEDIUMINT 最大长度 8
int 最大长度是 11 位:如果在建表时不指定字段 int 类型的长度时,系统则默认生成长度为 11 的字段。11 也是 int 类型的最大长度,其中第一位表示符号+或者-,后面十位表示数字
BIGINT 最大长度 20: 注意:int(M) 在 integer 数据类型中,M 表示最大显示宽度。在 int(M) 中,M 的值跟 int(M) 所占多少存储空间并无任何关系。和数字位数也无关系 int(3)、int(4)、int(8) 在磁盘上都是 占用 4 btyes 的存储空间。
int(11),tinyint(1),bigint(20),后面的数字,不代表占用空间容量。而代表最小显示位数。 这个东西基本没有意义,除非你对字段指定 zerofill。
所以我们在设计 mysql 数据库时,建表时,mysql 会自动分配长度:int(11)、tinyint(4)、 smallint(6)、mediumint(9)、bigint(20)。
所以,就用这些默认的显示长度就可以了。不用再去自己填长度,比如搞个 int(10)、tinyint(1) 之类的,基本没用。而且导致表的字段类型多样化。
2. 字符型
FLOAT 和 DOUBLE 在不指定精度时,默认会按照实际的精度(由计算机硬件和操作系统决 定),DECIMAL 如果不指定精度,默认为(10,0)。
浮点数相对于定点数的优点是在长度一定的情况下,浮点数能够表示更大的范围;缺点是会 引起精度问题。
3. 字符串
varchar 使用额外的 1-2 字节内来存储值长度,列长度<=255 使用 1 字节保存,其它情况使 用 2 字节保存。例如 varchar(10)会占用 11 字节存储空容间,varchar(500)会占用 502 字节存 储空间。
varchar 最大长度可以是多少?
根据字符集,字符类型若为 gbk,每个汉子占用 2 个字节,最大长度不能超过 65535/2 =32766; 字符类型若为 utf8,每个汉子最多占用 3 个字节,最大长度不能超过 65535/3 =21845,若 超过这个限制,则会自动将 varchar 类型转为 mediumtext 或 longtext,
4. 备注型
5. 日期
实际项目中我们存储日期用的都是 int 类型的时间戳。
3、Mysql 查询语句详解