创建数据库:
CREATE DATABASE --DATABASE 或者 SCHEMA数据库集合
IF NOT EXISTS db_name
CHARACTER SET utf8
COLLATE utf8_general_ci
删除数据库 :
DROP DATABASE db_name;
创建数据表:
CREATE TABLE IF NOTEXISTS tb_name(
id
int(
5)
UNSIGNED
--无符号
ZEROFILL
--填满0
NOT NULL --不允许为空
AUTO_INCREMENT
--主键自动增长
COMMENT
'注释',
PRIMARY KEY (field1, field2),
--定义主键
INDEX key_name USING BTREE (field3)
--定义索引
--UNIQUE INDEX | FULLTEXT INDEX 唯一 与 全文
--BTREE | HASH 索引方式
--定义外键
CONSTRAINT key_name
FOREIGN KEY (field1)
REFERENCES db.tb(field2)
ON DELETE SET NULL --删除时的事件
ON UPDATE RESTRICT --更新时的事件
)ENGINE
=MyISAM
--引擎
DEFAULT CHARACTER SET=utf8 COLLATE
=utf8_general_ci
--字符编码 与 校对编码
COMMENT
='表注释'
AUTO_INCREMENT
=5 --默认自动增长量为1
CHECKSUM
=1 --每行维持一个校验和,会使表更新变得更慢,但它更容易找出损坏的表
ROW_FORMAT
=DEFAULT --行格式
AVG_ROW_LENGTH
=77 --表的平均行长度近似值,你只需为有变长记录的表设置。
MAX_ROWS
=9 --表中存储的最大行数9
MIN_ROWS
=3 -- 表中存储的最小行数3
PACK_KEYS
=1 --封装键
DELAY_KEY_WRITE
=1 --推迟关键表的更新直到表被关闭
DATA DIRECTORY
='' --数据目录
INDEX DIRECTORY
='' --索引目录
;
清空数据表两种方法:
TRUNCATE TABLE db.tb;
DELETE FROM db.tb;
删除数据表:
DROP db.tb;
另外,还可以这样新建表:
CREATE TABLE IF NOTEXISTS tb_new(
SELECT * FROM db.table1);
--复制另一张表的内容,填充到新表,若新表重名,则省略创建过程,直接插入数据。
CREATE TABLE IF NOTEXISTS tb_new(
LIKE db.table1);
--复制另一表的结构。
修改表结构:
ALTER TABLE db.table1
ADD COLUMN new_field
int(
5)
NOT NULL AFTER field2;
--添加字段
ALTER TABLE db.table1
CHANGE
COLUMN field_name new_field_name
varchar(
100)
CHARACTER SET utf8 COLLATE utf8_general_ci
NOT NULL AFTER `id`;
--修改字段
ALTER TABLE db.table1
DROP COLUMN field1;
--删除字段
ALTER TABLE db.table1
ADD UNIQUE INDEX index_name USING BTREE (field1);
--添加索引
ALTER TABLE db.table1
DROP PRIMARY KEY,
--删除主键
ADD PRIMARY KEY (id);
--修改主键
ALTER TABLE db.table1
DROP INDEX index_name,
--删除索引
ADD FULLTEXT
INDEX index_name USING BTREE (field1);
--添加索引
插入语句:
INSERT INTO table1
VALUES (value1, value2, valueAll);
INSERT INTO table1(field1, field2)
VALUES (value1, value2);
更新语句:
UPDATE table1
SET field1
='value1', field2
='value2' WHERE field3
='value3';
删除语句:
DELETE FROM table1
WHERE field1
='value1';
SELECT 语句:
SELECT DISTINCT field1, field2
FROM table1;
DISTINCT --值不重复
SELECT * FROM table1
WHERE field1
='value';
=、
<>、
>、
<、
>=、
<= --这些个,不解释
BETWEEN 'A' AND 'C' --限定范围,即:徘徊于牛A与牛C之间。
IN(
'value1',
'value2',
'value3')
--限定值
LIKE '