mysl 数据库 表 管理【创建 删除 修改 改名 引擎】

mysl 数据库 表 管理

MySQL中字符大小写:

1、SQL关键字及函数名不区分字符大小写;

2、数据库、表及视图名称的大小区分与否取决于低层OS及FS

3、存储过程、存储函数及事件调度器的名字不区分大小写,但触发器区分;

4、表别名区分大小写;

5、对字段中的数据,如果字段类型为Binary类型,则区分大小写;非Binary不区分大小写;

【库】:

mysql> help create database;

Name: ‘CREATE DATABASE‘

Description:

Syntax:

CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name

[create_specification] ...

create_specification:

[DEFAULT] CHARACTER SET [=] charset_name

| [DEFAULT] COLLATE [=] collation_name

CREATE DATABASE creates a database with the given name. To use this

statement, you need the CREATE privilege for the database. CREATE

SCHEMA is a synonym for CREATE DATABASE.

URL: http://dev.mysql.com/doc/refman/5.5/en/create-database.html

mysql> show databases;

+--------------------+

| Database           |

+--------------------+

| information_schema |

| mydb               |

| mysql              |

| performance_schema |

| test               |

+--------------------+

【创建数据库,如果已经存在就会报错的】

mysql> create database mydb;

ERROR 1007 (HY000): Can‘t create database ‘mydb‘; database exists

【如果存在就不创建】

CREATE {DATABASE|SCHEMA} [IF NOT EXISTS] db_name [DEFAULT] [CHARACTER SET=‘‘] [DEFAULT] [COLLATE=‘‘]

mysql> create database if not exists mydb;

Query OK, 1 row affected, 1 warning (0.03 sec)

【删除库】

mysql> help drop database;

Name: ‘DROP DATABASE‘

Description:

Syntax:

DROP {DATABASE | SCHEMA} [IF EXISTS] db_name

DROP DATABASE drops all tables in the database and deletes the

database. Be very careful with this statement! To use DROP DATABASE,

you need the DROP privilege on the database. DROP SCHEMA is a synonym

for DROP DATABASE.

*Important*: When a database is dropped, user privileges on the

database are not automatically dropped. See [HELP GRANT].

IF EXISTS is used to prevent an error from occurring if the database

does not exist.

URL: http://dev.mysql.com/doc/refman/5.5/en/drop-database.html

【删除一个不存在的数据库就会报错】

mysql> drop database haha;

ERROR 1008 (HY000): Can‘t drop database ‘haha‘; database doesn‘t exist

【如果存在就删除】

mysql> drop database if exist haha;

DROP {DATABASE | SCHEMA} [IF EXISTS] db_name

ALTER {DATABASE|SCHEMA} db_name [DEFAULT] [CHARACTER SET=‘‘] [DEFAULT] [COLLATE=‘‘]

【修改默认排序】

【表】

mysql> HELP CREATE TABLE;

【表创建】:第一种方式

CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name

临时表是创建在内存中,只有管理员权限才可以

(create_definition,...)

[table_options]

(create_definition,...):

字段的定义:字段名、类型和类型修饰符

键、约束或索引:

PRIMARY KEY, UNIQUE KEY, FOREIGN KEY, CHECK

{INDEX|KEY}

把Name 设定为主键

mysql> CREATE TABLE t3 (Name VARCHAR(50) NOT NULL PRIMARY KEY,Age TINYINT UNSIGNED NOT NULL);

把Name 和 Age 都设定为主键

mysql> CREATE TABLE t3 (Name VARCHAR(50) NOT NULL ,Age TINYINT UNSIGNED NOT NULL , PRIMARY KEY(Name,Age));

mysql> DESC t3;

+-------+---------------------+------+-----+---------+-------+

| Field | Type                | Null | Key | Default | Extra |

+-------+---------------------+------+-----+---------+-------+

| Name  | varchar(50)         | NO   | PRI | NULL    |       |

