mysql 支持的数据类型

  1. 数字:TINYINT,SMALLINT,MEDIUMINT,INT,BIGINT,BIT
  2. 浮点数:DECIMAL,FLOAT,DOUBLE
  3. 字符串:CHAR,VARCHAR,BINARY,VARBINARY,BLOB,TEXT,ENUM,SET
  4. Spatial
  5. JSON

mysql 创建删除等

一些命令

exit 退出连接
\c 撤销
USE +数据库名; 连接到数据库
SELECT DATABASE(); 查修连接到哪一个数据库
SHOW DATABASES; 显示有权限的数据库
SHOW ENGINES\G 显示所有引擎
SHOW CREATE TABLE +表名\G 显示表结构
CREATE TABLE new_table LIKE table 克隆表结构

连接mysq

mysql -h localhost -P 3306 -u root -p
-h 地址
-P 端口
-u 用户名
-p 密码(建议不在命令行中输入)

创建数据库

CREATE DATABASE test
CREATE DATABASE test.database (如名称中包含特殊字符时,用xx包裹)

创建表

CREATE TABLE IF NOT EXISTS test.table(
id int unsigned AUTO_INCREMENT PRIMARY KEY,
first_name varchar(20),
last_name varchar(20),
country varchar(20)
)ENGINE=innoDB;
每行解释
1 如果改数据库中不存在改表,则在数据库test中创建table表(如果已经连接了数据库test则只需要table即可)
2 id无符号整数 自动生成递增序列作为主键
3 字符串
6 存储引擎 (包括innoDB,MyISAM,FEDERATED,BLACKHOLE,CSV,MEMORY)InnoDB是唯一事务引擎,也是默认

插入行

INSERT IGNORE INTO company.customers(id,first_name,last_name,country)
VALUES (1,'F','HC','CN');
IGNORE 如果已经存在,则新数据被忽视,INSERT仍然执行成功,反之产生错误信息。

REPLACE INTO customers VALUES (1,'F','HC',CB);
通过主键或唯一键判断是否存在,如果存在则删除原有,并重新插入。不存在则直接插入

INSERT IGNORE INTO company.customers(id,first_name,last_name,country)
VALUES (1,'F','HC','CN') ON DUPLICATE KEY UPDATE first_name=test;
ON DUPLICATE KEY UPDATE(mysql独有,有则插入无则执行更新)

更新行

UPDATE customers SET first_name='Rajiv',country='UK' WHERE id=4;
更新customers,设置id=4的行 first_name与country

删除行

DELETE FROM customers WHERE id=4 ADN first_name='test';
删除行

TRUNCATING TABLE删除所有行

SQL

SELECT

SELECT DISTINCT

WHERE

AND & OR

ORDER BY

INSERT INTO

UPDATE

DELETE

LIMIT

LIKE

RLIKE(REGEXP)

IN

BETWEEN

AS

INNER JOIN

LEFT JOIN

RIGHT JOIN

UNION

UNION ALL

INSERT INTO SELECT

GROUP BY

HAVING

EXISTS

函数

AVG()

COUNT()

FIRST()

LAST()

MAX()

MIN()

SUM()

UNCASE()

LCASE()

MID()

LEN()

ROUND()

NOW()

FORMAT()