数据库_Mysql基础——DDL数据定义语言
作者:互联网
数据库
查看警告
SHOW WARNINGS;
创建数据库
语句{}中内容在使用语句时必须出现,方括号可以不出现。
CREATE {DATABASE|SCHEMA} [IF NOT EXISTS] db_name [DEFAULT CHARACTER SET = 编码格式]
例子:
1.简单创建一个数据库 creat database(schema也可以) 数据库名称
然后你可以在C:\ProgramData\MySQL\MySQL Server 8.0\Data(这是我的路径)下看到创建了一个文件夹。
你也可以在这个文件夹下手动创建新的文件夹,也相当于创建了一个新的数据库,数据库的名字不能重复,重复创建会报错,如果加上IF NOT EXISTS创建,会返回警告。
2. 创建自定义编码格式的数据库
查看数据库
SHOW DATABASES;
或
SHOW SCHEMA;
注意: information_schema;mysql; performance_schema这三个数据库不能动!!!
查看指定数据库的定义
SHOW CREATE DATABASE|SCHEMA db_name;
修改指定数据库的编码方式
ALTER DATABASE|SCHEMA db_name DEFAULT CHARACTER SET = charset_name;
可以看到查询数据库定义的编码格式是utf8
打开指定的数据库
USE db_name;
得到当前打开的数据库名称
SELECT DATABASE();
删除指定数据库
DROP DATABASE|SCHEMA [IF EXISTS] db_name;
这样,那个文件夹下就删除了mysql01这个文件夹,也可以使用语句查看
数据表
数据表时数据库最重要的组成部分之一,是其他对象的基础,是存储数据的数据结构,是包含了特定实体类型的数据。它由行(row)和列(column)构成的二维网格。数据表一定时现有表结构,再有数据。数据表至少有一列,可以没有行或者多行。数据表名称要求唯一,而且不要包含特殊字符。
MYSQL中的数据类型
这些记个大概即可用的时候可以通过帮助查询
整数类型
如果需要输入无符号数,在数据类型后添加一个单词 UNSIGNED
浮点类型
如果输入小数位数超过指定位数,会进行四舍五入。定点数DECIMAL精度比前两个高。
字符串类型
CHAR会把输入字符串尾部的空格去掉,VARCHAR不会去掉。
日期时间类型
二进制类型
视频、图片等
类型选择
创建数据表
CREATE TABLE [IF NOT EXIST] tbl_name(字段名 字段类型 [完整约束条件] ...) ENGINE = 引擎名称 CHARSET = 编码方式;
字段名就是这个数据表中每一列的列标签;字段类型是每一列的数据类型;
引擎
存储引擎就是指表的类型,出具库的存储类型决定了表在计算机的存储方式。用户可以根据不同的存储方式,是否进行事务处理等来选择合适的存储引擎。
查看mysql支持的存储引擎
SHOW ENGINES;
查看显示支持的引擎信息
SHOW VARIABLES LIKE 'have%';
查看默认的存储引擎
SHOW VARIABLES LIKE 'storage_engine';
其中name表示引擎名称
support表示是否支持支持(yes),不支持(no)
comment注释
transactions是否支持事务处理,支持(yes),不支持(no)
XA是否是分布式处理的交易规范(我也不知道这是个什么玩意)是(yes),否(no)
savepoints是否支持保存点。
常用的引擎
不同数据表可以使用不同的引擎
InnoDB事务、回滚、修复、多版本并发控制,支持外借。创建的表结构在.fim的文件。缺点:读写效率低,占用空间大。
MyISAM存储文件时分为三个文件。分别存储表结构、数据、索引。支持静态、动态、压缩三种存储格式。效率高,空间占用小。缺点:不支持事务,没有事务的完整性、安全性、并发性的特点。
MEMORY存储在内存中创建表。速度快。可以提高表的效率。数据在内存中,占用内存多。缺点:存储在内存中,断电会造成丢失。
注释的写法
使用#来表示注释
这样回车不会执行该语句
或者使用-- 来表示注释内容(后面有空格)
给字段注释使用COMMENT
创建数据表
当输入内容含有中文的时候,需要临时更改编码格式为GBK
CREATE TABLE [IF NOT EXIST] tbl_name(字段名 字段类型 [完整约束条件] ...) ENGINE = 引擎名称 CHARSET = 编码方式;
创建数据库,打开数据库然后在数据库中创建数据表。
这段太麻烦了我附上代码
SET NAMES GBK;
CREATE TABLE IF NOT EXISTS `user` (id SMALLINT,username VARCHAR(20),age TINYINT,sex ENUM('男','女','保密'),email VARCHAR(50),addr VARCHAR(200),birth YEAR,salary FLOAT(8,2),tel INT,married TINYINT(1))ENGINE=INNODB CHARSET=UTF8;
这里在test01数据库下创建了user这个数据表。表的标签包含id username age…括号中的就是标签,后面跟的是数据类型。然后设定了引擎和编码格式。
查看创建的数据表
SHOW TABLES;
再创建一个试试
查看指定表的表结构
三种方法都可以
DESC tbl_name;
DESCRIBE tbl_name;
SHOW COLUMNS FROM tbl_name;
字段属性(完整性约束条件)
PRIMARY KEY主键,唯一标识某个记录的内容,要求定义为主键的字段不能重复且非空。
CREATE TABLE user1 (id INT PRIMARY KEY);#这样就给id定义为主键
key=pri就是主键。
CREATE TABLE user1 (id INT,card CHAR(18),PRIMARY KEY(id,card));#来定义一个复合主键
这是两个字段确定一个。
后面的明天再更
AUTO_INCREMENT自增长
FOREIGN KEY外键
NOT NULL非空
UNIQUE KEY唯一
DEFAULT默认值
用于修饰字段,使得字段符合要求。
标签:存储,name,SHOW,创建,数据库,Mysql,定义语言,数据表,DDL 来源: https://blog.csdn.net/Temmie1024/article/details/116331824