在《MySql000——MySql数据库管理系统的下载、安装以及使用图形化工具MySQL Workbench创建数据库和表》中,我们使用图形化工具MySQL
Workbench创建数据库和表,下面我们将使用SQL来实现这一过程
使用 create 命令创建数据库,语法如下:
CREATE DATABASE 数据库名;
要使用MySQL的SQL语句来创建一个名为"study"的数据库并设置字符集为utf8,最正规的写法应如下:
CREATE DATABASE IF NOT EXISTS study CHARACTER SET utf8 COLLATE utf8_general_ci;
这个命令是这样执行的:
1、首先使用IF NOT EXISTS子句判断当"study"数据库不存在时,然后才创建该数据库
2、同时,该数据库字符集被设置为utf8,字符集校对规则(Collation)被设置为utf8_general_ci,这是一个常见的不区分大小写的utf8字符集校对规则。
3、请注意,这是MySQL的标准写法。
DROP DATABASE <数据库名>;
USE <数据库名>;
数据库和表之间的关系是:一个数据库中包含多张表。
使用 create 命令创建数据表,语法如下:
CREATE TABLE table_name (column_name column_type); /* 说明: table_name 表名 column_name 列名 column_type 列数据类型 */
下面使用SQL在study数据库中创建user表,user表有4个字段index、user_id、user_name、password
USE `study`; -- 选择使用study数据库 CREATE TABLE IF NOT EXISTS `user`( `index` INT NOT NULL, -- NOT NULL设置字段不能为空,在操作数据库时如果输入该字段的数据为NULL ,就会报错。 `user_id` INT UNSIGNED AUTO_INCREMENT, -- AUTO_INCREMENT定义列为自增的属性,一般用于主键,数值会自动加1。 `user_name` VARCHAR(100) NOT NULL, -- VARCHAR(100)表示该字段最大字符的个数是100 `password` VARCHAR(40) NOT NULL, PRIMARY KEY ( `user_id` ) -- PRIMARY KEY关键字用于定义列为主键。 您可以使用多列来定义主键,列间以逗号分隔。 )ENGINE=InnoDB DEFAULT CHARSET=utf8; -- ENGINE 设置存储引擎,CHARSET 设置编码。 /* 对UNSIGNED的特别说明: 默认的 int 类型,取值范围是 -2147483648-2147483647 之间,而 unsigned 的取值范围是 0-4294967295 之间。 默认的 int 类型,允许插入负数,unsigned 设置后,无法插入负数。 */
MySQL创建表的最规范的语法如下:
CREATE TABLE [IF NOT EXISTS] table_name ( column1 datatype constraints, column2 datatype constraints, ... [CONSTRAINT constraint_name] PRIMARY KEY (column1, column2, ...), [INDEX index_name] (column1, column2, ...), [FOREIGN KEY (column1, column2, ...) REFERENCES table_name (column1, column2, ...)], ... ) ENGINE=engine_name [DEFAULT CHARSET=character_set_name];
其中,方括号表示可选部分。以下是对各个部分的解释:
关于什么是主键约束、外键约束、索引、存储引擎(参考1、参考二)后续在学习,这里主要掌握通用写法,了解规范写法
MySQL 表中使用 INSERT INTO 语句来插入数据。
格式为:
INSERT INTO table_name ( field1, field2,...fieldN ) VALUES ( value1, value2,...valueN ); /* 说明: table_name 表名 field 列 value 列对应的值 */
例如下面向study数据库的user表插入三条记录
INSERT INTO `study`.`user` (`index`, `user_id`, `user_name`, `password`) VALUES ('1', '1001', '大毛', 'w555'); INSERT INTO `study`.`user` (`index`, `user_id`, `user_name`, `password`) VALUES ('2', '1002', '二毛', 'w558'); INSERT INTO `study`.`user` (`index`, `user_id`, `user_name`, `password`) VALUES ('3', '1003', '三毛', 'w553'); -- -----------------上面也可以这样写------------------------------------ USE `study`; -- 选择使用study数据库 INSERT INTO `user` (`index`, `user_id`, `user_name`, `password`) VALUES ('1', '1001', '大毛', 'w555'); INSERT INTO `user` (`index`, `user_id`, `user_name`, `password`) VALUES ('2', '1002', '二毛', 'w558'); INSERT INTO `user` (`index`, `user_id`, `user_name`, `password`) VALUES ('3', '1003', '三毛', 'w553');
MySQL数据表的通用语法:
DROP TABLE table_name ;
👉👉👉👉👉最后,有兴趣的小伙伴可以点击下面链接,这里有我整理的MySQL学习博客内容,谢谢~ 🌹🌹🌹🌹🌹
《MySQL数据库学习》