| Age   | tinyint(3) unsigned | NO   | PRI | NULL    |       |

+-------+---------------------+------+-----+---------+-------+

2 rows in set (0.15 sec)

[table_options]

ENGINE [=] engine_name

mysql> SHOW ENGINES;

AUTO_INCREMENT [=] value

[DEFAULT] CHARACTER SET [=] charset_name

[DEFAULT] COLLATE [=] collation_name

COMMENT [=] ‘string‘

DELAY_KEY_WRITE [=] {0 | 1}

ROW_FORMAT [=] {DEFAULT|DYNAMIC|FIXED|COMPRESSED|REDUNDANT|COMPACT}

TABLESPACE tablespace_name [STORAGE {DISK|MEMORY|DEFAULT}]

【存储引擎】

显示存储引擎,default 为默认存储引擎

mysql> mysql> SHOW ENGINES;

+--------------------+---------+

| Engine             | Support |

+--------------------+---------+

| MyISAM             | YES     |

| PERFORMANCE_SCHEMA | YES     |

| CSV                | YES     |

| BLACKHOLE          | YES     |

| MRG_MYISAM         | YES     |

| InnoDB             | DEFAULT |

| MEMORY             | YES     |

+--------------------+---------+

显示表状态 ,查看使用的存储引擎。 \G 纵向显示

mysql> SHOW TABLE STATUS LIKE ‘t3‘ \G

mysql> SHOW TABLE STATUS LIKE ‘t%‘ \G

*************************** 1. row ***************************

Name: t3

Engine: InnoDB

Version: 10

Row_format: Compact

Rows: 0

Avg_row_length: 0

Data_length: 16384

Max_data_length: 0

Index_length: 0

Data_free: 10485760

Auto_increment: NULL

Create_time: 2015-09-09 14:42:56

Update_time: NULL

Check_time: NULL

Collation: utf8_general_ci

Checksum: NULL

Create_options:

Comment:

1 row in set (0.00 sec)

【创建表时,指定存储引擎】

mysql> DROP TABLE t3;

Query OK, 0 rows affected (0.15 sec)

mysql> CREATE TABLE t3 (Name VARCHAR(50) NOT NULL ,Age TINYINT UNSIGNED NOT NULL , PRIMARY KEY(Name,Age)) ENGINE=‘MyISAM‘;

Query OK, 0 rows affected (0.07 sec)

mysql> SHOW TABLE STATUS LIKE ‘t3‘ \G

*************************** 1. row ***************************

Name: t3

Engine: MyISAM

Version: 10

Row_format: Dynamic

Rows: 0

Avg_row_length: 0

Data_length: 0

Max_data_length: 281474976710655

Index_length: 1024

Data_free: 0

Auto_increment: NULL

Create_time: 2015-09-09 15:00:20

Update_time: 2015-09-09 15:00:20

Check_time: NULL

Collation: utf8_general_ci

Checksum: NULL

Create_options:

Comment:

1 row in set (0.03 sec)

MyISAM表,每表有三个文件,都位于数据库目录中:

tb_name.frm: 表结构定义

tb_name.MYD: 数据文件

tb_name.MYI: 索引文件

InnoDB表,有两种存储方式

1、默认:每表有一个独立文件和一个多表共享的文件

tb_name.frm: 表结构的定义,位于数据库目录中;

ibdata#: 共享的表空间文件,默认位于数据目录(datadir指向的目录)中;

2、独立的表空间:

tb_name.frm: 每表有一个表结构文件

tb_name.ibd: 一个独有的表空间文件

查看InnoDB表存储方式

mysql> SHOW GLOBAL VARIABLES LIKE ‘innodb%‘;

| innodb_file_per_table           | OFF                    |

【设定独立的表空间】,重启mysqld就失效

mysql> SET GLOBAL innodb_file_per_table=ON;

Query OK, 0 rows affected (0.00 sec)

