1、创建数据库

create database db_name;
show create database db_name\G; //查看数据创建语句
show databases; //查看当前创建的数据库

2、删除数据库

drop database db_name;  //删除的数据库要存在

3、数据库存储引擎

MySQL可以针对每一张表使用不同的存储引擎。

mysql> show engines \G
*************************** 1. row ***************************
Engine: InnoDB
Support: DEFAULT
Comment: Supports transactions, row-level locking, and foreign keys
Transactions: YES
XA: YES
Savepoints: YES
*************************** 2. row ***************************
Engine: MRG_MYISAM
Support: YES
Comment: Collection of identical MyISAM tables
Transactions: NO
XA: NO
Savepoints: NO
*************************** 3. row ***************************
Engine: MEMORY
Support: YES
Comment: Hash based, stored in memory, useful for temporary tables
Transactions: NO
XA: NO
Savepoints: NO
*************************** 4. row ***************************
Engine: BLACKHOLE
Support: YES
Comment: /dev/null storage engine (anything you write to it disappears)
Transactions: NO
XA: NO
Savepoints: NO
*************************** 5. row ***************************
Engine: MyISAM
Support: YES
Comment: MyISAM storage engine
Transactions: NO
XA: NO
Savepoints: NO
*************************** 6. row ***************************
Engine: CSV
Support: YES
Comment: CSV storage engine
Transactions: NO
XA: NO
Savepoints: NO
*************************** 7. row ***************************
Engine: ARCHIVE
Support: YES
Comment: Archive storage engine
Transactions: NO
XA: NO
Savepoints: NO
*************************** 8. row ***************************
Engine: PERFORMANCE_SCHEMA
Support: YES
Comment: Performance Schema
Transactions: NO
XA: NO
Savepoints: NO
*************************** 9. row ***************************
Engine: FEDERATED
Support: NO
Comment: Federated MySQL storage engine
Transactions: NULL
XA: NULL
Savepoints: NULL
9 rows in set (0.00 sec) mysql>

InnoDB存储引擎:支持事务安全表(ACID,提交、回滚、崩溃恢复的事务安全)、行级锁、外键。

MyISAM存储引擎:较高的插入、查询速度,但不支持事务。

Memory存储引擎:将表中的数据存储到内存中。

存储引擎的比较:

 4、数据库表操作

1》创建表:

create table <表名>
(
column1 datatype [列级约束] [默认值],
column1 datatype [列级约束] [默认值]
...
[表级约束]
);

2》主键约束:primary key 或者 [constraint <约束名>] primary key [字段名]

单字段主键:primary ley(column1)

多字段主键:primary key(column1,column2,...)

3》外键约束:

外键可以为空值,如果不为空值,则该值必须等于被参照表某记录某字段(或者某些字段的组合)的值。

[constraint <外键名>] foreign key column1[,column2,column3,...] references <主表名> 主键列1[,主键列2,...]

4》非空约束:not null

5》唯一约束:unique。可以有空值。unique(column1)或者[constraint <约束名>] unique(column1,column2,...)

6》默认值:default。

7》设置表的属性值自动增加:auto_increment。一个表只能有一个字段使用该约束,且该字段必须为主键的一部分。约束的字段可以是任何整数类型(tinyint,smallin,int,bigint)。

5、查看表结构:describe / desc、show create table

1》describe / desc:

mysql> desc test;
+--------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+----------------+
| id | int(10) | NO | PRI | NULL | auto_increment |
| name | varchar(25) | NO | | NULL | |
| deptId | int(11) | YES | | NULL | |
| salary | float | YES | | NULL | |
+--------+-------------+------+-----+---------+----------------+
4 rows in set (0.01 sec) mysql> describe test;
+--------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+----------------+
| id | int(10) | NO | PRI | NULL | auto_increment |
| name | varchar(25) | NO | | NULL | |
| deptId | int(11) | YES | | NULL | |
| salary | float | YES | | NULL | |
+--------+-------------+------+-----+---------+----------------+
4 rows in set (0.00 sec) mysql>

2》show create table:查看表详细结构语句,包括存储引擎、字符编码等信息。

show create table <表名 \G>;

“\G”是为了显示更美观。

6、删数据表

1》删除没有关联的表:可以一次删除一个或者多个没有被其他表关联的表

drop table [if exists]表1,表2,...表n;

2》删除被其他表关联的主表:一般直接删除主表会失败。如果只需要删除主表,而从表需要保留,可以先删除从表的外键约束,然后再删除主表;级联删除。

7、改数据表

常用的操作:修改表名、修改字段数据类型或字段名、增加和删除字段、修改字段的排列位置、更改表的存储引擎、删除表的外键约束等。

1》修改表名:

alter table <旧表名> rename [to] <新表名>;

2》修改字段名、字段数据类型:

alter table <表名> change <旧字段名> <新字段名> <字段数据类型>;
alter table <表名> modify <字段名> <新数据类型>; //或者alter table <表名> change <旧字段名> <旧字段名> <新字段数据类型>;

3》添加字段

alter table <表名> add <新字段名> <数据类型> [约束条件] [first|after [已存在的字段名]];

4》删除字段

alter table <表名> drop <字段名>;

5》修改字段的排列位置:first指定字段作为表的第一个字段,after指定字段在“字段2”后面。

alter table <表名> modify <字段1> <数据类型> first|after <字段2>;

