1、创建数据库命令
CREATE DATABASE 或 CREATE SCHEMA
语法格式:
CREATE {DATABASE|SCHEMA}[IF NOT EXISTS] 数据库名称
[[DEFAULT] CHARACTER SET 字符集名
|[DEFAULT] COLLATE 校对规则名]
[] 内的为可选项 { | } 内的为二选一 MySQL 不区分大小写IF NOT EXISTS :在创建数据库前进行判断,只有该数据库目前尚不存在,才执行CREATE DATABASE 操作;使用此命令,可以避免出现数据库存在在建出现的错误
DEFAULT :指定默认值
CHARACTER SET : 指定数据库字符集(Charset),其后的字符集名要用MySQL支持的具体的字符集名称代替,如:gb2312
COLLATE : 指定字符集的校对规则,其后的校对规则名要用MySQL支持的具体校对规则名称代替,如:gb2312_chinese_ci
创建数据库
CREATE DATABASE 数据库名;
2、查看数据库内容
show databases; 数据库内有多个表格,所以查看时使用 databases
3、查看数据库所支持的字符集和校对规则
show character set;
创建一个名为 FFF 的数据库,采用字符集gb2312和校对规则gb2312_chinese_ci;
create database fff
default character set gb2312
collate gb2312_chinese_ci;
如果指定了 CHARACTER X 和 COLLATE Y,那么采用字符集X和校对规则Y
如果指定了CHARACTER SET X 而没有指定COLLAET Y 那么采用CHARACTER SET X 和 CHARACTER X的默认校对规则
如果没有指定,那么采用服务器字符集和服务器校对规则
4、打开数据库
USE 数据库名 对数据库操作时,需要先进入要修改的数据库内
5、修改数据库
ALTER {DATABASE | SCHEMA}[数据库名]
[[DEFAULT]CHARACTER SET 字符集名
|[DEFAULT] COLLATE 校对规则名]
6、删除数据库
DROP DATABASE [IF EXISTS] 数据库名
语法说明:
数据库名:要删除的数据库名称
IF EXISTS:使用 IF EXISTS子句可以避免删除不存在的数据库时出现报错
7、创建表
语法格式:
CREATE TABLE [IF NOT EXISTS] 表名
(列名 数据类型 [NOT NULL|NULL][DEFAULT 列默认值]……)
ENGINE=存储引擎
语法说明:
IF NOT EXISTS :该表目前上不存在时才执行CERATE TABLE 操作。避免出现表已存在无法在建的错误
表名:要创建的表名
列名:表中列的名称,长度不超64字符,而且在表中是唯一的
数据类型:列的数据类型,有的数据类型需要知名长度n,并用括号括起
NOT NULL |NULL:指定该列是否为空。如果不指定,则默认为NULL
DEFAULT 列默认值:为列指定默认值,默认值必须为一个常数。其中,blob和text列不能被赋予默认值
ENGINE = 存储引擎:MYSQL 支持数个存储引擎作为对不同表的类型的处理器,使用时要用具体的存储引擎,如:ENGINE=InnoDB
8、修改表
语法格式:
ALTER [IGNORE] TABLE 表名
ADD [COLUMN] 列名 [FIRST|AFTER 列名] 添加列
|ALTER [COLUMN] 列名 {SET DEFAULT 默认值|DROP DEFAULT} 修改默认值
|CHANGE [COLUMN] 旧列名 列定义 对列重命名
[FIRST|AFTER 列名]
|MODIFY [COLUMN] 列定义 [FIRST | AFTER 列名] 修改列类型
|DROP [COLUMN] 列名 删除列
|RENAME [TO] 新表名 重命名该表
语法说明:
IGNORE:MYSQL相对于标准SQL的扩展。若修改后的新表中存在重复关键字,如果没有指定IGNORE,则当重复关键字错误发生时操作失败;如果制定了IGNORE,则对于有重复关键字的行只使用第1行,其他有冲突的行被删除。
列定义:定义列的数据类型的和属性,具体内容在CREATE TABLE 的语法中以作说明
9、添加列
ALTER TABLE 表名 ADD COLUMN 新列名 列表类型 是否为空;
ADD [COLUMN] :向表中增加新列
FIRST | AFTER :列名,表示在最前列或某列后添加,不指定则添加到最后
ALTER [COLUMN]:修改表中指定列的默认
10、修改列名和列的数据类型
把A列名 变换为B列名
ALTER TABLE 表名 CHANGE A B INTEGER;
CHANGE [COLUMN]:修改列的名称。重命名时给定旧列名和新列名及数据类型
11、修改指定列的数据类型
ALTER TABLE 表名 MODIFY 列名 数据类型 是否允许为空(如:NOT NULL);
ALTER TABLE 表名 MODIFY 列名 数据类型 是否允许为空(如:NOT NULL);注:若表中该列所存的数据类型与将要修改的列的类型冲突,则发生错误
12、删除列或约束
USE 数据库名
ALTER TABLE 表名 DROP COLUMN 列名;
DROP :从表中删除或约束列
13、修改表名
方法一 ALTER TABLE 表名 RENAME TO 新表名;
方法二 RENAME TABLE 旧表名 TO 新表名;
RENAME:修改表名
14、复制表
CREATE TABLE [IF NOT EXISTS] 新表名 [LIKE 参照表名] | [AS (SELECT 语句)]
语法说明:
LIKE :使用LIKE 关键字创建一个与参照表名相同的结构的新表,列名、数据类型、空指定和索引也将复制,但是表的内容不会复制,因此创建的新表名是一个空表。
SELECT:语句表示一个表达式,列如:可以是一条SELECT 语句
AS:使用AS关键字可以复制表的内容,。但索引和完整性约束是不会复制的。
15、删除表
DROP TABLE [IF EXISTS] 表名1 [表名2]……
语法说明:
表名:要删除的表名;
IF EXISTS :避免删除的表不存在时出现错误信息
16、显示数据表信息
1、显示表文件名
SHOW TABLES;
2、显示数据结构
{DESCRIBE | DESC} 表名 [列名 | 通配符];
语法说明:
DESCRIBE | DESC :DESC是DESCRIBE的简写。二者用法相同
列名 | 通配符 :可以是一个列名称,或一个包含%和_的通配符的 字符串,用于获的对于带有与字符串相匹配的名称的各列的输出。没有必要在引号中包含字符串,除非其中包含空格或其他特殊字符。
3、显示表中的某列数据
DESC 表名 列名;