mysql>  \q

mysql> SHOW GLOBAL VARIABLES LIKE ‘innodb%‘;

【修改配置文件,存储引擎永久有效】

# vim /etc/my.cnf +130

【插入】innodb_file_per_table = ON

表创建:第二种方式(复制表数据)

CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name

[(create_definition,...)]

[table_options]

select_statement

mysql> USE mydb;

Database changed

mysql> SHOW TABLES;

+----------------+

| Tables_in_mydb |

+----------------+

| t1             |

| t2             |

| t3             |

+----------------+

3 rows in set (0.01 sec)

mysql> CREATE TABLE t4 SELECT * FROM t1;

Query OK, 1 row affected (0.39 sec)

Records: 1  Duplicates: 0  Warnings: 0

mysql> desc t1;

+-------+------------------+------+-----+---------+----------------+

| Field | Type             | Null | Key | Default | Extra          |

+-------+------------------+------+-----+---------+----------------+

| ID    | int(10) unsigned | NO   | PRI | NULL    | auto_increment |

| Name  | char(30)         | YES  |     | NULL    |                |

+-------+------------------+------+-----+---------+----------------+

2 rows in set (0.01 sec)

mysql> desc t4;

+-------+------------------+------+-----+---------+-------+

| Field | Type             | Null | Key | Default | Extra |

+-------+------------------+------+-----+---------+-------+

| ID    | int(10) unsigned | NO   |     | 0       |       |

| Name  | char(30)         | YES  |     | NULL    |       |

+-------+------------------+------+-----+---------+-------+

2 rows in set (0.00 sec)

有问题!数据一致,结构不一样。

表创建:第三种方式(复制表结构)

CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name

{ LIKE old_tbl_name | (LIKE old_tbl_name) }

mysql> CREATE TABLE t6 like t1;

Query OK, 0 rows affected (0.17 sec)

mysql> desc t6;

+-------+------------------+------+-----+---------+----------------+

| Field | Type             | Null | Key | Default | Extra          |

+-------+------------------+------+-----+---------+----------------+

| ID    | int(10) unsigned | NO   | PRI | NULL    | auto_increment |

| Name  | char(30)         | YES  |     | NULL    |                |

+-------+------------------+------+-----+---------+----------------+

2 rows in set (0.00 sec)

【表删除】:

DROP [TEMPORARY] TABLE [IF EXISTS]

tbl_name [, tbl_name] ...

[RESTRICT | CASCADE]

【表修改】:help alter table

ALTER TABLE tbl_name

[alter_specification [, alter_specification] ...]

【插入新字段】

修改字段定义:插入新字段

mysql> desc t6;

+-------+------------------+------+-----+---------+----------------+

| Field | Type             | Null | Key | Default | Extra          |

+-------+------------------+------+-----+---------+----------------+

| ID    | int(10) unsigned | NO   | PRI | NULL    | auto_increment |

| Name  | char(30)         | YES  |     | NULL    |                |

+-------+------------------+------+-----+---------+----------------+

2 rows in set (0.00 sec)

mysql> ALTER TABLE t6 ADD Age TINYINT UNSIGNED NOT NULL;

Query OK, 0 rows affected (0.39 sec)

Records: 0  Duplicates: 0  Warnings: 0

mysql> desc t6;

+-------+---------------------+------+-----+---------+----------------+

| Field | Type                | Null | Key | Default | Extra          |

+-------+---------------------+------+-----+---------+----------------+

| ID    | int(10) unsigned    | NO   | PRI | NULL    | auto_increment |

| Name  | char(30)            | YES  |     | NULL    |                |

| Age   | tinyint(3) unsigned | NO   |     | NULL    |                |

+-------+---------------------+------+-----+---------+----------------+

3 rows in set (0.00 sec)

插入字段指定【位置】