6》更改表的存储引擎(MySQL特有的):

alter table <表名> engine=<更改后的存储引擎名>;

7》删除表的外键约束:

alter table <表名> drop foreign key <外键约束名>

 8、总结

1》外键约束不能夸引擎使用,即主表与从表应该使用相同的存储引擎。

MySQL-快速入门(1)基本数据库、表操作语句的更多相关文章

  1. MySQL数据库(2)_MySQL数据库和数据库表操作语句

    一.关于数据库操作的sql语句 -- .创建数据库(在磁盘上创建一个对应的文件夹) create database [if not exists] db_name [character set xxx ...

  2. mysql cmd命令行 创建数据库 表 基础语句

    一.连接MYSQL 格式: mysql -h主机地址 -u用户名 -p用户密码 1. 连接到本机上的MYSQL. 首先打开DOS窗口,然后进入目录mysql\bin,再键入命令mysql -u roo ...

  3. Database学习 - mysql 数据库 表操作

    mysql 数据库 表操作 创建数据表 基本语法格式: 创建数据表: create table 表名( 字段名 datatype 约束, 字段名 datatype 约束, ...... ) 修改表名 ...

  4. MySql基础笔记(一)Mysql快速入门

    Mysql快速入门 一)基本概念 1)表 行被称为记录,是组织数据的单位.列被称为字段,每一列表示记录的一个属性. 2)主键 主键用于唯一的标识表中的每一条记录.可以定义表中的一列或者多列为主键, 但 ...

  5. MySQL 快速入门教程

    转:MySQL快速 入门教程 目录 一.MySQL的相关概念介绍 二.Windows下MySQL的配置 配置步骤 MySQL服务的启动.停止与卸载 三.MySQL脚本的基本组成 四.MySQL中的数据 ...

  6. MySQL 快速入门(一)

    目录 MySQL快速入门 简介 存储数据的演变过程 数据库分类 概念介绍 MySQL安装 MySQL命令初始 环境变量配置 MySQL环境变量配置 修改配置文件 设置新密码 忘记密码的情况 基本sql ...

  7. MySQL快速入门(二)

    目录 MySQL快速入门(二) 约束条件 自增 自增的特性 主键 外键 级联更新/删除 表与表之间的关系 外键约束 操作表方法 查询关键字 练习数据 select··from where 筛选 gro ...

  8. mysql基础之mariadb库管理和表管理语句

    一.数据库管理语句 1.Syntax: CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name [create_specification] ... cr ...

  9. 在线数据库表(sql语句)生成java实体类工具

    相信每个做java开发的读者,都接触过SQL建表语句,尤其是在项目开发初期,因为数据库是项目的基石. 在现代项目开发中,出现了许多ORM框架,通过简单的实体映射,即可实现与数据库的交互,然而我们最初设 ...

随机推荐

  1. 百度地图api的简单应用(二):轻量级路径规划

    同上篇的原理,我们还是输入url,返回json文件. 而由图可见,路径规划返回的json文件内容可能会很多.杂: 因此后续的处理与上篇略有不同. import json import requests ...

  2. 【NOIP2016提高A组模拟8.17】(雅礼联考day1)Value

    题目 分析 易证,最优的答案一定是按\(w_i\)从小到大放. 我们考虑dp, 先将w从小到大排个序,再设\(f_{i,j}\)表示当前做到第i个物品,已选择了j个物品的最大值.转移就是\[f_{i, ...

  3. maven打包指定main入口插件

    <!--打包插件 --><plugin> <groupId>org.apache.maven.plugins</groupId> <artifac ...

  4. requestAnimationFram

    window.requestAnimationFrame() 告诉浏览器——你希望执行一个动画,并且要求浏览器在下次重绘之前调用指定的回调函数更新动画.该方法需要传入一个回调函数作为参数,该回调函数会 ...

  5. 对vue虚拟dom的研究

    Vue.js通过编译将template 模板转换成渲染函数(render ) ,执行渲染函数就可以得到一个虚拟节点树 在对 Model 进行操作的时候,会触发对应 Dep 中的 Watcher 对象. ...

  6. LeetCode - 不邻接植花

    有 N 个花园,按从 1 到 N 标记.在每个花园中,你打算种下四种花之一. paths[i] = [x, y] 描述了花园 x 到花园 y 的双向路径. 另外,没有花园有 3 条以上的路径可以进入或 ...

  7. 由于数据库 'XXX' 离线,无法打开该数据库。

    大家使用sql server 进行还原的时候可能会遇到: system.Data.SqlClient.SqlError:因为数据库正在使用,所以无法获得对数据库的独占访问权 这个错误 下面是有一个解决 ...

  8. strcat()与strcpy()用法

    1.strcpy (1)原型 extern char *strcpy(char *dest,char *src); (2)用法 #include <cstring> (3)功能 把src所 ...

  9. You have 1 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): shopadmin. Run 'python manage.py migrate' to apply them.

    数据库迁移时报错, You have 1 unapplied migration(s). Your project may not work properly until you apply the ...

  10. 3D Computer Grapihcs Using OpenGL - 20 结合Buffer

    在上一节的案例中,我们使用了四个Buffer Object,立方体的VertexBuffer,立方体的索引Buffer,四面体的VertexBuffer,四面体的索引Buffer. 我们这节尝试把两个 ...