mysql> ALTER TABLE t6 ADD Gender ENUM(‘M‘,‘F‘) NOT NULL DEFAULT ‘M‘ FIRST; 插入在第一行

mysql> ALTER TABLE t6 ADD Gender ENUM(‘M‘,‘F‘) NOT NULL DEFAULT ‘M‘ AFTER Name ;

Query OK, 0 rows affected (0.28 sec)

Records: 0  Duplicates: 0  Warnings: 0

mysql> desc t6;

+--------+---------------------+------+-----+---------+----------------+

| Field  | Type                | Null | Key | Default | Extra          |

+--------+---------------------+------+-----+---------+----------------+

| ID     | int(10) unsigned    | NO   | PRI | NULL    | auto_increment |

| Name   | char(30)            | YES  |     | NULL    |                |

| Gender | enum(‘M‘,‘F‘)       | NO   |     | M       |                |

| Age    | tinyint(3) unsigned | NO   |     | NULL    |                |

+--------+---------------------+------+-----+---------+----------------+

4 rows in set (0.00 sec)

【删除字段】

DROP [COLUMN] col_name

mysql> ALTER TABLE t6 DROP Age;

Query OK, 0 rows affected (0.30 sec)

Records: 0  Duplicates: 0  Warnings: 0

mysql> desc t6;

+--------+------------------+------+-----+---------+----------------+

| Field  | Type             | Null | Key | Default | Extra          |

+--------+------------------+------+-----+---------+----------------+

| ID     | int(10) unsigned | NO   | PRI | NULL    | auto_increment |

| Name   | char(30)         | YES  |     | NULL    |                |

| Gender | enum(‘M‘,‘F‘)    | NO   |     | M       |                |

+--------+------------------+------+-----+---------+----------------+

3 rows in set (0.00 sec)

【修改字段位置】

mysql> ALTER TABLE t6 MODIFY Gender ENUM (‘M‘,‘F‘) NOT NULL AFTER ID;

Query OK, 0 rows affected (0.34 sec)

Records: 0  Duplicates: 0  Warnings: 0

mysql> DESC t6;

+--------+------------------+------+-----+---------+----------------+

| Field  | Type             | Null | Key | Default | Extra          |

+--------+------------------+------+-----+---------+----------------+

| ID     | int(10) unsigned | NO   | PRI | NULL    | auto_increment |

| Gender | enum(‘M‘,‘F‘)    | NO   |     | NULL    |                |

| Name   | char(30)         | YES  |     | NULL    |                |

+--------+------------------+------+-----+---------+----------------+

3 rows in set (0.00 sec)

【修改字段名称】 CHANGE

mysql> ALTER TABLE t6 CHANGE Name StuName CHAR(30) NOT NULL;

Query OK, 0 rows affected (0.26 sec)

Records: 0  Duplicates: 0  Warnings: 0

mysql> DESC t6;

+---------+------------------+------+-----+---------+----------------+

| Field   | Type             | Null | Key | Default | Extra          |

+---------+------------------+------+-----+---------+----------------+

| ID      | int(10) unsigned | NO   | PRI | NULL    | auto_increment |

| Gender  | enum(‘M‘,‘F‘)    | NO   |     | NULL    |                |

| StuName | char(30)         | NO   |     | NULL    |                |

+---------+------------------+------+-----+---------+----------------+

3 rows in set (0.00 sec)

添加单个【索引】,并未指定键

mysql> ALTER TABLE t6 ADD INDEX (StuName);

Query OK, 0 rows affected (0.23 sec)

Records: 0  Duplicates: 0  Warnings: 0

【显示索引】

mysql> mysql> show indexes from t6;

+-------+------------+----------+--------------+-------------+

| Table | Non_unique | Key_name | Seq_in_index | Column_name |

+-------+------------+----------+--------------+-------------+

| t6    |          0 | PRIMARY  |            1 | ID          |

| t6    |          1 | StuName  |            1 | StuName     |

+-------+------------+----------+--------------+-------------+

【删除索引】

mysql> alter table t6 drop index StuName;

Query OK, 0 rows affected (0.11 sec)

Records: 0  Duplicates: 0  Warnings: 0

mysql> show indexes from t6;

mysql> show indexes from t6;

+-------+------------+----------+--------------+-------------+

| Table | Non_unique | Key_name | Seq_in_index | Column_name |

+-------+------------+----------+--------------+-------------+

| t6    |          0 | PRIMARY  |            1 | ID          |

+-------+------------+----------+--------------+-------------+

CHANGE [COLUMN] old_col_name new_col_name column_definition

[FIRST|AFTER col_name]

修改字段类型及属性等

MODIFY [COLUMN] col_name column_definition

[FIRST | AFTER col_name]

修改约束、键或索引:

【表改名】:

mysql> alter table t6 rename t7;

Query OK, 0 rows affected (0.04 sec)

mysql> show tables;

+----------------+

| Tables_in_mydb |

+----------------+

| t1             |

| t2             |

| t3             |

| t4             |

| t5             |

| t7             |

+----------------+

6 rows in set (0.00 sec)

RENAME [TO|AS] new_tbl_name

mysql> RENAME TABLE old_name TO new_name;

mysql> rename table t7 to t6;

Query OK, 0 rows affected (0.04 sec)

mysql> show tables;

+----------------+

| Tables_in_mydb |

+----------------+

| t1             |

| t2             |

| t3             |

| t4             |

| t5             |

| t6             |

+----------------+

6 rows in set (0.00 sec)

指定排序标准的字段:

ORDER BY col_name [, col_name] ...

转换字符集及排序规则:

CONVERT TO CHARACTER SET charset_name [COLLATE collation_name]

表选项修改:

[table_options]

ENGINE [=] engine_name

mysql> SHOW ENGINES;

AUTO_INCREMENT [=] value

[DEFAULT] CHARACTER SET [=] charset_name

[DEFAULT] COLLATE [=] collation_name

COMMENT [=] ‘string‘

DELAY_KEY_WRITE [=] {0 | 1}

ROW_FORMAT [=] {DEFAULT|DYNAMIC|FIXED|COMPRESSED|REDUNDANT|COMPACT}

TABLESPACE tablespace_name [STORAGE {DISK|MEMORY|DEFAULT}]

时间: 2024-10-01 01:28:56

mysl 数据库 表 管理【创建 删除 修改 改名 引擎】的相关文章

c# 注册表操作,创建,删除,修改,判断节点是否存在

用.NET下托管语言C#操作注册表,主要内容包括:注册表项的创建,打开与删除.键值的创建(设置值.修改),读取和 删除.判断注册表项是否存在.判断键值是否存在. 准备工作: 1:要操作注册表,我们必须要引入必要的命名空间: C#代码    using Microsoft.Win32; 在这个命名空间里面包含了许多注册表相关的类,足够我们使用了~~ 2:命名空间里面提供了一个类:RegistryKey 利用它我们可以定位到注册表最开头的分支: ClassesRoot,CurrentUser,Use

[No.000005]C#注册表操作,创建,删除,修改,判断节点是否存在

1 //用.NET下托管语言C#操作注册表,主要内容包括:注册表项的创建,打开与删除.键值的创建(设置值.修改),读取和删除.判断注册表项是否存在.判断键值是否存在. 2 //准备工作: 3 //1:要操作注册表,我们必须要引入必要的命名空间:using Microsoft.Win32;在这个命名空间里面包含了许多注册表相关的类,足够我们使用了. 4 //2:命名空间里面提供了一个类:RegistryKey 利用它我们可以定位到注册表最开头的分支:ClassesRoot,CurrentUser,

数据库表的创建、管理和数据操作(实验一),数据库创建

数据库表的创建.管理和数据操作(实验一),数据库创建 今天我们就以实验的形式对表的创建.管理和数据操作进行学习,上课吧. [实验目的]:了解SQL语言的使用,进一步理解关系运算,巩固数据库的基础知识.[实验要求]:利用SQL语言进行数据库表的各种操作:1.数据库表的创建.修改和删除操作.2.向表中进行数据的插入.删除和修改操作.[实验内容]1. 利用数据定义语句在实验一创建的stu_DB库中建立学生管理系统的三个表:Student.Course.SC.2.利用INSERT.UPDATE和DELE

修改SQL Server数据库表的创建时间最简单最直接有效的方法

说明:这篇文章是几年前我发布在网易博客当中的原创文章,但由于网易博客现在要停止运营了,所以我就把这篇文章搬了过来,因为这种操作方式是通用的,即使是对现在最新的SQL Server数据库里面的操作也是一样的,相信很多朋友都会使用到. ----------------------分割线-------------------- 网络上曾经有很多人询问怎么修改SQL Server数据库表的创建时间,但得到的回答多种多样,有的说需要使用某些软件进行修改,有的说需要修改注册表等等,其实这些方法实施起来不但麻

EF 学习系列二 数据库表的创建和表关系配置(Fluent API、Data Annotations、约定)

上一篇写了<Entity Farmework领域建模方式 3种编程方式>,现在就Code First 继续学习 1.数据库表的创建 新建一个MVC的项目,在引用右击管理NuGet程序包,点击浏览搜索EF安装,我这里主要是EF6.0 以上的学习 所以都安装6.0 以上的版本 接下来在Model文件夹下面创建一个Customer类 public class Customer { public int ID { get; set; } public string Name { get; set; }

电子商城开发之目录与数据库表的创建

1.前台功能---首页---品牌页面---商品详情---商品评论管理---购物车管理---结算页面---用户登陆和退出---个人中心管理---订单提交页面 2.后台功能---登陆系统---用户管理---分类管理---品牌管理---商品管理---订单状态管理---订单管理 ----------------------------------------------------------------------------------------- 数据库表的创建: user表: //用户管理表-

oracle数据库表空间创建&amp;导入&amp;导出

1.表空间创建 --删除表空间 drop tablespace EVPBDMGIS including contents and datafiles; --删除用户 drop user EVPBDMGIS cascade; --创建表空间 create tablespace EVPBDMGIS datafile 'D:\app\Administrator\oradata\orcl\EVPBDMGIS.DBF' size 500m reuse autoextend on next 16m maxs

19 MySQL概念 数据库 数据表 数据类型 增加删除修改查询 WHERE Order By Limit

数据库管理系统DBMS 数据库中相关概念 数据库 数据表 记录 字段 数据 登录和退出MySQL客户端 查询自己的MySQL服务器有几个数据库 二.退出MySQL客户端的命令 修改root用户的密码 在MySQL客户端来修改密码(当前账号的密码) 数据库操作 创建数据库 显示所有数据库 删除数据库 选择数据库 更改数据库默认字符集 数据表操作 显示当前数据库中的所有表 创建数据表 显示表的创建 列的常用属性 修改数据表 删除数据表 显示表结构 MySQL数据类型 整型 浮点型 字符型 文本型 日

MySQL 入门(五)—— 表的创建、修改和删除

表是DB存储数据的基本单位,一个表包含若干个字段或记录.表的操作包括创建.修改和删除. 1.创建表 创建表即在已存在的数据库中创立新表.在使用USE语句选择具体数据库后,可以使用它SQL语句创建表 其中,属性名指表中字段的名称,数据类型即对应字段的数据类型,完整性约束条件指对应字段的某些特殊约束条件. MySQL中基本的完整性约束条件有 1.1 设置表的主键 主键是表的一个特殊字段,该字段能唯一地表示该表中的每条信息,即主键如同表中记录的身份证.主键的主要目的在于帮助MySQL以最快的速度查找表